Bagaimana cara menafsirkan plot pas vs residual ini?

17

masukkan deskripsi gambar di sini

Saya tidak begitu mengerti heteroskedastisitas. Saya ingin tahu apakah model saya sesuai atau tidak sesuai dengan plot ini.

kanbhold
sumber
Harap siapkan plot residu versus nilai yang diamati. Jika variabilitas kesalahan dapat dikaitkan dengan nilai yang diamati maka ini mungkin menunjukkan masalah heterogenitas
IrishStat
1
@IrishState residual vs yang diamati akan menunjukkan korelasi. Mereka lebih sulit untuk ditafsirkan karena ini. Residual vs fitting menunjukkan perkiraan terbaik yang kami miliki tentang bagaimana kesalahan berhubungan dengan rata-rata populasi, dan agak berguna untuk memeriksa pertimbangan yang lebih umum dalam regresi apakah varians terkait dengan mean.
Glen_b -Reinstate Monica

Jawaban:

18

Seperti yang dikomentari @IrishStat, Anda perlu memeriksa nilai yang Anda amati terhadap kesalahan Anda untuk melihat apakah ada masalah dengan variabilitas. Saya akan kembali ke sini menjelang akhir.

yyN(Xβ,σ2)yXβσ2y=Xβ+ϵϵN(0,σ2). OK, keren sejauh ini mari kita lihat dalam kode:

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

begitu benar, bagaimana model saya berperilaku:

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");

yang seharusnya memberi Anda sesuatu seperti ini: masukkan deskripsi gambar di sini yang berarti bahwa residu Anda tampaknya tidak memiliki tren yang jelas berdasarkan indeks sewenang-wenang Anda (plot 1 - paling tidak informatif benar-benar), tampaknya tidak memiliki korelasi nyata di antara mereka (plot 2 - cukup penting dan mungkin lebih penting daripada homoskedastisitas) dan bahwa nilai yang dipasang tidak memiliki kecenderungan kegagalan yang jelas, yaitu. nilai pas Anda vs residu Anda tampak cukup acak. Berdasarkan ini kita akan mengatakan bahwa kita tidak memiliki masalah heteroskedastisitas karena residu kita tampaknya memiliki varian yang sama di mana-mana.

OK, Anda ingin heteroskedastisitas. Dengan asumsi yang sama tentang linearitas dan aditivitas, mari kita definisikan model generatif lain dengan masalah heteroskedastisitas yang "jelas". Yaitu setelah beberapa nilai pengamatan kami akan jauh lebih berisik.

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

di mana plot diagnostik sederhana dari model:

 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");

harus memberikan sesuatu seperti: masukkan deskripsi gambar di sini Di sini plot pertama tampaknya agak "aneh"; kelihatannya kita memiliki beberapa residu yang mengelompok dalam besaran kecil tetapi itu tidak selalu menjadi masalah ... Plot kedua adalah OK, berarti kita tidak memiliki korelasi antara residu Anda dalam kelambatan yang berbeda sehingga kita dapat bernafas sejenak. Dan plot ketiga menumpahkan biji: sangat jelas bahwa ketika kita sampai pada nilai yang lebih tinggi, residu kita meledak. Kami pasti memiliki heteroskedastisitas dalam residual model ini dan kami perlu melakukan sesuatu tentang (mis. IRLS , regresi Theil-Sen , dll.)

Di sini masalahnya benar-benar jelas, tetapi dalam kasus-kasus lain kita mungkin telah ketinggalan; untuk mengurangi peluang kami melewatkannya, plot lain yang berwawasan luas adalah yang disebutkan oleh IrishStat: Residual versus nilai yang Diamati, atau untuk masalah mainan kami:

 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")

yang seharusnya memberikan sesuatu seperti:

masukkan deskripsi gambar di siniR2R20,59890,03919

Dalam keadilan situasi Anda, residual Anda vs plot nilai pas tampaknya relatif OK. Memeriksa residu Anda vs nilai-nilai yang Anda amati mungkin akan membantu untuk memastikan Anda berada di sisi yang aman. (Saya tidak menyebutkan plot QQ atau semacamnya agar tidak membingungkan banyak hal, tetapi Anda mungkin ingin memeriksanya juga secara singkat.) Saya harap ini membantu dengan pemahaman Anda tentang heteroskedastisitas dan apa yang harus Anda perhatikan.

usεr11852 kata Reinstate Monic
sumber
4
Anda tidak perlu terkejut atau khawatir melihat hubungan antara residu & nilai-nilai yang diamati . Coba hitung hasil teoretis untuk model yang ditentukan dengan benar.
Scortchi
4
Atau lihat di sini .
Scortchi
+1 untuk kedua komentar Anda. Terima kasih telah menunjukkan masalah itu; komentar Anda benar / tepat. Saya mengedit bagian itu sehingga dibaca dengan benar sekarang.
usεr11852 mengatakan Reinstate Monic
1
Sama-sama. Saya masih tidak yakin berapa nilai yang menurut Anda ditambahkan oleh plot residu versus nilai respons yang diamati; keberadaan & sifat heteroskedastisitas kurang jelas dibandingkan dalam plot residual versus nilai respons yang dipasang.
Scortchi
Saya (sebagian besar) setuju. Seperti yang Anda lihat, itu bukan plot diagnostik pertama saya juga. Disarankan oleh IrishStat dan saya pikir itu perlu untuk jawaban lengkap untuk OP.
usεr11852 mengatakan Reinstate Monic
9

Pertanyaan Anda tampaknya tentang heteroskedastisitas (karena Anda menyebutkannya dengan nama dan menambahkan tag), tetapi pertanyaan eksplisit Anda (misalnya, dalam judul dan) mengakhiri posting Anda lebih umum, "apakah model saya sesuai atau tidak sesuai dengan ini merencanakan". Ada lebih banyak untuk menentukan apakah model tidak tepat daripada menilai heteroskedastisitas.

Saya memo data Anda menggunakan situs web ini (ht @Alexis). Perhatikan bahwa data diurutkan dalam urutan naik dari fitted. Berdasarkan pada regresi dan plot kiri atas, tampaknya cukup setia:

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

masukkan deskripsi gambar di sini

Saya tidak melihat bukti heteroskedastisitas di sini. Dari kanan atas (qq-plot), tampaknya tidak ada masalah dengan asumsi normalitas.

Di sisi lain, kurva "S" pada fit lowess merah (di plot kiri atas), dan plot acf dan pacf (di bagian bawah) memang bermasalah. Di paling kiri, sebagian besar residu berada di atas garis abu-abu 0. Saat Anda bergerak ke kanan, sebagian besar residu turun di bawah 0, lalu di atas, dan kemudian di bawah lagi. Hasil dari ini adalah bahwa jika saya katakan saya melihat residu tertentu dan itu memiliki nilai negatif (tapi saya tidak memberi tahu Anda yang mana yang saya lihat), Anda bisa menebak dengan akurasi yang baik bahwa residu di dekatnya juga dinilai negatif. Dengan kata lain, residu tidak independen — mengetahui sesuatu tentang seseorang memberi Anda informasi tentang orang lain.

Selain plot, ini dapat diuji. Pendekatan sederhana adalah dengan menggunakan tes jalan :

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

X2X3

Untuk menjawab pertanyaan eksplisit Anda: Plot Anda menunjukkan autokorelasi serial / non-independensi residu Anda. Ini berarti bahwa model Anda tidak sesuai dalam bentuknya saat ini.

gung - Reinstate Monica
sumber