1. Tehke paarisregressiooni mudel, mis ennustab matemaatika alatesti skoori (tunnus PVMATH) lugemise skoori kaudu (PVREAD). Kas seos on oluline? Kui suure osa matemaatika testi skooride hajuvusest lugemise testi skoor ära seletab? Mitme punkti võrra muutub matemaatika skoor kui lugemise skoor muutub ühe punkti võrra? Arvutage ka standardiseeritud regressioonikordaja ja mudeli parameetrite usalduspiirid. Mida nende põhjal järeldada saab?
mudel1 <- lm(PVMATH ~ PVREAD, data=pisa)
summary(mudel1)
##
## Call:
## lm(formula = PVMATH ~ PVREAD, data = pisa)
##
## Residuals:
## Min 1Q Median 3Q Max
## -162.940 -28.621 -0.236 27.764 178.393
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.196e+02 3.817e+00 31.33 <2e-16 ***
## PVREAD 7.903e-01 7.474e-03 105.73 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 40.97 on 4766 degrees of freedom
## Multiple R-squared: 0.7011, Adjusted R-squared: 0.701
## F-statistic: 1.118e+04 on 1 and 4766 DF, p-value: < 2.2e-16
2. Proovime mudeleid koostada väiksemas valimis. Teeme kõigepealt tabeli nimega pisa2, millesse valime tabelist pisa juhuslikult 400 vastajat. St valim läheb umbes 10 korda väiksemaks. Sellise tabeli saame alloleva koodireaga:
pisa2 <- pisa[sample(1:nrow(pisa), 400), ]
(Funktsiooniga sample genereerime 400 juhuslikku arvu vahemikus 1-st kuni tabeli pisa ridade arvuni. Pannes selle tabeli nime järele nurksulgude sisse ja selle järele koma, valitakse tabelist nende järjekorranumbritega read.)
A. Koostage tabelit pisa2 kasutades mudel, milles sõltuvaks tunnuseks on matemaatika testi skoor (PVMATH) ja prediktoriteks samad tunnused, millega ülal ennustasime loodusteaduste testi skoori: teaduse oluliseks pidamine (GENSCIE), huvi teaduse vastu (INTSCIE) ja motivatsioon loodusteadusi õppida (INSTSCIE).
mudel2 <- lm(PVMATH ~ GENSCIE + INTSCIE + INSTSCIE, data=pisa2)
summary(mudel2)
##
## Call:
## lm(formula = PVMATH ~ GENSCIE + INTSCIE + INSTSCIE, data = pisa2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -221.110 -45.271 0.169 51.904 223.384
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 517.664 3.672 140.962 < 2e-16 ***
## GENSCIE 22.141 4.313 5.134 4.46e-07 ***
## INTSCIE 9.721 5.239 1.855 0.0643 .
## INSTSCIE -15.405 5.063 -3.042 0.0025 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 70.82 on 396 degrees of freedom
## Multiple R-squared: 0.08498, Adjusted R-squared: 0.07805
## F-statistic: 12.26 on 3 and 396 DF, p-value: 1.098e-07
B. Arvutage ka standardiseeritud kordajad ja mudeli parameetrite 95%-usalduspiird. Standardiseeritud kordajad - ehk beeta kordajad - mitme SD võrra muutub sõltuv muutuja, kui prediktor muutub ühe SD võrra
library(QuantPsyc)
lm.beta(mudel2)
## GENSCIE INTSCIE INSTSCIE
## 0.2676333 0.1004049 -0.1639244
Mudeli parameetire usalduspiirid:
confint(mudel2)
## 2.5 % 97.5 %
## (Intercept) 510.4444870 524.884007
## GENSCIE 13.6623257 30.619243
## INTSCIE -0.5790127 20.021488
## INSTSCIE -25.3589350 -5.450641
C. Kui suure osa sõltuva tunnuse hajuvusest mudel ära seletab? Kas kõik prediktorid on olulised? Kui mõni prediktor pole oluline, tehke uus mudel, millest see välja jäetud on?
mudel3 <- lm(PVMATH ~ GENSCIE + INSTSCIE, data=pisa2)
summary(mudel3)
##
## Call:
## lm(formula = PVMATH ~ GENSCIE + INSTSCIE, data = pisa2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -213.153 -44.268 0.987 54.608 234.232
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 518.777 3.634 142.750 < 2e-16 ***
## GENSCIE 23.996 4.208 5.702 2.31e-08 ***
## INSTSCIE -12.231 4.780 -2.559 0.0109 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 71.04 on 397 degrees of freedom
## Multiple R-squared: 0.07703, Adjusted R-squared: 0.07238
## F-statistic: 16.57 on 2 and 397 DF, p-value: 1.231e-07
D. Arvutage uue mudeli standardiseeritud jäägid (või vana mudeli omad, kui kõik prediktorid on olulised). Kui suur on jääkide osakaal, mille absoluutväärtus on suurem kui 2? Kas neid on liiga palju?
m_residuals <- rstandard(mudel3)
jääke üle kahe:
sum(abs(m_residuals ) > 2)#
## [1] 17
nrow(pisa2) * 0.05# 17 kas seda on rohkem kui 5%
## [1] 20
sum(abs(m_residuals) > 3)# standardiseeritud jäägid absoluutväärtusega üle 3-e
## [1] 2
E. Arvutage mudeli kohta Cooki kaugused. Kas esineb liiga suure mõjukuseastmega vaatlusi?
max(cooks.distance(mudel3))
## [1] 0.1129649
pisa[cooks.distance(mudel3) > 1,]# kui juhtumeid oleks, saaks ühest suuremad nii kätte
## [1] PVMATH PVREAD PVSCIE GENSCIE INSTSCIE INTSCIE JOYSCIE
## [8] PERSCIE SCIEEFF SCIEFUT SCSCIE GR GENDER
## <0 rows> (or 0-length row.names)
F. Kas mudelil on probleeme multikollineaarsuse, heteroskedaktilisuse, jääkide jaotuse või jääkide sõltumatusega?
cor(pisa2[,c("PVMATH", "GENSCIE", "INSTSCIE")])
## PVMATH GENSCIE INSTSCIE
## PVMATH 1.0000000 0.2486080 -0.0377702
## GENSCIE 0.2486080 1.0000000 0.3184769
## INSTSCIE -0.0377702 0.3184769 1.0000000
library(car)
vif(mudel3)#Indeksid väärtusega üle 10-e annava mäarku probleemsest multikollineaarsusest
## GENSCIE INSTSCIE
## 1.112876 1.112876
plot(fitted.values(mudel3), resid(mudel3))
jääkide jaotus
hist(m_residuals)
qqnorm(m_residuals)#Sirge joon esindab normaaljaotust ja punktid jaake
jääkide multikolineaarsus
dwt(mudel3)
## lag Autocorrelation D-W Statistic p-value
## 1 -0.07710556 2.14624 0.148
## Alternative hypothesis: rho != 0
Vaatame väljundis numbrit, mille kohale on kirjutatud D-W Statistic. Selle soovitav väärtus on vahemikus 1 kuni 3, mida lähemal 2-le, seda parem.