Ini adalah contoh balasan menggunakan data yang dibuat secara acak dan R:
library(MASS)
library(leaps)
v <- matrix(0.9,11,11)
diag(v) <- 1
set.seed(15)
mydat <- mvrnorm(100, rep(0,11), v)
mydf <- as.data.frame( mydat )
fit1 <- lm( V1 ~ 1, data=mydf )
fit2 <- lm( V1 ~ ., data=mydf )
fit <- step( fit1, formula(fit2), direction='forward' )
summary(fit)$r.squared
all <- leaps(mydat[,-1], mydat[,1], method='r2')
max(all$r2[ all$size==length(coef(fit)) ])
plot( all$size, all$r2 )
points( length(coef(fit)), summary(fit)$r.squared, col='red' )
Whuber menginginkan proses berpikir: sebagian besar kontras antara rasa ingin tahu dan kemalasan. Posting asli berbicara tentang memiliki 10 variabel prediktor, jadi itulah yang saya gunakan. Korelasi 0,9 adalah angka bulat yang bagus dengan korelasi yang cukup tinggi, tetapi tidak terlalu tinggi (jika terlalu tinggi maka stepwise kemungkinan besar hanya akan mengambil 1 atau 2 prediktor), saya pikir peluang terbaik untuk menemukan contoh penghitung akan mencakup cukup banyak collinearity. Contoh yang lebih realistis akan memiliki berbagai korelasi yang berbeda (tetapi masih cukup banyak collinearity) dan hubungan yang pasti antara prediktor (atau sebagian dari mereka) dan variabel respon. Ukuran sampel 100 adalah juga yang pertama saya coba sebagai angka bulat yang bagus (dan aturan praktis mengatakan Anda harus memiliki setidaknya 10 pengamatan per prediktor). Saya mencoba kode di atas dengan seed 1 dan 2, lalu membungkus semuanya menjadi satu lingkaran dan mencoba berbagai seed yang berbeda secara berurutan. Sebenarnya berhenti di seed 3, tetapi perbedaannyaR2 berada di titik desimal ke-15, jadi saya pikir itu kemungkinan kesalahan pembulatan dan memulai kembali dengan perbandingan pembulatan pertama hingga 5 digit. Saya terkejut bahwa ia menemukan perbedaan segera setelah 15. Jika tidak menemukan contoh penghitung dalam jumlah waktu yang wajar saya akan mulai mengutak-atik hal-hal (korelasi, ukuran sampel, dll.).