Jumlah maksimum variabel independen yang dapat dimasukkan ke dalam persamaan regresi berganda

19

Berapa batas jumlah variabel independen yang dapat dimasukkan dalam persamaan regresi berganda? Saya memiliki 10 prediktor yang ingin saya periksa dalam kaitannya dengan kontribusi relatif mereka terhadap variabel hasil. Haruskah saya menggunakan koreksi bonferroni untuk menyesuaikan beberapa analisis?

Melissa Duncombe
sumber

Jawaban:

25

Anda perlu berpikir tentang apa yang Anda maksud dengan "batas". Ada batasan, seperti ketika Anda memiliki lebih banyak prediktor daripada kasus, Anda mengalami masalah dalam estimasi parameter (lihat simulasi R kecil di bagian bawah jawaban ini).

Namun, saya membayangkan Anda berbicara lebih banyak tentang batas lunak terkait dengan kekuatan statistik dan praktik statistik yang baik. Dalam hal ini bahasa "batas" tidak terlalu tepat. Sebaliknya, ukuran sampel yang lebih besar cenderung membuatnya lebih masuk akal untuk memiliki lebih banyak prediktor dan ambang batas berapa banyak prediktor masuk akal bisa dibilang jatuh pada kontinum kewajaran. Anda mungkin menemukan diskusi tentang aturan praktis untuk ukuran sampel dalam regresi berganda yang relevan, karena banyak aturan praktis yang mengacu pada jumlah prediktor.

Beberapa poin

  • Jika Anda lebih mementingkan prediksi keseluruhan daripada dengan signifikansi statistik dari prediktor individual, maka mungkin masuk akal untuk memasukkan lebih banyak prediktor daripada jika Anda lebih mementingkan signifikansi statistik dari prediktor individual.
  • Jika Anda lebih mementingkan pengujian model statistik spesifik yang berhubungan dengan pertanyaan penelitian Anda (misalnya, seperti yang umum dalam banyak aplikasi ilmu sosial), mungkin Anda memiliki alasan untuk memasukkan prediktor tertentu. Namun, Anda mungkin juga memiliki kesempatan untuk selektif di mana prediktor yang Anda sertakan (misalnya, jika Anda memiliki beberapa variabel yang mengukur konstruksi yang sama, Anda mungkin hanya memasukkan salah satu dari mereka). Saat melakukan pengujian model berbasis teori, ada banyak pilihan, dan keputusan tentang prediktor yang akan dimasukkan melibatkan hubungan yang erat antara teori Anda dan pertanyaan penelitian.
  • Saya tidak sering melihat peneliti menggunakan koreksi bonferroni diterapkan pada uji signifikansi koefisien regresi. Salah satu alasan yang masuk akal untuk hal ini adalah para peneliti lebih tertarik untuk menilai sifat keseluruhan model.
  • Jika Anda tertarik untuk menilai kepentingan relatif dari prediktor, saya merasa berguna untuk memeriksa baik hubungan bivariat antara prediktor dan hasil, serta hubungan antara prediktor dan pengendalian hasil untuk prediktor lain. Jika Anda memasukkan banyak prediktor, sering kali Anda memasukkan prediktor yang sangat terkait satu sama lain. Dalam kasus seperti itu, interpretasi indeks kepentingan bivariat dan berbasis model dapat berguna, karena variabel penting dalam arti bivariat mungkin disembunyikan dalam model oleh prediktor berkorelasi lainnya ( saya akan menguraikan lebih lanjut tentang ini di sini dengan tautan ).


Simulasi R kecil

Saya menulis simulasi kecil ini untuk menyoroti hubungan antara ukuran sampel dan estimasi parameter dalam regresi berganda.

set.seed(1)

fitmodel <- function(n, k) {
  # n: sample size
  # k: number of predictors
  # return linear model fit for given sample size and k predictors
  x <- data.frame(matrix( rnorm(n*k), nrow=n))
  names(x) <- paste("x", seq(k), sep="")
  x$y <- rnorm(n)  
  lm(y~., data=x)
}

The fitmodelFungsi membutuhkan dua argumen nuntuk ukuran sampel dan kuntuk jumlah prediktor. Saya tidak menghitung konstanta sebagai prediktor, tetapi diperkirakan. Saya kemudian menghasilkan data acak dan cocok dengan model regresi yang memprediksi variabel dari kvariabel prediktor dan mengembalikan kecocokan.

Mengingat bahwa Anda menyebutkan dalam pertanyaan Anda bahwa Anda tertarik pada apakah 10 prediktor terlalu banyak, panggilan fungsi berikut menunjukkan apa yang terjadi ketika ukuran sampel masing-masing adalah 9, 10, 11, dan 12. Yaitu, ukuran sampel adalah satu kurang dari jumlah prediktor menjadi dua lebih dari jumlah prediktor

summary(fitmodel(n=9, k=10))
summary(fitmodel(n=10, k=10))
summary(fitmodel(n=11, k=10))
summary(fitmodel(n=12, k=10))

