Bagaimana cara membagi r-squared antara variabel prediktor dalam regresi berganda?

16

Saya baru saja membaca sebuah makalah di mana penulis melakukan regresi berganda dengan dua prediktor. Nilai r-squared keseluruhan adalah 0,65. Mereka menyediakan tabel yang membagi r-kuadrat antara dua prediktor. Tabelnya terlihat seperti ini:

            rsquared beta    df pvalue
whole model     0.65   NA  2, 9  0.008
predictor 1     0.38 1.01 1, 10  0.002
predictor 2     0.27 0.65 1, 10  0.030

Dalam model ini, dijalankan Rmenggunakan mtcarsdataset, nilai r-squared keseluruhan adalah 0,76.

summary(lm(mpg ~ drat + wt, mtcars))

Call:
lm(formula = mpg ~ drat + wt, data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.4159 -2.0452  0.0136  1.7704  6.7466 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   30.290      7.318   4.139 0.000274 ***
drat           1.442      1.459   0.989 0.330854    
wt            -4.783      0.797  -6.001 1.59e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 3.047 on 29 degrees of freedom
Multiple R-squared:  0.7609,    Adjusted R-squared:  0.7444 
F-statistic: 46.14 on 2 and 29 DF,  p-value: 9.761e-10

Bagaimana saya bisa membagi nilai r-squared antara dua variabel prediktor?

luciano
sumber
1
Posting ini memberikan informasi tentang cara mempartisi . R2
COOLSerdash
8
Komentar ini dapat mewakili, secara singkat dan tidak memadai, sudut pandang bahwa ini akan sering terbukti sia-sia jika tidak berbahaya. Keberhasilan atau kegagalan suatu model paling baik dianggap sebagai hasil dari upaya tim oleh para prediktor (dan bentuk fungsional khusus mereka, istilah interaksi, dll, dll) dan harus dinilai seperti itu. Secara alami, kebanyakan dari kita tertarik pada kepentingan relatif dari para prediktor dan itu bukan omong kosong, tetapi upaya untuk mengukurnya sebenarnya perlu disertai dengan pernyataan lengkap tentang batasan teknis dan filosofis pada latihan semacam itu.
Nick Cox

Jawaban:

5

Anda bisa mendapatkan dua korelasi yang terpisah dan kuadratkan atau menjalankan dua model terpisah dan mendapatkan R ^ 2. Mereka hanya akan menyimpulkan jika prediktornya ortogonal.

John
sumber
2
Dengan 'ortogonal', apakah maksud Anda dua prediktor harus saling tidak berkorelasi?
luciano
3
Ya, tidak berkorelasi ... itu satu-satunya cara mereka menjumlahkan total.
John
12

Selain jawaban John , Anda mungkin ingin mendapatkan korelasi semi-parsial kuadrat untuk setiap prediktor.

  • Prediktor yang tidak berkorelasi : Jika prediktornya ortogonal (yaitu, tidak berkorelasi), maka korelasi semi-parsial kuadrat akan sama dengan korelasi orde kuadrat kuadrat.
  • Prediktor berkorelasi: Jika prediktor berkorelasi, maka korelasi semi-parsial kuadrat akan mewakili varians unik yang dijelaskan oleh prediktor yang diberikan. Dalam hal ini, jumlah korelasi semi-parsial squared akan kurang dari . Varians yang dijelaskan yang tersisa ini akan mewakili varians yang dijelaskan oleh lebih dari satu variabel.R2

Jika Anda mencari fungsi R ada spcor()di ppcorpaket.

Anda mungkin juga ingin mempertimbangkan topik yang lebih luas dalam mengevaluasi pentingnya variabel dalam regresi berganda (misalnya, lihat halaman ini tentang paket relaimpo ).

Jeromy Anglim
sumber
3

Saya menambahkan tag ke pertanyaan Anda. Ini adalah bagian dari tag wiki-nya :

Salah satu metode yang umum adalah menambahkan regressor ke model satu per satu dan mencatat peningkatan ketika setiap regressor ditambahkan. Karena nilai ini tergantung pada regressor yang sudah ada dalam model, kita perlu melakukan ini untuk setiap pesanan yang memungkinkan di mana regressor dapat memasukkan model, dan kemudian rata-rata atas pesanan. Ini layak untuk model kecil tetapi menjadi penghalang komputasi untuk model besar, karena jumlah pesanan yang mungkin adalah p ! untuk prediktor p .R2p!p

Grömping (2007, The American Statistician ) memberikan ikhtisar dan petunjuk pada literatur dalam konteks menilai kepentingan variabel.

S. Kolassa - Reinstate Monica
sumber
Apakah pesanan itu penting? Maksud saya y ~ a + bakan sama dengan y ~ b + a, bukan? Dan ya, Anda perlu menghitung perbedaan antara y ~ adan y ~ a + bjuga y ~ bdan y ~ a + b, tetapi Anda tidak benar-benar harus lari y ~ b + a, bukan? Jadi, Anda hanya perlu berlari2p
@ naught101: Anda benar tentang urutan model yang tidak penting. Namun, kami mencoba memahami kontribusi untuk berasal dari (katakanlah) . Dan kemudian, kontribusi dalam ketidakhadiranR2aabR2y~1y~abR2y~by~a+b
Benar, ya, begitu. Saya salah membaca kalimat. Anda perlu mengevaluasi 2p2!
@ naught101: hampir benar. Ada 2p=q=0p(pq)(pq)qpq=0qqq=1pq(pq)2p