özet
Dikkatli bir şekilde yorumlandığında regresyon sonuçlarının sınırlı bir değeri olabilir. Kaçınılmaz varyasyon formları katsayı tahminlerinin büyük ölçüde sıfıra doğru küçülmesine neden olacaktır. Varyasyonu daha uygun bir şekilde ele alan daha iyi bir modele ihtiyaç vardır.
(Bir maksimum olasılık modeli oluşturulabilir, ancak çok boyutlu integrallerin sayısal değerlendirmesini içeren gerekli hesaplama nedeniyle uygulanamaz olabilir. Boyutların sayısı, sınıflara kayıtlı öğrenci sayısına eşittir.)
Giriş
Sezgimizi bilgilendirmek için bir anlatım olarak, bu 38 sınavın 200 üniversite öğrencisi olan küçük bir okulda bir dönem 38 ayrı derste verildiğini hayal edin. Gerçekçi bir durumda, bu öğrencilerin değişen yetenekleri ve deneyimleri olacaktır. Bu yeteneklerin ve deneyimlerin vekil ölçütleri olarak, SAT matematik ve sözlü sınavları ve üniversitedeki yıl puanlarını alabiliriz (1'den 4'e kadar).
Tipik olarak, öğrenciler yeteneklerine ve ilgi alanlarına göre derslere kayıt olurlar. Birinci sınıf öğrencileri giriş dersleri alırlar ve başlangıç dersleri öncelikle birinci sınıf öğrencileri tarafından doldurulur. Üst sınıflar ve yetenekli birinci sınıflar ve ikinci sınıf öğrencileri ileri ve lisansüstü düzeydeki dersleri alırlar. Bu seçim, öğrencileri herhangi bir sınıftaki doğuştan gelen yeteneklerinin, okuldaki yeteneklerin yayılmasından tipik olarak daha homojen olması için öğrencileri kısmen tabakalandırır .
Böylece, en yetenekli öğrenciler kayıt yaptıkları zor, ileri sınıfların dibinde puan alırken, en az yetenekli öğrenciler aldıkları kolay giriş sınıflarının üstünde puan alabilirler. Bu, sınav sıralamalarını doğrudan öğrencilerin ve sınıfların nitelikleriyle ilişkilendirmek için doğrudan bir girişimde bulunabilir.
analiz
iixijjzjjAj
si
si=f(xi,β)+εi.
jijri,j
(sk+δk,j,k∈Aj).
ri,j
pi,j=ri,j1+|Aj|.
εiδi,j
Simülasyon
Çok fazla çaba harcamadan , bazı örnek verileri oluşturmak ve analiz etmek için bu durumu simüle edebiliriz. Simülasyonun bir avantajı, gerçekte gözlemlenemeyen öğrencilerin gerçek güçlerini birleştirebilmesidir . Bir diğeri, gözlemlenmeyen değerlerin tipik boyutlarını ve sınıf ödevlerini değiştirebilmemizdir. Bu, regresyon gibi önerilen analitik yöntemleri değerlendirmek için bir "korumalı alan" sağlar.
Başlamak için, tekrarlanabilir sonuçlar için rasgele sayı üretecini ayarlayalım ve sorunun boyutunu belirleyelim. Kullanıyorum R
çünkü herkes kullanabilir.
set.seed(17)
n.pop <- 200 # Number of students
n.classes <- 38 # Number of classes
courseload <- 4.5 # Expected number of classes per student
n.classes
δi,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")
Öğrenciler dört yıl boyunca yayılır ve özelliklerinin rastgele değerleri ile donatılır. Bu özelliklerin hiçbiri arasında korelasyon yoktur:
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")
εibeta
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
δi,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)))
(Bu adımın neyi başardığının bir örneği olarak, aşağıdaki şekle bakın.)
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))
Bu ham verilere, analiz için uygun bir veri kümesi oluşturmak için öğrenci ve sınıf özelliklerini ekleriz:
data <- merge(data.raw, classes, by.x="Class", by.y="row.names")
data <- merge(data, students, by.x="Student", by.y="row.names")
Verilerin rastgele bir örneğini inceleyerek kendimizi yönlendirelim:
> 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
Örneğin, 118 no'lu kayıt 28 numaralı öğrencinin 1. sınıfa kaydolduğunu ve sınavda 0.957'lik bir puan için 22. sıradan (en alttan) puan aldığını söylüyor. Bu sınıfın genel zorluk seviyesi 0.0523'tür (çok kolay). Toplam 22 öğrenci kaydoldu. Bu öğrenci 590 matematik, 380 sözel SAT puanı olan ikinci sınıf öğrencisi (2. sınıf). Genel olarak sahip oldukları akademik güçleri 16,9'dur. O zamanlar dört sınıfa kaydoldular.
Bu veri kümesi, sorudaki açıklama ile karşılaştırılır. Örneğin, yüzde sıraları gerçekten neredeyse aynıdır (herhangi bir tam veri kümesi için olması gerektiği için, çünkü tek bir sınıfın yüzde sıralarının ayrık bir düzgün dağılımı vardır).
Unutmayın, beta
bu modeldeki katsayılar sayesinde inceleme puanları ile bu veri kümesinde gösterilen değişkenler arasında güçlü bir bağlantı olduğunu varsaymaktadır . Peki, regresyon ne gösteriyor? Yüzde derecesinin lojistiğini, yetenekleriyle ilgili olabilecek tüm gözlemlenebilir öğrenci özelliklerine ve sınıf zorluğunun göstergelerine karşı inceleyelim:
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
Teşhis grafikleri ( plot(fit)
) fastastik görünüyor: kalıntılar homoscedastik ve güzel normaldir (biraz kısa kuyruklu olsa da, sorun değil); aykırı değer yok; ve hiçbir gözlemde istenmeyen bir etki yoktur.
3.5(−9,1.6,3.4,3.9,0.009,0.007,−0.7)(∗,1,3,4,0.010,0.010,∗)∗ açıkça belirtilmeyen bir katsayıyı ifade eder).
level
07level
(Bu arada, regresyonda dönüştürülmemiş yüzde derecelerinin kullanılması, aşağıda bildirilen sonuçları niteliksel olarak değiştirmez.)
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
Bu sefer R kare çok gelişti (yine de büyük olmasa da). Ancak, tüm katsayılar% 20 - 100 artmıştır. Bu tablo onları bazı ek simülasyonlarla karşılaştırır:
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εiδi,jlevel
Bu hızlı analiz, regresyonun, en azından burada yapıldığı gibi, katsayılarla kaçınılmaz varyasyon biçimlerini karıştıracağını göstermektedir. Ayrıca, katsayılar (bir dereceye kadar) öğrencilerin sınıflar arasında nasıl dağıldığına da bağlıdır. Bu kısmen, burada yapıldığı gibi, regresyondaki bağımsız değişkenler arasında sınıf öznitelikleri eklenerek sağlanabilir, ancak öğrenci dağılımının etkisi ortadan kalkmaz.
Gerçek öğrenci performansının öngörülebilirliği eksikliği ve öğrenci öğrenimindeki herhangi bir değişiklik ve sınavlardaki gerçek performans, görünüşte katsayı tahminlerinin sıfıra düşmesine neden olur. Göreceli katsayıların yine de anlamlı olabileceğini düşündürerek bunu aynı şekilde yapıyorlar .