Tôi không thực sự hiểu sự không đồng nhất. Tôi muốn biết liệu mô hình của tôi có phù hợp hay không theo cốt truyện này.
Tôi không thực sự hiểu sự không đồng nhất. Tôi muốn biết liệu mô hình của tôi có phù hợp hay không theo cốt truyện này.
Câu trả lời:
Như @IrishStat đã nhận xét, bạn cần kiểm tra các giá trị quan sát của mình đối với các lỗi của bạn để xem liệu có vấn đề với tính biến đổi hay không. Tôi sẽ trở lại điều này cho đến cuối cùng.
Chỉ cần để bạn có được một ý tưởng về những gì chúng tôi có nghĩa là bởi heteroskedasticity: khi bạn phù hợp với một mô hình tuyến tính trên một biến bạn là chủ yếu nói rằng bạn thực hiện với giả định rằng bạn y ~ N ( X β , σ 2 ) hoặc trong điều khoản của layman rằng bạn y dự kiến sẽ đánh đồng X β cộng với một số lỗi có phương sai σ 2 . Đây thực tế tuyến tính của bạn mô hình y = X β + ε , nơi mà các lỗi ε ~ N ( 0 , σ 2 ). OK, tuyệt vời cho đến nay hãy xem mã đó:
set.seed(1); #set the seed for reproducability
N = 100; #Sample size
x = runif(N) #Independant variable
beta = 4; #Regression coefficient
epsilon = rnorm(N); #Error with variance 1 and mean 0
y = x * beta + epsilon #Your generative model
lin_mod <- lm(y ~x) #Your linear model
đúng vậy, mô hình của tôi ứng xử thế nào:
x11(); par(mfrow=c(1,3)); #Make a new 1-by-3 plot
plot(residuals(lin_mod));
title("Simple Residual Plot - OK model")
acf(residuals(lin_mod), main = "");
title("Residual Autocorrelation Plot - OK model");
plot(fitted(lin_mod), residuals(lin_mod));
title("Residual vs Fit. value - OK model");
sẽ cung cấp cho bạn một cái gì đó như thế này: có nghĩa là phần dư của bạn dường như không có xu hướng rõ ràng dựa trên chỉ số tùy ý của bạn (âm mưu thứ nhất - thực sự ít thông tin nhất), dường như không có mối tương quan thực sự giữa chúng (âm mưu thứ 2 - khá quan trọng và có lẽ quan trọng hơn homoskedasticity) và rằng các giá trị được trang bị không có xu hướng thất bại rõ ràng, nghĩa là. giá trị được trang bị của bạn so với phần dư của bạn xuất hiện khá ngẫu nhiên. Dựa trên điều này, chúng tôi sẽ nói rằng chúng tôi không có vấn đề gì về tính không đồng nhất vì phần dư của chúng tôi dường như có cùng phương sai ở mọi nơi.
OK, bạn muốn heteroskedasticity mặc dù. Đưa ra các giả định tương tự về tính tuyến tính và tính gây nghiện, hãy xác định một mô hình tổng quát khác với các vấn đề không đồng nhất "rõ ràng". Cụ thể sau một số giá trị quan sát của chúng tôi sẽ ồn ào hơn nhiều.
epsilon_HS = epsilon;
epsilon_HS[ x>.55 ] = epsilon_HS[x>.55 ] * 9 #Heteroskedastic errors
y2 = x * beta + epsilon_HS #Your generative model
lin_mod2 <- lm(y2 ~x) #Your unfortunate LM
trong đó các sơ đồ chẩn đoán đơn giản của mô hình:
par(mfrow=c(1,3)); #Make a new 1-by-3 plot
plot(residuals(lin_mod2));
title("Simple Residual Plot - Fishy model")
acf(residuals(lin_mod2), main = "");
title("Residual Autocorrelation Plot - Fishy model");
plot(fitted(lin_mod2), residuals(lin_mod2));
title("Residual vs Fit. value - Fishy model");
nên đưa ra một cái gì đó như: Ở đây cốt truyện đầu tiên có vẻ hơi "kỳ quặc"; có vẻ như chúng ta có một số phần dư tụ lại ở cường độ nhỏ nhưng điều đó không phải lúc nào cũng là vấn đề ... Âm mưu thứ hai là ổn, có nghĩa là chúng ta không có mối tương quan giữa phần dư của bạn trong các độ trễ khác nhau để chúng ta có thể thở trong giây lát. Và âm mưu thứ ba làm đổ đậu: rõ ràng là khi chúng ta đạt được giá trị cao hơn thì phần còn lại của chúng ta bùng nổ. Chúng tôi chắc chắn có sự không đồng nhất trong phần dư của mô hình này và chúng tôi cần phải làm gì đó về (ví dụ: IRLS , hồi quy Sen Theil , v.v.)
Ở đây vấn đề đã thực sự rõ ràng nhưng trong các trường hợp khác chúng ta có thể đã bỏ lỡ; để giảm cơ hội bỏ lỡ nó, một cốt truyện sâu sắc khác được đề cập bởi IrishStat: Residuals so với các giá trị quan sát hoặc trong vấn đề đồ chơi của chúng tôi:
par(mfrow=c(1,2))
plot(y, residuals(lin_mod) );
title( "Residual vs Obs. value - OK model")
plot(y2, residuals(lin_mod2) );
title( "Residual vs Obs. value - Fishy model")
sẽ cung cấp một cái gì đó như:
Công bằng trong tình huống của bạn, phần dư của bạn so với biểu đồ giá trị được trang bị có vẻ tương đối OK. Kiểm tra số dư của bạn so với các giá trị quan sát của bạn có thể sẽ hữu ích để đảm bảo bạn ở bên an toàn. (Tôi đã không đề cập QQ-lô hoặc bất cứ điều gì như thế không làm điều làm rắc rối hơn, nhưng bạn có thể muốn một thời gian ngắn rà soát những người quá.) Tôi hy vọng điều này sẽ giúp bạn hiểu rõ hơn về heteroskedasticity và những gì bạn nên tìm cho ra.
Câu hỏi của bạn dường như là về tính không đồng nhất (vì bạn đã đề cập đến nó theo tên và thêm thẻ), nhưng câu hỏi rõ ràng của bạn (ví dụ: trong tiêu đề và) kết thúc bài đăng của bạn có khái quát hơn, "liệu mô hình của tôi có phù hợp hay không theo điều này âm mưu". Có nhiều thứ để xác định xem một mô hình có phù hợp hay không hơn là đánh giá tính không đồng nhất.
Tôi đã loại bỏ dữ liệu của bạn bằng cách sử dụng trang web này (ht @Alexis). Lưu ý rằng dữ liệu được sắp xếp theo thứ tự tăng dần của fitted
. Dựa trên hồi quy và cốt truyện phía trên bên trái, có vẻ như nó đủ trung thành:
mod = lm(residuals~fitted)
summary(mod)
# ...
# Residuals:
# Min 1Q Median 3Q Max
# -0.78374 -0.13559 0.00928 0.19525 0.48107
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.06406 0.35123 0.182 0.856
# fitted -0.01178 0.05675 -0.208 0.836
#
# Residual standard error: 0.2349 on 53 degrees of freedom
# Multiple R-squared: 0.0008118, Adjusted R-squared: -0.01804
# F-statistic: 0.04306 on 1 and 53 DF, p-value: 0.8364
Tôi không thấy bất kỳ bằng chứng nào về sự không đồng nhất ở đây. Từ phía trên bên phải (qq-cốt truyện), dường như không có bất kỳ vấn đề nào với giả định quy tắc.
Mặt khác, đường cong "S" trong vùng thấp màu đỏ phù hợp (ở ô trên bên trái), và các ô acf và pacf (ở phía dưới) có vẻ có vấn đề. Ở phía xa bên trái, hầu hết các phần dư nằm trên đường 0 màu xám. Khi bạn di chuyển sang phải, phần lớn phần dư giảm xuống dưới 0, sau đó ở trên và sau đó lại ở dưới. Kết quả của điều này là nếu tôi nói với bạn rằng tôi đang xem một phần dư cụ thể và nó có giá trị âm (nhưng tôi không nói cho bạn biết tôi đang xem cái nào), bạn có thể đoán chính xác là phần dư gần đó cũng có giá trị tiêu cực. Nói cách khác, phần dư không độc lập. Nhận biết điều gì đó về một người cung cấp cho bạn thông tin về người khác.
Ngoài các lô, điều này có thể được thử nghiệm. Một cách tiếp cận đơn giản là sử dụng một bài kiểm tra chạy :
library(randtests)
runs.test(residuals)
# Runs Test
#
# data: residuals
# statistic = -3.2972, runs = 16, n1 = 27, n2 = 27, n = 54, p-value = 0.0009764
# alternative hypothesis: nonrandomness
Để trả lời các câu hỏi rõ ràng của bạn: Âm mưu của bạn hiển thị tự động nối tiếp / không độc lập với phần dư của bạn. Nó có nghĩa là mô hình của bạn không phù hợp ở dạng hiện tại của nó.