Ringkasan
Hasil regresi mungkin memiliki nilai terbatas ketika ditafsirkan dengan cermat. Bentuk variasi yang tidak dapat dihindari akan menyebabkan estimasi koefisien menyusut secara substansial ke nol. Diperlukan model yang lebih baik yang menangani variasi dengan cara yang lebih tepat.
(Model kemungkinan maksimum dapat dibangun tetapi mungkin tidak praktis karena perhitungan yang diperlukan, yang melibatkan evaluasi numerik integral multidimensi. Jumlah dimensi sama dengan jumlah siswa yang terdaftar di kelas.)
pengantar
Sebagai narasi untuk menginformasikan intuisi kita, bayangkan 38 ujian ini diberikan dalam 38 kursus terpisah selama satu semester di sebuah sekolah kecil dengan pendaftaran 200 mahasiswa. Dalam situasi yang realistis para siswa akan memiliki berbagai kemampuan dan pengalaman. Sebagai ukuran pengganti dari kemampuan dan pengalaman ini, kita dapat mengambil, katakanlah, skor pada matematika SAT dan tes verbal dan tahun di perguruan tinggi (1 hingga 4).
Biasanya, siswa akan mendaftar di kursus sesuai dengan kemampuan dan minat mereka. Mahasiswa baru mengambil kursus pengantar dan kursus pengantar dihuni terutama oleh mahasiswa baru. Mahasiswa senior dan mahasiswa baru berbakat dan mahasiswa tahun kedua mengambil kursus lanjutan dan tingkat pascasarjana. Seleksi ini sebagian stratifikasi siswa sehingga kemampuan bawaan siswa dalam kelas apa pun biasanya lebih homogen daripada penyebaran kemampuan di seluruh sekolah.
Dengan demikian, siswa yang paling mampu mungkin menemukan diri mereka mencetak skor di dekat bagian bawah kelas yang sulit, maju di mana mereka mendaftar, sementara siswa yang paling tidak mampu dapat mencetak skor di dekat bagian atas kelas pengantar mudah yang mereka ambil. Ini dapat mengacaukan upaya langsung untuk menghubungkan peringkat ujian secara langsung dengan atribut siswa dan kelas.
Analisis
Buat indeks siswa dengan dan biarkan atribut siswa saya diberikan oleh vektor x i . Buat indeks kelas dengan j dan biarkan atribut kelas j diberikan oleh vektor z j . Himpunan siswa yang terdaftar di kelas j adalah A j .sayasayaxsayajjzjjSEBUAHj
Menganggap "kekuatan" dari masing-masing siswa adalah fungsi dari atribut mereka ditambah beberapa nilai acak, yang mungkin juga memiliki nol berarti:ssaya
ssaya= f( xsaya, β) + εsaya.
Kami memodelkan ujian di kelas dengan menambahkan nilai acak independen pada kekuatan setiap siswa yang terdaftar di kelas dan mengubahnya menjadi peringkat. Dari mana, jika siswa i terdaftar di kelas j , peringkat relatifnya r i , j ditentukan oleh posisi mereka dalam susunan nilai yang diurutkanjsayajrsaya , j
( sk+ δk , j, k ∈ Aj) .
Posisi ini dibagi oleh satu lebih dari total pendaftaran kelas untuk memberikan variabel dependen, peringkat persentase:rsaya , j
halsaya , j= rsaya , j1 + | SEBUAHj|.
Saya mengklaim bahwa hasil regresi bergantung (sedikit) pada ukuran dan struktur nilai acak (tidak teramati) dan δ i , j . εsayaδsaya , j Hasilnya juga tergantung pada bagaimana tepatnya siswa terdaftar di kelas. Ini harus jelas secara intuitif, tetapi yang tidak begitu jelas - dan tampaknya sulit untuk dianalisis secara teoritis - adalah bagaimana dan berapa banyak nilai yang tidak teramati dan struktur kelas memengaruhi regresi.
Simulasi
Tanpa terlalu banyak upaya, kami dapat mensimulasikan situasi ini untuk membuat dan menganalisis beberapa data sampel. Salah satu keuntungan dari simulasi adalah dapat menggabungkan kekuatan sebenarnya dari siswa, yang pada kenyataannya tidak dapat diamati. Lain adalah bahwa kita dapat memvariasikan ukuran khas dari nilai yang tidak teramati serta tugas kelas. Ini memberikan "kotak pasir" untuk menilai metode analitik yang diusulkan seperti regresi.
Untuk memulai, mari atur penghasil angka acak untuk hasil yang dapat direproduksi dan tentukan ukuran masalahnya. Saya menggunakan R
karena tersedia untuk siapa saja.
set.seed(17)
n.pop <- 200 # Number of students
n.classes <- 38 # Number of classes
courseload <- 4.5 # Expected number of classes per student
Untuk memberikan realisme, buat n.classes
kelas dengan berbagai kesulitan pada dua skala (matematika dan verbal, dengan korelasi negatif), dilakukan pada berbagai tingkat akademik (mulai dari 1 = pengantar hingga 7 = penelitian), dan dengan variabel yang mudah. (Dalam kelas "mudah", perbedaan antara jumlah pembelajaran siswa mungkin besar dan / atau ujian dapat memberikan sedikit diskriminasi di antara siswa. Ini dimodelkan dengan istilah acak itu, untuk kelas j cenderung besar (Hasil ujian akan hampir tidak dapat diprediksi dari data kekuatan siswa. Ketika kelas tidak "mudah," istilah-istilah acak ini sangat kecil dan kekuatan siswa dapat dengan sempurna menentukan peringkat ujian.)δsaya , jj
classes <- data.frame(cbind(
math <- runif(n.classes),
rbeta(n.classes, shape1=(verbal <- (1-math)*5), shape2=5-verbal),
runif(n.classes, min=0, max=7),
rgamma(n.classes, 10, 10)))
rm(math, verbal)
colnames(classes) <- c("math.dif", "verbal.dif", "level", "ease")
classes <- classes[order(classes$math.dif + classes$verbal.dif + classes$level), ]
row.names(classes) <- 1:n.classes
plot(classes, main="Classes")
Para siswa tersebar di antara empat tahun dan diberkahi dengan nilai acak atribut mereka. Tidak ada korelasi di antara atribut-atribut ini:
students <- data.frame(cbind(
as.factor(ceiling(runif(n.pop, max=4))),
sapply(rnorm(n.pop, mean=60, sd=10), function(x) 10*median(c(20, 80, floor(x)))),
sapply(rnorm(n.pop, mean=55, sd=10), function(x) 10*median(c(00, 80, floor(x)))),
rnorm(n.pop)
))
colnames(students) <- c("year", "math", "verbal", "ability")
plot(students, main="Students")
Modelnya adalah bahwa setiap siswa memiliki "kekuatan" yang melekat yang ditentukan sebagian oleh atribut mereka dan sebagian oleh "kemampuan" mereka, yang merupakan nilai . Koefisien kekuatan , yang menentukan kekuatan dalam hal atribut lainnya, adalah apa yang akan diestimasi oleh analisis data selanjutnya. Jika Anda ingin bermain dengan simulasi ini, lakukan dengan mengubah . Berikut ini adalah serangkaian koefisien yang menarik dan realistis yang mencerminkan kelanjutan pembelajaran siswa di seluruh perguruan tinggi (dengan jumlah besar antara tahun 2 dan 3); di mana 100 poin pada setiap bagian dari SAT bernilai sekitar satu tahun sekolah; dan di mana sekitar setengah variasi disebabkan oleh nilai "kemampuan" yang tidak ditangkap oleh nilai SAT atau tahun di sekolah.εsayabeta
beta
beta <- list(year.1=0, year.2=1, year.3=3, year.4=4, math=1/100, verbal=1/100, ability=2, sigma=0.01)
students$strength <- (students$year==1)*beta$year.1 +
(students$year==2)*beta$year.2 +
(students$year==3)*beta$year.3 +
(students$year==4)*beta$year.4 +
students$math*beta$math +
students$verbal*beta$verbal +
students$ability*beta$ability
students <- students[order(students$strength), ]
row.names(students) <- 1:n.pop
students$ability
beta$ability
beta$sigma
ease
δsaya , j.01.2
classes
spread
assignments <-...
0
pick.classes <- function(i, k, spread) {
# i is student strength rank
# k is number to pick
p <- pmin(0.05, diff(pbeta(0:n.classes/n.classes, i/spread, (1+n.pop-i)/spread)))
sample(1:n.classes, k, prob=p)
}
students$n.classes <- floor(1/2 + 2 * rbeta(n.pop,10,10) * courseload)
assignments <- lapply(1:n.pop, function(i) pick.classes(i, students$n.classes[i], spread=1))
enrolment <- function(k) length(seq(1, n.pop)[sapply(assignments, function(x) !is.na(match(k, x)))])
classes$size <- sapply(1:n.classes, enrolment)
classes$variation <- by(data, data$Class, function(x) diff(range(x$strength)))
(Sebagai contoh apa yang telah dicapai langkah ini, lihat gambar lebih lanjut di bawah ini.)
n1 / ( n + 1 )n / (n+1)1 / ( n +1 )01
exam.do <- function(k) {
s <- seq(1, n.pop)[sapply(assignments, function(x) !is.na(match(k, x)))]
e <- classes$ease[k]
rv <- cbind(rep(k, length(s)), s, order(rnorm(length(s), students$strength[s], sd=e*beta$sigma*classes$variation[k])))
rv <- cbind(rv, rv[,3] / (length(s)+1))
dimnames(rv) <- list(NULL, c("Class", "Student", "Rank", "Prank"))
rv
}
data.raw <- do.call(rbind, sapply(1:n.classes, exam.do))
Untuk data mentah ini kami melampirkan atribut siswa dan kelas untuk membuat dataset yang cocok untuk analisis:
data <- merge(data.raw, classes, by.x="Class", by.y="row.names")
data <- merge(data, students, by.x="Student", by.y="row.names")
Mari mengarahkan diri kita dengan memeriksa sampel data secara acak:
> data[sort(sample(1:dim(data)[1], 5)),]
Row Student Class Rank Prank math.dif verbal.dif level ease Size year math verbal ability strength n.classes
118 28 1 22 0.957 0.77997 6.95e-02 0.0523 1.032 22 2 590 380 0.576 16.9 4
248 55 5 24 0.889 0.96838 1.32e-07 0.5217 0.956 26 3 460 520 -2.163 19.0 5
278 62 6 22 0.917 0.15505 9.54e-01 0.4112 0.497 23 2 640 510 -0.673 19.7 4
400 89 10 16 0.800 0.00227 1.00e+00 1.3880 0.579 19 1 800 350 0.598 21.6 5
806 182 35 18 0.692 0.88116 5.44e-02 6.1747 0.800 25 4 610 580 0.776 30.7 4
Catatan 118, misalnya, mengatakan bahwa siswa # 28 mendaftar di kelas # 1 dan mendapat skor ke-22 (dari bawah) pada ujian dengan peringkat persentase 0,957. Tingkat kesulitan keseluruhan kelas ini adalah 0,0523 (sangat mudah). Sebanyak 22 siswa terdaftar. Siswa ini adalah mahasiswa tahun kedua (tahun 2) dengan 590 matematika, 380 skor SAT verbal. Kekuatan akademik yang melekat secara keseluruhan mereka adalah 16,9. Mereka terdaftar di empat kelas pada saat itu.
Dataset ini sesuai dengan uraian dalam pertanyaan. Misalnya, peringkat persentase memang hampir seragam (karena harus untuk setiap dataset lengkap, karena peringkat persentase untuk kelas tunggal memiliki distribusi seragam diskrit).
Ingat, berdasarkan koefisien dalam beta
, model ini telah mengasumsikan hubungan yang kuat antara nilai ujian dan variabel yang ditunjukkan dalam dataset ini. Tetapi apa yang ditunjukkan oleh regresi? Mari kita mundur logistik peringkat persentase terhadap semua karakteristik siswa yang dapat diamati yang mungkin terkait dengan kemampuan mereka, serta indikator kesulitan kelas:
logistic <- function(p) log(p / (1-p))
fit <- lm(logistic(Prank) ~ as.factor(year) + math + verbal + level, data=data)
summary(fit)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.577788 0.421579 -6.11 1.5e-09 ***
as.factor(year)2 0.467846 0.150670 3.11 0.0020 **
as.factor(year)3 0.984671 0.164614 5.98 3.2e-09 ***
as.factor(year)4 1.109897 0.171704 6.46 1.7e-10 ***
math 0.002599 0.000538 4.83 1.6e-06 ***
verbal 0.002130 0.000514 4.14 3.8e-05 ***
level -0.208495 0.036365 -5.73 1.4e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.48 on 883 degrees of freedom
Multiple R-squared: 0.0661, Adjusted R-squared: 0.0598
F-statistic: 10.4 on 6 and 883 DF, p-value: 3.51e-11
Plot diagnostik ( plot(fit)
) terlihat fastastic: residualnya adalah homoscedastik dan sangat normal (walaupun sedikit berekor, yang tidak ada masalah); tidak ada pencilan; dan tidak ada pengaruh yang tidak diinginkan dalam pengamatan apa pun.
3.5( - 9 , 1.6 , 3.4 , 3.9 , 0.009 , 0.007 , - 0.7 )( ∗ , 1 , 3 , 4 , 0,010 , 0,010 , ∗ )∗ singkatan dari koefisien yang tidak ditentukan secara eksplisit).
level
07level
(Omong-omong, menggunakan peringkat persentase yang tidak diubah dalam regresi tidak secara kualitatif mengubah hasil yang dilaporkan di bawah ini.)
spread
138
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.902006 0.349924 -14.01 < 2e-16 ***
as.factor(year)2 0.605444 0.130355 4.64 3.9e-06 ***
as.factor(year)3 1.707590 0.134649 12.68 < 2e-16 ***
as.factor(year)4 1.926272 0.136595 14.10 < 2e-16 ***
math 0.004667 0.000448 10.41 < 2e-16 ***
verbal 0.004019 0.000434 9.25 < 2e-16 ***
level -0.299475 0.026415 -11.34 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.3 on 883 degrees of freedom
Multiple R-squared: 0.282, Adjusted R-squared: 0.277
F-statistic: 57.9 on 6 and 883 DF, p-value: <2e-16
spread
38spread
1
Kali ini R-squared jauh lebih baik (walaupun masih belum bagus). Namun, semua koefisien telah meningkat sebesar 20 - 100%. Tabel ini membandingkannya dengan beberapa simulasi tambahan:
Simulation Intercept Year.2 Year.3 Year.4 Math Verbal Level R^2
Beta * 1.0 3.0 4.0 .010 .010 * *
Spread=1 -2.6 0.5 1.0 1.1 .003 .002 -0.21 7%
Spread=38 -4.9 0.6 1.7 1.9 .005 .004 -0.30 25%
Ability=1 -8.3 0.9 2.6 3.3 .008 .008 -0.63 58%
No error -11.2 1.1 3.3 4.4 .011 .011 -0.09 88%
spread
38ability
21ability
sigma
0εsayaδsaya , jlevel
Analisis cepat ini menunjukkan bahwa regresi, setidaknya seperti yang dilakukan di sini, akan mengacaukan bentuk variasi yang tidak dapat dihindari dengan koefisien. Selanjutnya, koefisien juga tergantung (sampai batas tertentu) pada bagaimana siswa didistribusikan di antara kelas-kelas. Ini sebagian dapat ditampung dengan memasukkan atribut kelas di antara variabel independen dalam regresi, seperti yang dilakukan di sini, tetapi meskipun demikian pengaruh distribusi siswa tidak hilang.
Kurang adanya prediktabilitas kinerja siswa sejati, dan variasi dalam pembelajaran siswa dan kinerja aktual pada ujian, tampaknya menyebabkan estimasi koefisien menyusut ke nol. Mereka tampaknya melakukannya secara seragam, menunjukkan bahwa koefisien relatif mungkin masih bermakna.