Tóm tắc
Kết quả hồi quy có thể có một số giá trị giới hạn khi được giải thích cẩn thận. Các hình thức biến đổi không thể tránh khỏi sẽ làm cho các ước tính hệ số bị thu hẹp đáng kể về không. Một mô hình tốt hơn là cần thiết để xử lý sự thay đổi theo cách phù hợp hơn.
(Một mô hình khả năng tối đa có thể được xây dựng nhưng có thể không khả thi do tính toán cần thiết, bao gồm đánh giá bằng số các tích phân đa chiều. Số lượng kích thước bằng với số lượng học sinh đăng ký vào các lớp học.)
Giới thiệu
Như một bài tường thuật để thông báo trực giác của chúng tôi, hãy tưởng tượng rằng 38 bài kiểm tra này đã được đưa ra trong 38 khóa học riêng biệt trong một học kỳ tại một trường nhỏ với tuyển sinh 200 sinh viên đại học. Trong một tình huống thực tế, những sinh viên đó sẽ có những khả năng và kinh nghiệm khác nhau. Là những biện pháp thay thế cho những khả năng và kinh nghiệm này, chúng ta có thể thực hiện, điểm số trong bài kiểm tra toán và lời nói SAT và năm học đại học (1 đến 4).
Thông thường, sinh viên sẽ ghi danh vào các khóa học theo khả năng và sở thích của họ. Sinh viên năm nhất tham gia các khóa học giới thiệu và các khóa học giới thiệu được tập trung chủ yếu bởi sinh viên năm nhất. Upperclassmen và sinh viên năm nhất tài năng và sinh viên năm hai tham gia các khóa học nâng cao và sau đại học. Lựa chọn này phân tầng một phần cho học sinh để các khả năng bẩm sinh của học sinh trong bất kỳ lớp học nào thường đồng nhất hơn so với việc lan truyền các khả năng trong toàn trường.
Do đó, những sinh viên có khả năng nhất có thể thấy mình đạt điểm gần cuối các lớp khó, nâng cao mà họ đăng ký, trong khi những sinh viên có khả năng thấp nhất có thể đạt điểm cao nhất trong các lớp giới thiệu dễ dàng mà họ tham gia. Điều này có thể gây nhiễu một nỗ lực trực tiếp liên quan đến xếp hạng bài kiểm tra trực tiếp đến các thuộc tính của học sinh và các lớp.
Phân tích
Lập chỉ mục các sinh viên với và để các thuộc tính của sinh viêni được cho bởi vectơ x i . Lập chỉ mục các lớp với j và để các thuộc tính của lớp jixijj được cho bởi vectơ . Tập hợp học sinh đăng ký vào lớp j là A j .zjjAj
Giả sử "sức mạnh" của mỗi học sinh là một chức năng của các thuộc tính của họ cộng với một số giá trị ngẫu nhiên, có thể cũng có không có nghĩa là:si
si=f(xi,β)+εi.
Chúng tôi mô hình hóa bài kiểm tra trong lớp bằng cách thêm các giá trị ngẫu nhiên độc lập vào sức mạnh của mỗi học sinh đăng ký vào lớp và chuyển đổi các thứ hạng thành thứ hạng. Vì vậy, nếu học sinh i được đăng ký vào lớp j , thứ hạng tương đối của chúng r i , j được xác định bởi vị trí của chúng trong mảng giá trị được sắp xếpjijri,j
(sk+δk,j,k∈Aj).
Vị trí này được chia cho một hơn tổng số đăng ký lớp để đưa ra biến phụ thuộc, thứ hạng phần trăm:ri,j
pi,j=ri,j1+|Aj|.
Tôi khẳng định rằng kết quả hồi quy phụ thuộc (khá nhiều) vào kích thước và cấu trúc của các giá trị ngẫu nhiên (không quan sát) εi và . δi,j Kết quả cũng phụ thuộc vào chính xác cách học sinh đăng ký vào lớp. Điều này nên rõ ràng bằng trực giác, nhưng điều không rõ ràng - và có vẻ khó phân tích về mặt lý thuyết - là cách thức và mức độ của các giá trị không quan sát được và các cấu trúc lớp ảnh hưởng đến hồi quy.
Mô phỏng
Không cần quá nhiều nỗ lực, chúng ta có thể mô phỏng tình huống này để tạo và phân tích một số dữ liệu mẫu. Một lợi thế của mô phỏng là nó có thể kết hợp các thế mạnh thực sự của sinh viên, trong thực tế không thể quan sát được. Một điều nữa là chúng ta có thể thay đổi kích thước điển hình của các giá trị không quan sát được cũng như các bài tập lớp. Điều này cung cấp một "hộp cát" để đánh giá các phương pháp phân tích được đề xuất như hồi quy.
Để bắt đầu, hãy đặt trình tạo số ngẫu nhiên cho các kết quả có thể lặp lại và chỉ định kích thước của vấn đề. Tôi sử dụng R
vì nó có sẵn cho bất cứ ai.
set.seed(17)
n.pop <- 200 # Number of students
n.classes <- 38 # Number of classes
courseload <- 4.5 # Expected number of classes per student
Để cung cấp chủ nghĩa hiện thực, tạo ra n.classes
các lớp có độ khó khác nhau trên hai thang đo (toán học và bằng lời nói, với mối tương quan phủ định), được thực hiện ở các cấp độ học tập khác nhau (từ 1 = giới thiệu đến 7 = nghiên cứu) và dễ dàng thay đổi. (Trong một lớp "dễ", sự khác biệt giữa số lượng học sinh có thể lớn và / hoặc bài kiểm tra có thể cung cấp ít sự phân biệt đối xử giữa các học sinh. Điều này được mô phỏng theo các thuật ngữ ngẫu nhiên rằng, đối với lớpjcó xu hướng lớn Kết quả bài kiểm tra sau đó sẽ gần như không thể đoán trước được từ dữ liệu sức mạnh của học sinh. Khi lớp học không "dễ dàng", các thuật ngữ ngẫu nhiên này nhỏ không đáng kể và điểm mạnh của học sinh có thể xác định hoàn toàn thứ hạng bài kiểm tra.)δ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")
Các sinh viên được trải đều trong bốn năm và được ban cho các giá trị ngẫu nhiên của các thuộc tính của họ. Không có mối tương quan giữa bất kỳ thuộc tính nào trong số này:
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")
Mô hình là mỗi sinh viên có một "sức mạnh" vốn có được xác định một phần bởi các thuộc tính của họ và một phần bởi "khả năng" của họ, đó là giá trị ε i . Các hệ số cường độ, xác định độ mạnh theo các thuộc tính khác, là những gì phân tích dữ liệu tiếp theo sẽ tìm cách ước tính. Nếu bạn muốn chơi với mô phỏng này, hãy làm như vậy bằng cách thay đổi. Sau đây là một bộ hệ số thú vị và thực tế phản ánh việc học sinh tiếp tục học trong suốt đại học (với số lượng lớn giữa năm 2 và 3); trong đó 100 điểm cho mỗi phần của SAT có giá trị khoảng một năm học; và trong đó khoảng một nửa biến thể là do các giá trị "khả năng" không được nắm bắt bởi điểm SAT hoặc năm học.ε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
(Ghi nhớ rằng students$ability
là không quan sát được: nó là một độ lệch rõ ràng ngẫu nhiên giữa sức mạnh dự đoán từ các thuộc tính quan sát khác và sức mạnh thực tế trong các kỳ thi Để loại bỏ hiệu ứng ngẫu nhiên này, thiết lập. beta$ability
Không. beta$sigma
Sẽ nhânease
giá trị: về cơ bản là độ lệch chuẩn của δi,j liên quan đến phạm vi điểm mạnh của sinh viên trong một khóa học nhất định. Các giá trị trong khoảng từ đến 0,5 có vẻ hợp lý với tôi.).01.2
Hãy để các sinh viên chọn các khóa học để phù hợp với khả năng của họ. Khi họ thực hiện điều đó, chúng ta có thể tính toán kích thước lớp và bỏ qua chúng vớiclasses
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)))
(Như một ví dụ về những gì bước này đã đạt được, xem hình bên dưới.)
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))
Với những dữ liệu thô này, chúng tôi đính kèm các thuộc tính của sinh viên và lớp để tạo ra một bộ dữ liệu phù hợp để phân tích:
data <- merge(data.raw, classes, by.x="Class", by.y="row.names")
data <- merge(data, students, by.x="Student", by.y="row.names")
Hãy tự định hướng bằng cách kiểm tra một mẫu dữ liệu ngẫu nhiên:
> 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
Ví dụ, bản ghi 118 nói rằng học sinh # 28 đã đăng ký vào lớp 1 và đạt điểm 22 (từ dưới lên) trong bài kiểm tra cho thứ hạng phần trăm là 0,957. Mức độ khó chung của lớp này là 0,0523 (rất dễ). Tổng cộng có 22 sinh viên đã theo học. Học sinh này là sinh viên năm thứ hai (năm 2) với 590 môn toán, 380 điểm SAT bằng lời nói. Sức mạnh học tập tổng thể vốn có của họ là 16,9. Họ đã được ghi danh vào bốn lớp học tại thời điểm đó.
Bộ dữ liệu này ứng xử với mô tả trong câu hỏi. Ví dụ, thứ hạng phần trăm thực sự gần như thống nhất (vì chúng phải dành cho bất kỳ tập dữ liệu hoàn chỉnh nào, bởi vì thứ hạng phần trăm cho một lớp duy nhất có phân phối thống nhất rời rạc).
Hãy nhớ rằng, nhờ vào các hệ số trong beta
, mô hình này đã giả định một mối liên hệ chặt chẽ giữa điểm kiểm tra và các biến được hiển thị trong bộ dữ liệu này. Nhưng hồi quy cho thấy gì? Chúng ta hãy hồi quy logistic của xếp hạng phần trăm so với tất cả các đặc điểm sinh viên có thể quan sát được có thể liên quan đến khả năng của họ, cũng như các chỉ số về độ khó của lớp:
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
Lô chẩn đoán (plot(fit)
) nhìn nhanh, phần dư là homoscedastic và đẹp bình thường (mặc dù đuôi hơi ngắn, không có vấn đề gì); không có ngoại lệ; và không có ảnh hưởng vô song trong bất kỳ quan sát.
3.5(−9,1.6,3.4,3.9,0.009,0.007,−0.7)(∗,1,3,4,0.010,0.010,∗)∗ là viết tắt của một hệ số không được chỉ định rõ ràng).
level
07level
(Nhân tiện, sử dụng các tỷ lệ phần trăm chưa được điều chỉnh trong hồi quy sẽ không thay đổi về mặt chất lượng các kết quả được báo cáo dưới đây.)
spread
138 , do đó tạo ra sự phân phối rộng hơn (thực tế hơn) của sinh viên trong các lớp học. Chạy lại mọi thứ từ đầu cho kết quả sau:
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
38 , học sinh được sắp xếp theo mức tăng sức mạnh và các lớp được sắp xếp theo mức tăng. Khi spread
ban đầu được đặt thành1
, biểu đồ phân công rơi vào một đường chéo chặt chẽ. Học sinh có xu hướng học các lớp dễ hơn và những học sinh mạnh hơn tham gia các lớp học khó hơn, nhưng có rất nhiều trường hợp ngoại lệ. )
Lần này R-squared được cải thiện nhiều (mặc dù vẫn không tuyệt vời). Tuy nhiên, tất cả các hệ số đã tăng 20 - 100%. Bảng này so sánh chúng cùng với một số mô phỏng bổ sung:
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εTôiδtôi , jlevel
Phân tích nhanh này cho thấy hồi quy, ít nhất là được thực hiện ở đây, sẽ gây nhiễu các dạng biến đổi không thể tránh khỏi với các hệ số.Hơn nữa, các hệ số cũng phụ thuộc (ở một mức độ nào đó) vào cách học sinh được phân phối giữa các lớp. Điều này có thể được hỗ trợ một phần bằng cách bao gồm các thuộc tính lớp trong số các biến độc lập trong hồi quy, như được thực hiện ở đây, nhưng ngay cả như vậy, hiệu ứng phân phối sinh viên không biến mất.
Bất kỳ sự thiếu dự đoán nào về kết quả học tập thực sự của học sinh và bất kỳ sự thay đổi nào trong học tập của học sinh và hiệu suất thực tế trong các kỳ thi, rõ ràng khiến các ước tính hệ số thu nhỏ về không. Chúng dường như làm như vậy một cách thống nhất, cho thấy các hệ số tương đối có thể vẫn có ý nghĩa.