Làm thế nào để phù hợp với hồi quy như trong R?


9

Tôi có một số dữ liệu chuỗi thời gian trong đó biến đo được là các số nguyên dương (số đếm) rời rạc. Tôi muốn kiểm tra nếu có một xu hướng tăng theo thời gian (hoặc không). Biến độc lập (x) nằm trong phạm vi 0-500 và biến phụ thuộc (y) nằm trong phạm vi 0-8.

Tôi nghĩ rằng tôi trả lời điều này bằng cách điều chỉnh hồi quy của biểu mẫu y = floor(a*x + b)bằng cách sử dụng bình phương tối thiểu thông thường (OLS).

Làm thế nào tôi có thể làm điều này bằng cách sử dụng R (hoặc Python)? Có một gói hiện có cho nó, hay tôi nên viết thuật toán của riêng mình?

Tái bút: Tôi biết đây không phải là kỹ thuật lý tưởng, nhưng tôi cần thực hiện một phân tích tương đối đơn giản mà tôi thực sự có thể hiểu - nền tảng của tôi là sinh học không phải là toán học. Tôi biết tôi đang vi phạm các giả định về sai số trong biến đo và tính độc lập của phép đo theo thời gian.


5
Mặc dù về mặt toán học là tự nhiên khi thử hồi quy của hình thức này, nhưng đằng sau nó ẩn chứa một lỗi thống kê: thuật ngữ lỗi bây giờ sẽ tương quan mạnh với giá trị dự đoán. Đó là một sự vi phạm khá mạnh mẽ các giả định OLS. Thay vào đó, hãy sử dụng một kỹ thuật dựa trên số lượng như được đề xuất bởi câu trả lời của Greg Snow. (Tuy nhiên, tôi vui mừng nêu lên câu hỏi này, bởi vì nó phản ánh một số suy nghĩ thực sự và sự thông minh. Cảm ơn bạn đã hỏi nó ở đây!)
whuber

Câu trả lời:


11

Bạn có thể điều chỉnh mô hình mà bạn nêu bằng cách sử dụng hàm nls(bình phương nhỏ nhất phi tuyến tính) R, nhưng như bạn đã nói sẽ vi phạm nhiều giả định và có lẽ vẫn không có ý nghĩa gì (bạn đang nói kết quả dự đoán là ngẫu nhiên xung quanh một bước hàm, không phải giá trị số nguyên xung quanh mối quan hệ tăng trơn tru).

Cách phổ biến hơn để điều chỉnh dữ liệu đếm là sử dụng hồi quy Poisson bằng cách sử dụng glmhàm trong R, ví dụ đầu tiên trên trang trợ giúp là hồi quy Poisson, mặc dù nếu bạn không quen thuộc với thống kê thì tốt nhất nên tham khảo ý kiến ​​của nhà thống kê để đảm bảo rằng bạn đang làm mọi thứ một cách chính xác.

Nếu giá trị 8 là tối đa tuyệt đối (không thể thấy số lượng cao hơn, không chỉ là những gì bạn đã thấy) thì bạn có thể xem xét hồi quy logistic tỷ lệ cược tỷ lệ, có một số công cụ để thực hiện điều này trong các gói R, nhưng bạn thực sự nên có một thống kê tham gia nếu bạn muốn làm điều này.


"Bạn đang nói kết quả dự đoán là ngẫu nhiên xung quanh hàm bước, không phải giá trị nguyên xung quanh mối quan hệ tăng dần" --- Đó là điều tôi chưa từng xem xét. Cuối cùng, tôi đã đi với hồi quy Poisson bằng glm. Nó không phải là sự lựa chọn hoàn hảo, nhưng "đủ tốt" cho những gì tôi cần.
afaulconbridge

10

Rõ ràng đề xuất của Greg là điều đầu tiên nên thử: Hồi quy Poisson là mô hình tự nhiên trong nhiều cụ thể tình huống.

Tuy nhiên, mô hình mà bạn đề xuất có thể xảy ra, ví dụ như khi bạn quan sát dữ liệu được làm tròn: với iid lỗi bình thường .

Yi=axi+b+ϵi,
ϵi

Tôi nghĩ rằng điều này là thú vị để có một cái nhìn về những gì có thể được thực hiện với nó. Tôi biểu thị bằng cdf của biến thông thường tiêu chuẩn. Nếu , thì bằng cách sử dụng các ký hiệu máy tính quen thuộc.FϵN(0,σ2)

P(ax+b+ϵ=k)=F(kb+1axσ)F(kbaxσ)=pnorm(k+1axb,sd=σ)pnorm(kaxb,sd=σ),

Bạn quan sát các điểm dữ liệu . Khả năng nhật ký được đưa ra bởi Điều này không giống với hình vuông nhỏ nhất. Bạn có thể cố gắng tối đa hóa điều này bằng một phương pháp số. Đây là một minh họa trong R:(xi,yi)

(a,b,σ)=ilog(F(yib+1axiσ)F(yibaxiσ)).
log_lik <- function(a,b,s,x,y)
  sum(log(pnorm(y+1-a*x-b, sd=s) - pnorm(y-a*x-b, sd=s)));

x <- 0:20
y <- floor(x+3+rnorm(length(x), sd=3))
plot(x,y, pch=19)
optim(c(1,1,1), function(p) -log_lik(p[1], p[2], p[3], x, y)) -> r
abline(r$par[2], r$par[1], lty=2, col="red")
t <- seq(0,20,by=0.01)
lines(t, floor( r$par[1]*t+r$par[2]), col="green")

lm(y~x) -> r1
abline(r1, lty=2, col="blue");

mô hình tuyến tính tròn

Trong màu đỏ và màu xanh, các dòng được tìm thấy bằng cách tối đa hóa số lượng của khả năng này và bình phương nhỏ nhất, tương ứng. Cầu thang màu xanh lá cây là cho được tìm thấy từ khả năng tối đa ... điều này cho thấy rằng bạn có thể sử dụng bình phương tối thiểu, lên đến một bản dịch bằng 0,5 và nhận được kết quả gần như tương tự; hoặc, bình phương tối thiểu đó phù hợp với mô hình trong đó là số nguyên gần nhất. Dữ liệu làm tròn thường được đáp ứng đến mức tôi chắc chắn điều này đã được biết và đã được nghiên cứu rộng rãi ...ax+bax+ba,bb

Yi=[axi+b+ϵi],
[x]=x+0.5

4
+1 Tôi yêu thích kỹ thuật này và thực sự đã gửi một bài báo về nó cho một tạp chí phân tích rủi ro vài năm trước. (Một số nhà phân tích rủi ro khá quan tâm đến dữ liệu có giá trị trong khoảng thời gian.) Nó đã bị từ chối vì "quá toán học" đối với khán giả của họ. . :-( Một mẹo:.. Khi sử dụng phương pháp số, nó luôn luôn là một ý tưởng tốt để cung cấp tốt các giá trị khởi đầu cho giải pháp xem xét áp dụng OLS cho dữ liệu thô để có được những giá trị, sau đó "đánh bóng" cho họ những ưu số
whuber

Vâng, đây là một gợi ý tốt. Trên thực tế, trong trường hợp đó tôi chọn các giá trị từ xa để nhấn mạnh rằng "nó hoạt động", nhưng trong thực tế, đề xuất của bạn sẽ là giải pháp duy nhất để tránh bắt đầu từ một khu vực rất bằng phẳng, tùy thuộc vào dữ liệu ...
Elvis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.