> ringkasan (fitmodel (n = 9, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 9 residuals are 0: no residual degrees of freedom!

Coefficients: (2 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.31455         NA      NA       NA
x1           0.34139         NA      NA       NA
x2          -0.45924         NA      NA       NA
x3           0.42474         NA      NA       NA
x4          -0.87727         NA      NA       NA
x5          -0.07884         NA      NA       NA
x6          -0.03900         NA      NA       NA
x7           1.08482         NA      NA       NA
x8           0.62890         NA      NA       NA
x9                NA         NA      NA       NA
x10               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 8 and 0 DF,  p-value: NA 

Ukuran sampel kurang dari jumlah prediktor. Hanya mungkin untuk memperkirakan 9 parameter, salah satunya adalah konstanta.

> ringkasan (fitmodel (n = 10, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 10 residuals are 0: no residual degrees of freedom!

Coefficients: (1 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1724         NA      NA       NA
x1           -0.3615         NA      NA       NA
x2           -0.4670         NA      NA       NA
x3           -0.6883         NA      NA       NA
x4           -0.1744         NA      NA       NA
x5           -1.0331         NA      NA       NA
x6            0.3886         NA      NA       NA
x7           -0.9886         NA      NA       NA
x8            0.2778         NA      NA       NA
x9            0.4616         NA      NA       NA
x10               NA         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 9 and 0 DF,  p-value: NA 

Ukuran sampel sama dengan jumlah prediktor. Hanya mungkin untuk memperkirakan 10 parameter, salah satunya adalah konstanta.

> ringkasan (fitmodel (n = 11, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
ALL 11 residuals are 0: no residual degrees of freedom!

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -0.9638         NA      NA       NA
x1           -0.8393         NA      NA       NA
x2           -1.5061         NA      NA       NA
x3           -0.4917         NA      NA       NA
x4            0.3251         NA      NA       NA
x5            4.4212         NA      NA       NA
x6            0.7614         NA      NA       NA
x7           -0.4195         NA      NA       NA
x8            0.2142         NA      NA       NA
x9           -0.9264         NA      NA       NA
x10          -1.2286         NA      NA       NA

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:     1,  Adjusted R-squared:   NaN 
F-statistic:   NaN on 10 and 0 DF,  p-value: NA 

Ukuran sampel adalah satu lebih dari jumlah prediktor. Semua parameter diperkirakan termasuk konstanta.

> ringkasan (fitmodel (n = 12, k = 10))

Call:
lm(formula = y ~ ., data = x)

Residuals:
        1         2         3         4         5         6         7         8         9        10        11 
 0.036530 -0.042154 -0.009044 -0.117590  0.171923 -0.007976  0.050542 -0.011462  0.010270  0.000914 -0.083533 
       12 
 0.001581 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.14680    0.11180   1.313   0.4144  
x1           0.02498    0.09832   0.254   0.8416  
x2           1.01950    0.13602   7.495   0.0844 .
x3          -1.76290    0.26094  -6.756   0.0936 .
x4           0.44832    0.16283   2.753   0.2218  
x5          -0.76818    0.15651  -4.908   0.1280  
x6          -0.33209    0.18554  -1.790   0.3244  
x7           1.62276    0.21562   7.526   0.0841 .
x8          -0.47561    0.18468  -2.575   0.2358  
x9           1.70578    0.31547   5.407   0.1164  
x10          3.25415    0.46447   7.006   0.0903 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.2375 on 1 degrees of freedom
Multiple R-squared: 0.995,  Adjusted R-squared: 0.9452 
F-statistic: 19.96 on 10 and 1 DF,  p-value: 0.1726 

Ukuran sampel dua lebih dari jumlah prediktor, dan akhirnya mungkin untuk memperkirakan kesesuaian model keseluruhan.

Jeromy Anglim
sumber
Adakah yang bisa menjelaskan mengapa kesalahan standar dalam skenario pertama (n = 9, k = 10) adalah NA? Saya memiliki rumus kesalahan standar, tetapi tidak melihat bagaimana penyebutnya 0 agar kita mendapatkan NA.
matsuo_basho
12

Saya sering melihat ini dari sudut pandang apakah model yang dipasangi sejumlah parameter tertentu cenderung menghasilkan prediksi out-of-sample yang seakurat prediksi yang dibuat pada sampel pengembangan model asli. Kurva kalibrasi, rata-rata kesalahan kuadrat X * Beta, dan indeks diskriminasi prediktif adalah beberapa langkah yang biasanya digunakan. Di sinilah beberapa aturan praktis berasal, seperti aturan 15: 1 (ukuran sampel efektif 15 per parameter yang diperiksa atau diperkirakan).

Mengenai multiplisitas, penyesuaian sempurna untuk multiplisitas, dengan asumsi model berlaku dan asumsi distribusi terpenuhi, adalah ujian global bahwa semua beta (selain intersep) adalah nol. Ini biasanya diuji menggunakan rasio kemungkinan atau uji F.

Ada dua pendekatan keseluruhan untuk pengembangan model yang cenderung bekerja dengan baik. (1) Memiliki ukuran sampel yang memadai dan sesuai dengan seluruh model yang ditentukan sebelumnya, dan (2) menggunakan estimasi kemungkinan maksimum yang dihukum untuk memungkinkan hanya sebanyak derajat kebebasan efektif dalam regresi sebagaimana ukuran sampel saat ini akan mendukung. [Pemilihan variabel bertahap tanpa hukuman tidak akan berperan, karena ini diketahui tidak berfungsi.]

Frank Harrell
sumber
Apakah aturan praktis tersebut didasarkan pada asumsi tentang ukuran koefisien regresi yang sebenarnya dan ukuran varians kesalahan? Apakah saya benar dalam berpikir bahwa jika varians kesalahan diketahui sangat kecil, rasio poin data yang jauh lebih kecil terhadap parameter dapat diterima?
mark999
1
Itu adalah poin yang sangat baik yang saya lupa menyebutkan. Aturan 15: 1 adalah untuk jenis sinyal: rasio kebisingan yang terlihat dalam ilmu biomedis dan sosial. Ketika Anda memiliki varian residu yang rendah, Anda dapat memperkirakan lebih banyak parameter secara akurat.
Frank Harrell
10

Saya akan ulangi pertanyaannya sebagai berikut: Saya memiliki pengamatan, dan calon prediktor. Asumsikan bahwa model yang sebenarnya adalah kombinasi linear dari variabel antara kandidat prediktor . Apakah ada batas atas (batas Anda), sehingga saya masih bisa mengidentifikasi model ini? Secara intuitif, jika terlalu besar dibandingkan dengan , atau lebih besar dibandingkan dengan , mungkin sulit untuk mengidentifikasi model yang benar. Dengan kata lain: apakah ada batasan untuk pemilihan model?p m p m m n pnpmpmmnp

1mKpσ1/log(p)σ1Xσ1p

gappy
sumber
6

Pada prinsipnya, tidak ada batasan berapa banyak prediksi yang dapat Anda miliki. Anda dapat memperkirakan 2 miliar "beta" pada prinsipnya. Tetapi apa yang terjadi dalam praktiknya adalah bahwa tanpa data yang cukup, atau informasi sebelumnya yang memadai, itu tidak akan terbukti merupakan latihan yang sangat bermanfaat. Tidak ada parameter tertentu yang akan ditentukan dengan baik, dan Anda tidak akan belajar banyak dari analisis.

Sekarang jika Anda tidak memiliki banyak informasi sebelumnya tentang model Anda (struktur model, nilai parameter, kebisingan, dll.) Maka Anda akan memerlukan data untuk memberikan informasi ini. Ini biasanya situasi yang paling umum, yang masuk akal, karena Anda biasanya memerlukan alasan yang cukup bagus untuk mengumpulkan data (dan menghabiskan $$$) tentang sesuatu yang sudah Anda ketahui dengan cukup baik. Jika ini adalah situasi Anda, maka batas yang masuk akal adalah memiliki sejumlah besar pengamatan per parameter. Anda memiliki 12 parameter (10 slope betas, 1 intersep, dan parameter noise), jadi apa pun lebih dari 100 pengamatan harus dapat menentukan parameter Anda dengan cukup baik untuk dapat membuat beberapa kesimpulan.

Tetapi tidak ada aturan "keras dan cepat". Dengan hanya 10 prediktor, Anda tidak akan kesulitan dengan waktu perhitungan (dapatkan komputer yang lebih baik jika Anda melakukannya). Ini terutama berarti hanya melakukan lebih banyak pekerjaan, karena Anda memiliki 11 dimensi data untuk diserap - membuatnya sulit untuk memvisualisasikan data. Prinsip dasar dari regresi dengan hanya 1 variabel dependen tidak terlalu berbeda.

Masalah dengan koreksi bonferroni adalah bahwa untuk itu menjadi cara yang masuk akal untuk menyesuaikan tingkat signifikansi Anda tanpa mengorbankan terlalu banyak kekuatan, Anda memerlukan hipotesis yang Anda koreksi untuk menjadi independen (yaitu belajar bahwa satu hipotesis benar tidak memberi tahu Anda tentang apakah hipotesis lain benar). Ini tidak benar untuk standar "uji-t" dalam regresi berganda untuk koefisien co menjadi nol, misalnya. Statistik uji tergantung pada apa lagi dalam model - yang merupakan cara bundaran untuk mengatakan hipotesis itu tergantung. Atau, cara yang lebih sering untuk mengatakan ini adalah bahwa distribusi sampling dari nilai-t bersyarat pada prediktor ke-0 menjadi nol tergantung pada parameter lain apa yang nol. Jadi menggunakan koreksi bonferroni di sini mungkin sebenarnya memberi Anda "keseluruhan" yang lebih rendah

probabilityislogic
sumber