Kui seni oleme tegelenud mudelitega, mis eeldavad sõltumatuid mõõtmisi, siis segamudel arvestab sellega, et osa mõõtmisi võib tulla korduvatelt subjektidelt.
Juhuslik vabaliige (random intercept) tähendab seda, et lisaks keskmisele vabaliikmele korrigeeritakse seda iga juhusliku faktori taseme jaoks (nt iga indiviidi jaoks algaks koefitsientide võrdlemine natuke erinevalt baastasemelt).
Juhuslik kalle (random slope) tähendaks, et lisaks fikseeritud faktori efektile korrigeeritakse seda efekti vastavalt iga juhusliku faktori tasemele (nt iga indiviidi kohta).
Failis creaky_data_r_course.txt
on andmestik, mis on kogutud TÜ eesti keele spontaanse kõne foneetilisest korpusest, seda on kasutatud artiklis Aare, K., & Lippus, P. (2017). Some gender patterns in Estonian dyadic conversations. J. E. Abrahamsen, J. Koreman, & W. van Dommelen (Toim), Nordic Prosody. Proceedings of the XIIth Conference, Trondheim 2016 (lk 29–38). Peter Lang. https://doi.org/10.13140/RG.2.2.17105.94568
Selles uurimuses on vaadatud mitmeid üldiseid häälelaadi kirjeldavaid parameetreid seoses kõneleja soo ja vanuse ning vestluspartneri vastavate tunnustega. Korpus, mille põhjal on uurimus tehtud, sisaldab kahe kõneleja vaheliste vestluste salvestusi. Iga vestlus kestab umbes pool tundi ja iga vestluse iga osaleja kohta on salvestuse põhjal mõõdetud tema hääle põhitooni keskmist kõrgust (hertsides), põhitooni ulatust (pooltoonides), kui palju ta selle vestluse jooksul rääkis (% salvestuse ajast) ja kui palju tema hääl sel ajal kärises (% kõneldud ajast).
## 'data.frame': 105 obs. of 10 variables:
## $ SP1_ID : Factor w/ 88 levels "SP1","SP10","SP11",..: 23 45 1 45 12 34 23 56 67 78 ...
## $ SP2_ID : Factor w/ 88 levels "SP1","SP10","SP11",..: 45 23 45 1 34 12 56 23 78 67 ...
## $ SP1_gender : Factor w/ 2 levels "F","M": 2 1 1 1 1 1 2 2 1 1 ...
## $ SP2_gender : Factor w/ 2 levels "F","M": 1 2 1 1 1 1 2 2 1 1 ...
## $ SP1_age : int 26 22 36 22 30 27 26 29 23 23 ...
## $ SP2_age : int 22 26 22 36 27 30 29 26 23 23 ...
## $ relative_speakingtime : num 0.229 0.364 0.594 0.175 0.675 ...
## $ f0_mean : num 99.9 227.1 234.7 226.8 173.9 ...
## $ f0_range : num 5.89 5.63 5.6 5.01 6.44 ...
## $ relative_creaking_time: num 0.308 0.204 0.174 0.177 0.254 ...
Üldiselt häälekõrgust võiks kõige rohkem seletada kõneleja sugu: meeste häälekurrud on paksemad kui naistel ja üldiselt meeste hääle kõrgus kõnelemisel jääb 75-150 Hz ja naistel 150-300 Hz vahemikku. Lisaks sõltub hääle kõrgus mingil määral vanusest. Meie andmestik sisaldab küll ainult täiskasvanud kõnelejate andmeid, nii et väga suur muutus, mis murdeeas toimub, siin ei kajastu, aga häälekõrgus muutub siiski mingil määral ka täiskasvanuea jooksul. Ja viimaks, mõnevõrra võiks mõjutada kõneleja häälekõrgust see, kellega ta räägib, sest vestluses kohandame end oma vestluspartneri suhtes. Kõneleja ja vestluspartneri tunnustest saaksime testida:
Kas lineaarse mudeli eeldused on täidetud?
##
## 1 2 3 4
## 79 4 2 3
79 osalejat esineb andmestikus ainult ühe korra ja 9 osalejat osales mitu korda, kolm neist lausa neli korda.
Miks see korduvate mõõtmispunktide küsimus on üldse oluline? Selle pärast, et lisaks fikseeritud faktoritele (sugu, vanus) võib kõneleja häälekõrgust mõjutada (õigemini: mõjutab) tema individuaalne eripära. Kuna meil on andmestikus mõned korduvad kõnelejad, siis võib nende individuaalne efekt mõjutada fikseeritud faktorite mõju.
Kõneleja isikut me ei saa fikseeritud faktorina mudelisse lisada, sest meil on valimis juhuslikud 88 indiviidi (8 miljardist inimesest või 1 miljonist eestlasest). Pealegi me nii väga ei tahagi konkreetse indiviidi efekti määratleda, me lihtsalt tahame selle olemasoluga arvestada.
Kuna lineaarne mudel on tundlik hälbivadte väärtuste suhtes ja meil on andmestikus ainult üksikud üle 70-aastased, siis jätame need välja.
lm0 <- lm(f0_mean~1, data=dat, subset = SP1_age<70)
# lisame 1. tunnusena kõneleja soo
lm1 <- lm(f0_mean~SP1_gender, data=dat, subset = SP1_age<70)
anova(lm0, lm1)
# see oli oluline, lisame teise tunnusena kõneleja vanuse
lm2 <- lm(f0_mean~SP1_gender+SP1_age, data=dat, subset = SP1_age<70)
anova(lm1, lm2)
# see oli ka oluline, nüüd lisame soo ja vanuse interaktsiooni
lm3 <- lm(f0_mean~SP1_gender*SP1_age, data=dat, subset = SP1_age<70)
anova(lm2, lm3)
# see oli jälle oluline, nüüd lisame vestluspartneri soo
lm4 <- lm(f0_mean~SP1_gender*SP1_age + SP2_gender, data=dat, subset = SP1_age<70)
anova(lm3, lm4)
Siit edasi võiks testida a) vestluspartneri soo interaktsiooni kõneleja sooga, b) kõneleja vanusega või c) lisada vestluspartneri vanuse peamõju, aga ükski neist võimalustest ei tee mudelit paremaks; veel võiks testida, kas mudelit teeb paremaks see, kui mõni mudelist lm4 midagi vahetada vestluspartneri vanuse vastu. Proovi seda!
Parim mudel on siiski see:
##
## Call:
## lm(formula = f0_mean ~ SP1_gender * SP1_age + SP2_gender, data = dat,
## subset = SP1_age < 70)
##
## Residuals:
## Min 1Q Median 3Q Max
## -46.120 -11.217 -3.221 14.409 37.482
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 223.5764 6.6976 33.382 < 2e-16 ***
## SP1_genderM -111.2452 10.9378 -10.171 < 2e-16 ***
## SP1_age -0.4852 0.1555 -3.120 0.00238 **
## SP2_genderM -7.9507 3.7298 -2.132 0.03556 *
## SP1_genderM:SP1_age 0.6554 0.2885 2.272 0.02532 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 18.13 on 97 degrees of freedom
## Multiple R-squared: 0.8643, Adjusted R-squared: 0.8587
## F-statistic: 154.4 on 4 and 97 DF, p-value: < 2.2e-16
Installime ja aktiveerime paketi lme4
, kus tuleb segamudeli käsk lmer(). Lisaks oleks hea installida ka paket lmerTest
, mis lisab mudeli väljundile p-väärtused (vaikimis on segamudeli väljund ilma p-väärtusteta).
## Loading required package: Matrix
##
## Attaching package: 'lmerTest'
## The following object is masked from 'package:lme4':
##
## lmer
## The following object is masked from 'package:stats':
##
## step
Segamudelis peab olema vähemalt üks juhuslik faktor. Lisame juhusliku kõneleja efekti vabaliikmele (random intercept).
Võrdleme ainult fikseeritud faktoritega mudelit ja lisatud juhusliku mõjuga mudelit:
## refitting model(s) with ML (instead of REML)
## Data: dat
## Subset: SP1_age < 70
## Models:
## lm4: f0_mean ~ SP1_gender * SP1_age + SP2_gender
## sm4: f0_mean ~ SP1_gender * SP1_age + SP2_gender + (1 | SP1_ID)
## Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
## lm4 6 887.48 903.23 -437.74 875.48
## sm4 7 853.45 871.83 -419.73 839.45 36.026 1 1.947e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Segamudel on oluliselt erinev. Vaatame nüüd mudeli väljundit käsuga summary()
:
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: f0_mean ~ SP1_gender * SP1_age + SP2_gender + (1 | SP1_ID)
## Data: dat
## Subset: SP1_age < 70
##
## REML criterion at convergence: 831.2
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -2.64367 -0.23257 -0.02525 0.24064 1.47608
##
## Random effects:
## Groups Name Variance Std.Dev.
## SP1_ID (Intercept) 288.29 16.98
## Residual 28.63 5.35
## Number of obs: 102, groups: SP1_ID, 85
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 222.5013 7.2043 86.9903 30.884 < 2e-16 ***
## SP1_genderM -109.9750 11.1909 89.1927 -9.827 7.13e-16 ***
## SP1_age -0.5748 0.1742 85.6067 -3.300 0.00141 **
## SP2_genderM -4.9009 2.2191 29.9451 -2.209 0.03500 *
## SP1_genderM:SP1_age 0.7140 0.2911 90.2412 2.453 0.01611 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) SP1_gM SP1_ag SP2_gM
## SP1_genderM -0.635
## SP1_age -0.922 0.597
## SP2_genderM -0.075 -0.073 -0.027
## SP1_gM:SP1_ 0.551 -0.936 -0.598 0.021
Mudeli väljund on üldiselt väga sarnane tavalise lineaarse mudeli väljundile. Mudeli üldist olulisust ei ole küll eraldi real välja toodud, aga on mudeli jääkide jaotus (residuals), mis ebaolulise mudeli jääkide jaotus, mille usaldusvahemik olulise mudeli puhul peaks läbima nulli.
Väljundi lõpus on fikseeritud efektide korrelatsioonimaatriks, mille jälgimine võiks aidata multikollineaarsust vältida.
Kõige huvitavam osa on segamudeli väljundis fikseeritud efektide koefitsientide tabel. Selle lugemine ja tõlgendamine on põhimõtteliselt sama nagu tavalise lineaarse mudeli puhul. Kui varasemates näidetes meil on olnud logaritmitud tunnuseid, siis siin on tõlgendamine seda lihtsam, et kõik tunnused on algsetes ühikutes:
Ilma lmerTest
paketi kasutamata ei esitata fikseeritud efektide tabelis p-väärtusi. Sel juhul peaks hindama faktori olulisust statistiku t väärtuse alusel: rusikareegel on see, et kui selle absoluutväärtus on suurem kui kaks |t| > 2, siis on faktor oluline.
Kuna siin mudelis on seletavate tunnustena kõneleja enda omadused, mis ühe kõneleja puhul korduda ei saa, siis siia juhuslikku kallet lisada ei saa.
Kasutame teist andmestikku, mis on kogutud samast eesti keele spontaanse kõne foneetilisest korpusest, kasutatud artiklis Lippus, P., Asu, E. L., Teras, P., & Tuisk, T. (2013). Quantity-related variation of duration, pitch and vowel quality in spontaneous Estonian. Journal of Phonetics, 41(1), 17–28. https://doi.org/10.1016/j.wocn.2012.09.005
Selles töös uuriti eesti keele välte akustilisi tunnuseid. Andmestikus on info 1714 kahesilbilise sõna kohta, mõõdetud on häälikute kestust, põhitooni liikumist, vokaalikvaliteeti jms. Samuti on märgitud sõnade välde, fookusrõhk jms.
Andmestik on saadaval DataDOI repositooriumis: __http://dx.doi.org/10.15155/repo-16__ . Loeme sisse otse veebilingilt.
Tegemist on korpusuuringuga, mis tüüpiliselt rikub tavalise lineaarse mudeli mõõtmiste sõltumatuse nõuet: meil on ühelt kõnelejalt korjatud kokku kõik uurimiskriteeriumitele vastavad sõnad ja ühelt kõnelejalt on rohkem kui üks rida andmestikus; samuti võivad andmestikus esineda korduvad sõnad.
## 0% 25% 50% 75% 100%
## 23 41 64 108 203
##
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21
## 179 63 28 18 13 8 7 8 5 4 4 1 1 1 3 4 1 2 2 1
## 23 24 25 26 31 36 38 40 50 54 56 93 117
## 2 1 1 1 1 1 1 1 1 1 1 1 1
Eesti keeles on 3 väldet (nt sada : saada : saada) ja välde kõige rohkem mõjutab rõhulise vokaali kestust. Kui uurida vokaali kestust, siis fikseeritud faktorina võiks kestuse varieerumist seletada:
Vokaalide kestust võib mõjutada ka kõnetempo, mis võib olla kõnelejati erinev. Samuti võib mõjutada vokaali häälikuline kontekst ehk sõna, milles ta esineb. Nii nagu kõnelejatest on meil juhuslik valim, on meil ka keeles esinevatest sõnadest juhuslik valim, mistõttu me ei saa nende fikseeritud efekti arvestada.
Kodeerime mõned numbritena sisestatud faktorid ümber faktoriteks:
dat2$Quantity <- factor(dat2$Quantity)
dat2$Focus <- factor(dat2$Focus); levels(dat2$Focus) <- c("no","yes")
Jätame välja kinnise esisilbiga (nn metsa-tüüpi) sõnad, sest neis on esimene vokaal fonoloogiliselt lühike, sest väldet kannab silbilõpukonsonant.
Kui teeme 0-mudeli, siis lmer’i eeldus on, et mudelis on vähemalt üks juhuslik efekt. Kui ühtegi fikseeritud efekti ei ole, siis saab olla selleks ainult juhuslik vabaliige.
Juhuslikku vabaliiget tähistab (1|juhuslik_faktor)
Lisame esimeseks vabaliikmeks kõneleja, seda võiks tõlgendada kui individuaalset kõnetempo efekti.
Ja siis lisame ka ühe fikseeritud faktori, selleks võiks olla välde:
## Data: dat2
## Subset: Struct == "cvcv"
## Models:
## m0: V1 ~ (1 | SP)
## m1: V1 ~ Quantity + (1 | SP)
## Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
## m0 3 13826 13841 -6909.8 13820
## m1 5 12637 12663 -6313.5 12627 1192.8 2 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
## method [lmerModLmerTest]
## Formula: V1 ~ Quantity + (1 | SP)
## Data: dat2
## Subset: Struct == "cvcv"
##
## AIC BIC logLik deviance df.resid
## 12636.9 12662.9 -6313.5 12626.9 1340
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.1132 -0.5804 -0.0664 0.4995 6.4701
##
## Random effects:
## Groups Name Variance Std.Dev.
## SP (Intercept) 154.0 12.41
## Residual 672.3 25.93
## Number of obs: 1345, groups: SP, 21
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 57.534 2.916 21.688 19.73 2.43e-15 ***
## Quantity2 60.672 2.107 1344.435 28.79 < 2e-16 ***
## Quantity3 81.405 2.117 1336.609 38.46 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) Qntty2
## Quantity2 -0.159
## Quantity3 -0.146 0.216
Välte efekt oli oluline. Esimeses vältes oli vokaali pikkus 58 millisekundit, teises 118 ms ja kolmandas vältes 139 ms.
Vaatame nüüd kõnelejatepõhiseid vabaliikmeid:
## $SP
## (Intercept)
## SP1 -18.8245556
## SP10 22.8715327
## SP11 -3.4002727
## SP12 -4.2580888
## SP13 10.6962706
## SP14 14.9482987
## SP15 1.0772266
## SP16 31.0334278
## SP17 -5.7978403
## SP18 -2.7243066
## SP19 -6.2832404
## SP2 -12.4845184
## SP20 -0.3906256
## SP21 -2.9826902
## SP3 -10.8790728
## SP4 -7.1449628
## SP5 -7.5051674
## SP6 0.1493260
## SP7 -7.2053667
## SP8 -3.4094711
## SP9 12.5140970
##
## with conditional variances for "SP"
SP1 kõnetempo on keskmiselt 19 ms kiirem (Q1 58-19=39, Q2 118-19=99, Q3 139-19=120), SP10 on jällegi 23 ms aeglasem, jne. Individuaalne vabaliige tähendab seda, et see efekt liitub kõigele üldiselt.
Siin joonisel on kast-vurrud diagrammina vokaalikestuse jaotused kolmes vältes ja punase joonega on lisatud mudeli hinnang välte efektile:
plot(V1~Quantity, data=dat2, subset=Struct=="cvcv")
coefs <- summary(m1)$coefficients[,"Estimate"]
lines(y=coefs["(Intercept)"]+c(0,coefs[c("Quantity2", "Quantity3")]), x=1:3, lwd=3, col="red")
Siin joonisel on eri värviga iga kõneleja individuaalne joon, mida on mudeli juhusliku vabaliikme põhjal korrigeeritud:
Lisaks individuaalsele üldisele kõnetempole on välte mõju ka kõnelejati veidi erinev. See tähendab, et aeglasema kõnetempoga võib-olla aeglustatakse pikemaid häälikuid rohkem, lühemaid vähem, või vastupidi.
Juhuslikku kallet (random slope) tähistab (1+fikseeritud_faktor|juhuslik_faktor)
. Juhuslik kalle on seotud mingi fikseeritud faktoriga, see see, mille võrra fikseeritud efekti mõju korrigeeritakse.
## boundary (singular) fit: see ?isSingular
## Data: dat2
## Subset: Struct == "cvcv"
## Models:
## m1: V1 ~ Quantity + (1 | SP)
## m2: V1 ~ Quantity + (1 + Quantity | SP)
## Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
## m1 5 12637 12663 -6313.5 12627
## m2 10 12559 12611 -6269.6 12539 87.635 5 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Juhuslik kalle on oluline. Vaatame mudeli väljundit
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
## method [lmerModLmerTest]
## Formula: V1 ~ Quantity + (1 + Quantity | SP)
## Data: dat2
## Subset: Struct == "cvcv"
##
## AIC BIC logLik deviance df.resid
## 12559.3 12611.3 -6269.6 12539.3 1335
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.8904 -0.6038 -0.0848 0.5111 5.8317
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## SP (Intercept) 60.53 7.78
## Quantity2 236.28 15.37 0.87
## Quantity3 260.71 16.15 0.37 0.78
## Residual 619.60 24.89
## Number of obs: 1345, groups: SP, 21
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 57.465 1.948 22.162 29.50 < 2e-16 ***
## Quantity2 56.705 3.981 23.513 14.24 4.68e-13 ***
## Quantity3 82.215 4.218 16.894 19.49 5.14e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) Qntty2
## Quantity2 0.551
## Quantity3 0.156 0.615
## convergence code: 0
## boundary (singular) fit: see ?isSingular
Ja vaatame juhuslikke efekte:
## $SP
## (Intercept) Quantity2 Quantity3
## SP1 -10.3518238 -19.123307 -10.5218030
## SP10 10.5375065 20.919756 13.5963214
## SP11 -3.4892637 -6.641137 -3.9343079
## SP12 -3.4233783 -8.621418 -8.0408498
## SP13 10.0198793 11.496054 -3.7419725
## SP14 5.8241611 19.716678 23.7048969
## SP15 -2.1822877 6.615448 18.9212421
## SP16 19.8129447 37.856554 22.6308119
## SP17 -4.9081889 -12.350911 -11.5088332
## SP18 -1.4343748 -2.163000 -0.4914390
## SP19 -3.0323568 -10.817850 -13.4386491
## SP2 -9.3548166 -11.871677 1.2327796
## SP20 2.0351251 -6.016961 -17.3427491
## SP21 -1.0760415 -2.736590 -2.5804107
## SP3 -7.4205793 -17.399576 -14.8714371
## SP4 -6.1007872 -9.373963 -2.4359633
## SP5 -3.9840520 -5.155234 0.3278672
## SP6 -0.1273821 6.148902 12.5463984
## SP7 -1.5412778 -5.726911 -7.2841358
## SP8 1.9903649 -8.724627 -22.6001425
## SP9 8.2066291 23.969771 25.8323756
##
## with conditional variances for "SP"
Juhuslike kalletega joonis:
plot(V1~Quantity, data=dat2, subset=Struct=="cvcv")
coefs <- summary(m2)$coefficients[,"Estimate"]
for(i in 1:nrow(ranef(m2)$SP)) lines(y=coefs["(Intercept)"]+c(ranef(m2)$SP[i,"(Intercept)"],ranef(m2)$SP[i,"Quantity2"]+coefs["Quantity2"], ranef(m2)$SP[i,"Quantity3"]+coefs["Quantity3"]), x=1:3, col=i)
Lisaks keelejuhi efektile võib korduval sõnal olla efekt.
Võrdleme seda mudeliga, kus oli ainult üks juhuslik vabaliige (1|SP)
## Data: dat2
## Subset: Struct == "cvcv"
## Models:
## m1: V1 ~ Quantity + (1 | SP)
## m3: V1 ~ Quantity + (1 | SP) + (1 | Word)
## Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
## m1 5 12637 12663 -6313.5 12627
## m3 6 12420 12452 -6204.1 12408 218.63 1 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Sõna juhuslik efekt on oluline. Mida see tähendab? Siin mudelis on siis nüüd 2 juhuslikku vabaliiget, st et vabaliiget kohandatakse iga korduva sõna JA iga korduva kõneleja suhtes. Sisuliselt see tähendab, et nii nagu igal kõnelejal võib olla individuaalne kõnetempol võib mõni sõna (näteks sageduse või mingi häälikukombinatsiooni koartikulatsiooni tõttu) olla regulaarselt lühem või pikem kui teised.
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
## method [lmerModLmerTest]
## Formula: V1 ~ Quantity + (1 | SP) + (1 | Word)
## Data: dat2
## Subset: Struct == "cvcv"
##
## AIC BIC logLik deviance df.resid
## 12420.3 12451.5 -6204.1 12408.3 1339
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.9578 -0.5067 -0.0435 0.4552 7.3923
##
## Random effects:
## Groups Name Variance Std.Dev.
## Word (Intercept) 269.7 16.42
## SP (Intercept) 141.3 11.89
## Residual 472.1 21.73
## Number of obs: 1345, groups: Word, 262; SP, 21
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 61.084 3.181 36.290 19.20 <2e-16 ***
## Quantity2 56.312 3.160 299.892 17.82 <2e-16 ***
## Quantity3 87.331 3.263 322.127 26.77 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) Qntty2
## Quantity2 -0.314
## Quantity3 -0.294 0.489
Käsuga ranef()
saab juhuslike faktorite efekte vaadata:
Muidugi ühes mudelis võib olla ka mitu juhuslikku faktorit, millest mõnel on ka juhuslikud kalded ja teisel ei ole, aga peame ka arvestama, et iga juhusliku efekti lisamine võtab fikseeritud efektidelt seletusjõudu vähemaks.
Segamudelist saab ka ANOVA väljundi, et kirjeldada faktori üldefekti olulisust.
## Type III Analysis of Variance Table with Satterthwaite's method
## Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
## Quantity 352128 176064 2 365.49 372.97 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Siit võib siis väita, et vältel on vokaali kestusele oluline efekt F(2, 365.49) = 372.97, p < 0.001.
Ja samuti peaks tegema post-hoc testi segamudeli puhul, kui on faktor, millel on rohkem kui kaks taset ja tahame võrrelda ka mittebaastasemetevahelisi erinevusi. Tukey HSD testi tegemiseks saab kasutada näiteks multcomp
paketti.
## Loading required package: mvtnorm
## Loading required package: survival
## Loading required package: TH.data
## Loading required package: MASS
##
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
##
## geyser
##
## Simultaneous Tests for General Linear Hypotheses
##
## Multiple Comparisons of Means: Tukey Contrasts
##
##
## Fit: lmer(formula = V1 ~ Quantity + (1 | SP) + (1 | Word), data = dat2,
## REML = F, subset = Struct == "cvcv")
##
## Linear Hypotheses:
## Estimate Std. Error z value Pr(>|z|)
## 2 - 1 == 0 56.312 3.160 17.819 <2e-16 ***
## 3 - 1 == 0 87.331 3.263 26.766 <2e-16 ***
## 3 - 2 == 0 31.018 3.249 9.547 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- holm method)
Post-hoc testi tulemusel võib öelda, et vokaali kestus on oluliselt erinev kõigis kolmes vältes p<0.001.
ldt.csv
on töödeldud nii, et seal on sõltumatud mõõtmised, sest iga sõna kohta on arvutatud katseisikute keskmine reaktsiooniaeg. Eelmises praktikumis leidsime, et reaktsiooniaega mõjutab sõna pikkus ja sagedus, aga nende vahel ei ole olulist interaktsiooni. Kui meil oleks kasutada katseandmestik sellisel kujul, et iga rida tabelis on ühe katsisiku reaktsiooniaeg vastavale sõnale, siis peaks segamudelis testima ka