सार
ध्यान से व्याख्या करने पर प्रतिगमन परिणाम के कुछ सीमित मूल्य हो सकते हैं। भिन्नता के अनुपयोगी रूप गुणांक अनुमानों को शून्य की ओर पर्याप्त रूप से सिकोड़ेंगे। एक बेहतर मॉडल की आवश्यकता होती है जो बदलाव को अधिक उपयुक्त तरीके से संभालती है।
(अधिकतम संभावना मॉडल का निर्माण किया जा सकता है लेकिन आवश्यक गणना के कारण अव्यावहारिक हो सकता है, जिसमें बहुआयामी इंटीग्रल्स का संख्यात्मक मूल्यांकन शामिल है। आयामों की संख्या कक्षाओं में नामांकित छात्रों की संख्या के बराबर है।)
परिचय
हमारे अंतर्ज्ञान को सूचित करने के लिए एक कथा के रूप में, कल्पना करें कि ये 38 परीक्षाएं 38 अलग-अलग पाठ्यक्रमों में एक कॉलेज के 200 छात्रों के नामांकन के साथ एक सेमेस्टर के दौरान दी गई थीं। यथार्थवादी स्थिति में उन छात्रों की क्षमता और अनुभव अलग-अलग होंगे। इन क्षमताओं और अनुभवों के सरोगेट उपायों के रूप में, हम कह सकते हैं, SAT गणित और मौखिक परीक्षण और कॉलेज में वर्ष (4 के माध्यम से 1) पर स्कोर।
आमतौर पर, छात्र अपनी क्षमताओं और रुचि के अनुसार पाठ्यक्रमों में दाखिला लेंगे। फ्रेशमेन परिचयात्मक पाठ्यक्रम लेते हैं और परिचयात्मक पाठ्यक्रम मुख्य रूप से नए लोगों द्वारा आबाद किए जाते हैं। अपरकेस और प्रतिभाशाली नए और सोफोमोर्स उन्नत और स्नातक स्तर के पाठ्यक्रम लेते हैं। यह चयन छात्रों को आंशिक रूप से स्तरीकृत करता है ताकि किसी भी कक्षा के भीतर छात्रों की जन्मजात क्षमताएं आम तौर पर पूरे स्कूल में क्षमताओं के प्रसार से अधिक सजातीय हों।
इस प्रकार, सबसे सक्षम छात्र अपने आप को कठिन, उन्नत कक्षाओं के नीचे स्कोर कर सकते हैं, जिसमें वे दाखिला लेते हैं, जबकि कम से कम सक्षम छात्र अपने द्वारा लिए जाने वाले आसान परिचयात्मक कक्षाओं में सबसे ऊपर आ सकते हैं। यह सीधे छात्रों और कक्षाओं की विशेषताओं के लिए परीक्षा रैंक से संबंधित प्रत्यक्ष प्रयास को भ्रमित कर सकता है।
विश्लेषण
सूचकांक के साथ छात्रों को और छात्र के गुण जाने वेक्टर द्वारा दिए जाने । सूचकांक के साथ कक्षाएं और वर्ग की विशेषताओं जाने वेक्टर द्वारा दिए जाने । कक्षा में दाखिला लिया छात्रों के सेट है ।iixijjzjjAj
मान लें कि प्रत्येक छात्र का "ताकत" उनकी विशेषताओं का एक फ़ंक्शन है और साथ ही कुछ यादृच्छिक मूल्य, जो शून्य का मतलब हो सकता है:si
si=f(xi,β)+εi.
हम कक्षा में परीक्षा मॉडल प्रत्येक छात्र वर्ग में दाखिला लिया की ताकत को स्वतंत्र यादृच्छिक मान जोड़ने और रैंकों के लिए उन परिवर्तित करके। जब कक्षा में दाखिला उनके रिश्तेदार रैंक को मानों के क्रमबद्ध सरणी में उनकी स्थिति से निर्धारित किया जाता हैjijri,j
(sk+δk,j,k∈Aj).
यह स्थिति आश्रित चर, प्रतिशत रैंक देने के लिए कुल वर्ग नामांकन से एक से अधिक विभाजित है:ri,j
pi,j=ri,j1+|Aj|.
मेरा दावा है कि प्रतिगमन परिणाम यादृच्छिक ( ) मूल्यों और के आकार और संरचना पर निर्भर करते हैं । εiδi,j परिणाम भी ठीक-ठीक इस बात पर निर्भर करते हैं कि छात्रों को कक्षाओं में कैसे दाखिला दिया जाता है। यह सहज रूप से स्पष्ट होना चाहिए, लेकिन जो इतना स्पष्ट नहीं है - और सैद्धांतिक रूप से विश्लेषण करना मुश्किल प्रतीत होता है - यह है कि कैसे और कितने अनबॉर्स्ड मूल्य और वर्ग संरचनाएं प्रतिगमन को प्रभावित करती हैं।
सिमुलेशन
बहुत अधिक प्रयास के बिना हम कुछ नमूना डेटा बनाने और विश्लेषण करने के लिए इस स्थिति का अनुकरण कर सकते हैं । सिमुलेशन का एक फायदा यह है कि इसमें छात्रों की सच्ची ताकत शामिल हो सकती है , जो वास्तव में अवलोकनीय नहीं है। एक और यह है कि हम बिना पढ़े मानों के विशिष्ट आकार के साथ-साथ कक्षा असाइनमेंट को भी भिन्न कर सकते हैं। यह प्रतिगमन जैसे प्रस्तावित विश्लेषणात्मक तरीकों का आकलन करने के लिए एक "सैंडबॉक्स" प्रदान करता है।
आरंभ करने के लिए, चलो प्रतिलिपि प्रस्तुत करने योग्य परिणामों के लिए यादृच्छिक संख्या जनरेटर सेट करें और समस्या का आकार निर्दिष्ट करें। मैं उपयोग करता हूं R
क्योंकि यह किसी के लिए भी उपलब्ध है।
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
दो स्तरों पर अलग-अलग कठिनाइयों के वर्ग बनाएं (गणितीय और मौखिक, एक नकारात्मक सहसंबंध के साथ), अलग-अलग शैक्षणिक स्तरों (1 = 7 से लेकर 7 = अनुसंधान तक) और चर आसानी के साथ। ("आसान" वर्ग में, छात्र सीखने की मात्रा के बीच अंतर बड़ा हो सकता है और / या परीक्षा छात्रों के बीच थोड़ा सा प्रदान कर सकती है। यह यादृच्छिक शब्दों द्वारा बनाया गया है, जो कक्षा के लिए है) बड़े होने के लिए। परीक्षा परिणाम तब छात्र शक्ति डेटा से लगभग अप्रत्याशित होगा। जब कक्षा "आसान" नहीं होती है, तो ये यादृच्छिक शब्द लापरवाही से छोटे होते हैं और छात्र ताकत पूरी तरह से परीक्षा रैंकिंग निर्धारित कर सकते हैं।)δ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")
छात्रों को चार साल के बीच में फैलाया जाता है और उनकी विशेषताओं के यादृच्छिक मूल्यों के साथ संपन्न किया जाता है। इनमें से किसी भी विशेषता में कोई संबंध नहीं हैं:
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")
मॉडल यह है कि प्रत्येक छात्र में एक अंतर्निहित "ताकत" आंशिक रूप से उनकी विशेषताओं से और आंशिक रूप से उनकी "क्षमता" से निर्धारित होती है, जो कि मान है। शक्ति गुणांक , जो अन्य विशेषताओं के संदर्भ में ताकत का निर्धारण करते हैं, बाद के डेटा विश्लेषण का अनुमान लगाने के लिए क्या करेंगे। यदि आप इस सिमुलेशन के साथ खेलना चाहते हैं, तो बदलकर ऐसा करें । निम्नलिखित गुणांक का एक दिलचस्प और यथार्थवादी सेट है जो पूरे कॉलेज में निरंतर छात्र सीखने को दर्शाता है (वर्ष 2 और 3 के बीच एक बड़ी राशि के साथ); जहां SAT के प्रत्येक भाग पर 100 अंक स्कूल के एक वर्ष के लायक हैं; और जहां स्कूल में SAT स्कोर या वर्ष द्वारा कब्जा नहीं किए गए "क्षमता" मूल्यों के कारण लगभग आधा भिन्नता है।ε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 <-...
लाइन निर्धारित करता है कि बारीकी से छात्रों की क्षमता से वर्गों में sectioned हैं। करीब मूल्य अनिवार्य रूप से सबसे आसान पाठ्यक्रमों के साथ सबसे कमजोर छात्रों को जोड़ते हैं। कक्षाओं की संख्या के करीब एक मूल्य छात्रों को थोड़ा और बाहर फैलाता है। इससे बहुत बड़े मूल्य अवास्तविक होने लगते हैं, क्योंकि वे कमजोर छात्रों को सबसे कठिन पाठ्यक्रमों में डाल देते हैं।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)))
(यह कदम क्या पूरा किया है, इसके एक उदाहरण के रूप में, नीचे दिए गए आंकड़े को देखें।)
अब मॉडल लागू करें: प्रत्येक कक्षा में छात्रों की क्षमताओं को स्वतंत्र रूप से विविध - आसान परीक्षाओं के लिए अधिक, कठिन (भेदभावपूर्ण) परीक्षाओं के लिए कम - उनके परीक्षा स्कोर निर्धारित करने के लिए। इन्हें रैंक और "प्रैंक्स" के रूप में संक्षेपित किया गया है, जो रैंक पर्केंट हैं। के एक वर्ग के लिए मज़ाक छात्रों से लेकर के माध्यम से की वृद्धि के साथ । यह बाद में परिवर्तन को लागू करना संभव करेगा जैसे कि लॉजिस्टिक फ़ंक्शन (जो या मान पर लागू होने पर अपरिभाषित है )।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))
इन कच्चे डेटा के लिए, हम विश्लेषण के लिए उपयुक्त डेटासेट बनाने के लिए छात्र और कक्षा के गुणों को संलग्न करते हैं:
data <- merge(data.raw, classes, by.x="Class", by.y="row.names")
data <- merge(data, students, by.x="Student", by.y="row.names")
चलो डेटा के एक यादृच्छिक नमूने का निरीक्षण करके खुद को उन्मुख करते हैं:
> 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
उदाहरण के लिए, रिकॉर्ड 118 में कहा गया है कि छात्र # 28 ने कक्षा # 1 में दाखिला लिया और परीक्षा में 0.957 प्रतिशत के रैंक पर 22 वां (नीचे से) स्कोर किया। इस वर्ग की कठिनाई का समग्र स्तर 0.0523 (बहुत आसान) था। कुल 22 छात्र नामांकित थे। यह छात्र 590 गणित, 380 मौखिक सैट स्कोर के साथ एक वर्ष (2 वर्ष) है। उनकी समग्र अंतर्निहित शैक्षणिक शक्ति 16.9 है। वे उस समय चार वर्गों में नामांकित थे।
यह डेटासेट प्रश्न में वर्णन के साथ संकलित करता है। उदाहरण के लिए, प्रतिशत रैंक वास्तव में लगभग समान हैं (जैसा कि वे किसी भी पूर्ण डेटासेट के लिए होना चाहिए, क्योंकि किसी एकल वर्ग के लिए प्रतिशत रैंक में एक असतत समान वितरण है)।
याद रखें, गुणांक के आधार पर beta
, इस मॉडल ने परीक्षा स्कोर और इस डेटासेट में दिखाए गए चर के बीच एक मजबूत संबंध माना है । लेकिन प्रतिगमन क्या दर्शाता है? आइए उन सभी अवलोकन योग्य छात्र विशेषताओं के खिलाफ प्रतिशत रैंक के लॉजिस्टिक को फिर से हासिल करें जो उनकी क्षमताओं से संबंधित हो, साथ ही साथ कक्षा कठिनाई के संकेतक भी हों:
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(fit)
) फास्टैस्टिक दिखते हैं: अवशिष्ट होमोसैडैस्टिक और सुंदर रूप से सामान्य होते हैं (यद्यपि थोड़ा छोटा पूंछ, जो कोई समस्या नहीं है); कोई आउटलेयर नहीं; और किसी भी अवलोकन में कोई अप्रिय प्रभाव नहीं है।
जैसा कि आप देख सकते हैं, सब कुछ अत्यधिक महत्वपूर्ण है, हालांकि छोटा आर-वर्ग निराशाजनक हो सकता है। सभी गुणांक में मोटे तौर पर सही संकेत और सापेक्ष आकार होते हैं। अगर हम उन्हें से गुणा करते , तो वे बराबर होते । मूल दांव (जहां मतलब एक गुणांक के लिए है जो स्पष्ट रूप से निर्दिष्ट नहीं था)।3.5(−9,1.6,3.4,3.9,0.009,0.007,−0.7)(∗,1,3,4,0.010,0.010,∗)∗
के उच्च महत्व पर ध्यान दें level
, जो कि कक्षाओं का एक गुण है , छात्रों का नहीं। इसका आकार बहुत बड़ा है: वर्ग का स्तर से पास होता है , इसलिए इस सीमा को शो के अनुमानित गुणांक से गुणा करते हुए इसका प्रभाव अन्य आकारों की तरह ही होता है। इसका नकारात्मक संकेत छात्रों के लिए अधिक चुनौतीपूर्ण कक्षाओं में थोड़ा बुरा करने की प्रवृत्ति को दर्शाता है। इस व्यवहार को मॉडल से उभरता देखना बहुत दिलचस्प है , क्योंकि परीक्षा परिणामों को निर्धारित करने में स्तर कभी स्पष्ट रूप से शामिल नहीं था: यह केवल प्रभावित हुआ कि छात्रों ने अपनी कक्षाओं को कैसे चुना।07level
(वैसे, प्रतिगमन में अप्रभावित प्रतिशत रैंकों का उपयोग करके गुणात्मक रूप से नीचे दिए गए परिणामों को परिवर्तित नहीं किया जाता है।)
चलो चीजों को थोड़ा अलग करते हैं। पर सेट 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
)
इस बार R-squared में बहुत सुधार हुआ है (हालाँकि अभी भी बढ़िया नहीं है)। हालांकि, सभी गुणांक 20 - 100% तक बढ़ गए हैं। यह तालिका कुछ अतिरिक्त सिमुलेशन के साथ उनकी तुलना करती है:
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
इस त्वरित विश्लेषण से पता चलता है कि प्रतिगमन, कम से कम यहां प्रदर्शन के रूप में, गुणांक के साथ भिन्नता के अपरिहार्य रूपों को भ्रमित करने वाला है। इसके अलावा, गुणांक भी छात्रों के बीच कक्षाओं में कैसे वितरित किए जाते हैं (कुछ हद तक) निर्भर करते हैं। यह प्रतिगमन में स्वतंत्र चर के बीच वर्ग विशेषताओं को शामिल करके आंशिक रूप से समायोजित किया जा सकता है, जैसा कि यहां किया गया है, लेकिन फिर भी छात्र वितरण का प्रभाव गायब नहीं होता है।
सच्चे छात्र के प्रदर्शन की भविष्यवाणी की कोई कमी, और छात्रों के सीखने और परीक्षाओं में वास्तविक प्रदर्शन में कोई भिन्नता, जाहिर तौर पर गुणांक अनुमान शून्य की ओर हटने का कारण बनते हैं। वे समान रूप से ऐसा करते दिखाई देते हैं, यह सुझाव देते हुए कि सापेक्ष गुणांक अभी भी सार्थक हो सकते हैं।