load("data/kysimustik_2024.RData")
# Jätame välja ühe vaatluse
kysimustik2 <- droplevels(kysimustik[kysimustik$lemmikloom != "Mulle ei meeldi loomad",])
mod <- lm(kaua_opid ~ synniaasta + kogemused_kvant + lemmikloom, data = kysimustik2)
summary(mod)
##
## Call:
## lm(formula = kaua_opid ~ synniaasta + kogemused_kvant + lemmikloom,
## data = kysimustik2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10.1342 -1.5311 -0.1607 1.1202 12.5656
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 716.27254 75.99001 9.426 2.13e-15 ***
## synniaasta -0.35624 0.03812 -9.344 3.20e-15 ***
## kogemused_kvantJah 1.54848 0.68303 2.267 0.02558 *
## lemmikloomKaelkirjak -1.82008 0.93379 -1.949 0.05414 .
## lemmikloomKoer -2.34155 0.87172 -2.686 0.00849 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.237 on 98 degrees of freedom
## Multiple R-squared: 0.5149, Adjusted R-squared: 0.4951
## F-statistic: 26 on 4 and 98 DF, p-value: 1.061e-14
Lineaarne regressioon aitab seletada arvulise uuritava
tunnuse varieerumist ühe või enama seletava tunnuse
põhjal.
Seletavad tunnused võivad olla nii
Lineaarse mudeli väljundi vabaliige (intercept) näitab arvulise uuritava tunnuse ennustatud väärtust kontekstis, kus arvulise seletava tunnuse väärtus on (vaikimisi) 0 ja kategoriaalse seletava tunnuse väärtus on (vaikimisi) tähestikulises järjekorras kõige esimene tase.
kogemused_kvant
baastase on
Ei
ja tunnuse lemmikloom
baastase on
Glaucus atlanticus
.Lineaarse mudeli väljundi koefitsiendid (coefficient) ehk regressioonikordajad näitavad muutust arvulise uuritava tunnuse väärtuses, kui muuta seletava tunnuse väärtust (kas 1 ühiku võrra või 1 taseme võrra).
716.27254 + 1987 * (-0.35624)
ehk 8.4196675 aastat.716.27254 + 1987 * (-0.35624) + 1.54848
ehk 9.9681502
aastat.716.27254 + 1987 * (-0.35624) + 1.54848 -2.34155
ehk
7.6266024.
Mudeli ennustusi konkreetsetele vaatlustele saame küsida ka
funktsiooniga predict()
, kui anname ette andmetabeli
seletavate tunnuste väärtustega.
predict(mod,
data.frame(synniaasta = 1987, kogemused_kvant = "Jah", lemmikloom = "Glaucus atlanticus"))
## 1
## 9.96815
## 1
## 7.626602
Kategoriaalse seletava tunnuse puhul, millel on > 2 taset ja seega
> 1 koefitsienti, hindavad kõik koefitsiendid muutust
võrreldes baastasemega ega ütle midagi koefitsientide
omavahelise suhte kohta. Näiteks hindavad kõik tunnuse
lemmikloom
koefitsiendid muutust võrreldes glaucus
atlanticusega.
Erinevuse suunda võrreldes baastasemega näitab
koefitsiendi märk: kui koefitsient on positiivne, siis uuritava tunnuse
ennustatud väärtus kasvab, kui koefitsient on negatiivne, siis
kahaneb.
Erinevuse statistilist olulisust näitavad
koefitsientide p-väärtused. Kui koefitsiendi p-väärtus
on > 0.05, ei ole statistiliselt olulist erinevust võrreldes
baaskontekstiga (mis ei tähenda tingimata, et erinevus ei oleks
oluline mingite teiste väärtuste vahel). Näiteks on ennustatud õpitud
aastate arv oluliselt erinev osalejal, kelle hüpoteetiline sünniaasta on
0, ja osalejal, kelle hüpoteetiline sünniaasta on 1. Samuti on
ennustatud õpitud aastate arv oluliselt erinev osalejal, kelle
lemmikloom on glaucus atlanticus, ja osalejal, kelle lemmikloom on koer
(aga me ei tea, kas ka näiteks kaelkirjaku ja koera vahel).
Tasemete omavahelist erinevust saab hinnata post-hoc testide või jooniste abil.
# https://strengejacke.github.io/ggeffects/articles/introduction_plotmethod.html
# install.packages("ggeffects")
library(ggeffects)
plot(ggpredict(mod))
anova()
, mis teeb I tüüpi ANOVA.car::Anova()
),
vastavalt sellele, kas mudelis on olulisi interaktsioone (III) või mitte
(II). Kui kasutada ainult ühe mudeli tunnuste olulisuse hindamiseks I
tüüpi ANOVAt, sõltub tulemus tasakaalustamata andmestikus sellest, mis
järjekorras tunnuseid mudelisse on lisatud.
- Ka regressioonimudelite tulemusi saab lasta automaatselt
raporteerida.
## We fitted a linear model (estimated using OLS) to predict kaua_opid with
## synniaasta, kogemused_kvant and lemmikloom (formula: kaua_opid ~ synniaasta +
## kogemused_kvant + lemmikloom). The model explains a statistically significant
## and substantial proportion of variance (R2 = 0.51, F(4, 98) = 26.00, p < .001,
## adj. R2 = 0.50). The model's intercept, corresponding to synniaasta = 0,
## kogemused_kvant = Ei and lemmikloom = Glaucus atlanticus, is at 716.27 (95% CI
## [565.47, 867.07], t(98) = 9.43, p < .001). Within this model:
##
## - The effect of synniaasta is statistically significant and negative (beta =
## -0.36, 95% CI [-0.43, -0.28], t(98) = -9.34, p < .001; Std. beta = -0.66, 95%
## CI [-0.81, -0.52])
## - The effect of kogemused kvant [Jah] is statistically significant and positive
## (beta = 1.55, 95% CI [0.19, 2.90], t(98) = 2.27, p = 0.026; Std. beta = 0.34,
## 95% CI [0.04, 0.64])
## - The effect of lemmikloom [Kaelkirjak] is statistically non-significant and
## negative (beta = -1.82, 95% CI [-3.67, 0.03], t(98) = -1.95, p = 0.054; Std.
## beta = -0.40, 95% CI [-0.81, 7.24e-03])
## - The effect of lemmikloom [Koer] is statistically significant and negative
## (beta = -2.34, 95% CI [-4.07, -0.61], t(98) = -2.69, p = 0.008; Std. beta =
## -0.51, 95% CI [-0.89, -0.13])
##
## Standardized parameters were obtained by fitting the model on a standardized
## version of the dataset. 95% Confidence Intervals (CIs) and p-values were
## computed using a Wald t-distribution approximation.
mod2 <- lm(kaua_opid ~ synniaasta*lemmikloom, data = kysimustik2)
plot(ggpredict(mod2, terms = c("synniaasta", "lemmikloom")))
# Sünniaasta efekt on igal pool negatiivne (= mida suurem sünniaasta, seda vähem ülikoolis õpitud aastaid),
# aga glaucus atlanticuse valinute puhul on sünniaasta efekt palju suurem (= noorte ja vanade vahel suuremad erinevused õpitud aastates).
# Lemmiklooma efekt (= glaucus atlanticuse valinud on keskmiselt kauem õppinud) püsib ainult u kuni sünniaastani 1995.
mudeli_nimi$residuals
) hajuvus on
ühtlane,plot(mudeli_nimi)
:
performance
.# https://easystats.github.io/performance/articles/check_model.html
# install.packages("performance")
library(performance)
check_model(mod)
Mida komplekssem on mudel, seda keerulisemaks eelduste kontroll läheb
(mistõttu jäetakse see oluline osa sageli tegemata).
- Loe ka nt Ako Sauga (2020). Statistika
õpik majanduseriala üliõpilastele.
Logistiline regressioon seletab ühe tunnuse muutumist sõltuvalt teis(t)e tunnus(t)e muutumisest, kui sõltuvaks muutujaks/uuritavaks tunnuseks on kategoriaalne tunnus.
Logistilise regressiooni mudel näeb välja sarnane lineaarse
regressioonimudeli omaga. Funktsiooni lm()
asemel kasutame
funktsiooni glm()
, kuna logistiline regressioon on üks
mudel nn üldistatud lineaarsete mudelite
(generalized linear
models) perest. Üldistatud lineaarseid mudeleid
seob omavahel eeskätt see, et need ei eelda, et mudeli jäägid oleksid
normaaljaotusega või homoskedastilised, ning nad võimaldavad luua
erinevate funktsioonide abil justkui lineaarse seose tunnuste vahel,
mille vahel tegelikult lineaarset seost ei ole (sellest natuke
hiljem).
Logistilise regressiooni mudelit saab teha näiteks nii:
# Kas vastus lemmikjoogi kohta sõltub lemmikloomast ja sünniaastast?
m.jook <- glm(lemmikjook ~ lemmikloom + synniaasta, data = kysimustik2, family = "binomial")
# family = "binomial" ütleb, et teeme nn binomiaalset (binaarse uuritava tunnusega) logistilist regressiooni
summary(m.jook)
##
## Call:
## glm(formula = lemmikjook ~ lemmikloom + synniaasta, family = "binomial",
## data = kysimustik2)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -79.85328 51.18891 -1.560 0.119
## lemmikloomKaelkirjak -0.17122 0.59386 -0.288 0.773
## lemmikloomKoer 0.07602 0.55153 0.138 0.890
## synniaasta 0.03992 0.02569 1.554 0.120
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 139.97 on 102 degrees of freedom
## Residual deviance: 137.27 on 99 degrees of freedom
## AIC: 145.27
##
## Number of Fisher Scoring iterations: 4
Kuna aga mudeli parameetrite hinnangud tulbas Estimate
ei ole enam mingites andmestikus olevates originaalühikutes, vaid
hindavad mingi sündmuse toimumise tõenäosust, tuleb enne mudelitest
rääkimist teha kõigepealt selgeks mõisted tõenäosus, šanss ja
šansisuhe/šansside suhe.
Tõenäosus (p) on 0 ja 1 vahele jääv arv, mis iseloomustab sündmuse toimumise võimalikkust teatud tingimustel. Tõenäosus leitakse sündmuse toimumiseks soodsate/oodatud võimaluste arvu jagamisel kõikide võimaluste arvuga.
Mis on tõenäosus, et veeretame täringul silmade arvu 3?
Mis on tõenäosus, et veeretame täringul paarisarvu silmi?
Vaatame kursusel osalejate küsimustiku andmestikust tunnust
kogemused_kvant
ja oletame siinjuures, et saame kasutada
empiirilisi andmeid seni kursusel osalenute kohta selleks, et ennustada
tulevaste kursusel osalejate oskusi ja eelistusi.
##
## Ei Jah
## 34 70
Kogemuse omamise tõenäosuse (p) leidmiseks jagame kogemust omajate (= soodsate võimaluste) arvu kõikide vastajate (= võimaluste) arvuga ehk 70 / (34 + 70).
## [1] 0.6730769
Kogemuse omamise tõenäosus on 0.6730769.
Kogemuse mitteomamise tõenäosus on 1 - kogemuse omamise tõenäosus ehk
1-0.6730769=0.3269231.
## [1] 0.3269231
## [1] 0.3269231
Kogemuse mitteomamise tõenäosus on seega 0.3269231.
Sündmuse toimumise (kogemuse omamise) ja sündmuse mittetoimumise (kogemuse mitteomamise) tõenäosused annavad liites kokku 1. Praegusel juhul näeme, et tõenäosuse võiks seega justkui kõrvutada suhtelise sagedusega. Statistilist tõenäosust võibki hinnata mingi sündmuse suhtelise sageduse kaudu, kui mingit teoreetilist tõenäosushinnangut ei osata anda ning kui katsete/vaatluste arv on küllalt suur.
Kui võrdleksime tee- ja kohvijoomise tõenäosust, võiksime määrata, et sündmuse toimumine on teejoomine ja sündmuse mittetoimumine seega kohvijoomine. Teoreetiliselt ei ole oluline, et tegemist on just kohvijoomisega, vaid sisuliselt vaatleme tee joomise ja tee mittejoomise tõenäosusi.
## Tee
## 0.4134615
## Kohv
## 0.5865385
Šanss (odds) P = p/(1-p) on sündmuse toimumise tõenäosuse ja sündmuse mittetoimumise tõenäosuse suhe ning näitab mitu korda rohkem sündmus toimub kui ei toimu. Tähistame siin šanssi suure P-tähega.
Kui kvantmeetodite kogemuse omamise tõenäosus on 0.6730769 ja mitteomamise tõenäosus on 0.3269231, siis kogemuse omamise šanss on 0.6730769/0.3269231 = 2.0588235.
Kogemust omatakse eeldatavasti niisiis 2.0588235 korda rohkem kui ei omata.
Kui teejoomise tõenäosus on 0.4134615 ja tee mittejoomise tõenäosus (= kohvijoomise tõenäosus) on 0.5865385, siis on teejoomise šanss 0.4134615 / 0.5865385 = 0.704918.
## Tee
## 0.704918
Teed juuakse 0.704918 “korda rohkem” kui ei
jooda.
Teisisõnu: teed juuakse vähem kui kohvi.
Kui šanss oleks 1, siis oleks sündmuse toimumise ja mittetoimumise tõenäosused võrdsed (nt teed ja kohvi juuakse ühepalju).
Šansid jäävad 0 ja lõpmatuse vahele.
Sama tulemuseni jõuame tegelikult siis, kui jagame tõenäosuste asemel absoluutarvud: kogemust omavate arv / kogemust mitteomavate arv või teejoojate arv / mitteteejoojate arv. Ehk kui tõenäosuse leidmiseks jagame soodsate võimaluste arvu kõikide võimaluste arvuga, siis šansi leidmiseks jagame soodsate võimaluste arvu ebasoodsate võimaluste arvuga.
## [1] 2.058824
## [1] 0.704918
Kontrollküsimus: mida tähendab, kui sündmuse toimumise šanss on 0.5 (näiteks “šanss, et kroonaviirusesse nakatub naisterahvas, on 0.5”, kui võrreldakse meeste ja naiste nakatumist)?
Šansse (P) saab lihtsalt teisendada
tõenäosusteks (p) ja vastupidi.
Kui P = p/(1-p), siis p =
P/(1+P).
Tõenäosus (p) | Šanss (P) | Logit (log(P)) |
---|---|---|
0.001 (sündmus toimub väga väikese tõenäosusega) | 0.001 | -6.91 |
0.01 | 0.01 | -4.6 |
0.05 | 0.05 | -2.94 |
0.1 | 0.11 | -2.2 |
0.5 (sündmuse toimumise ja mittetoimumise tõenäosused on võrdsed) | 1 | 0 |
0.75 | 3 | 1.1 |
0.9 | 9 | 2.2 |
0.95 | 19 | 2.94 |
0.99 | 99 | 4.6 |
0.999 (sündmus toimub väga suure tõenäosusega) | 999 | 6.91 |
Logit ehk šansi logaritm on - nagu nimigi viitab - logaritmitud šanss. Selle kaudu hinnatakse logistilises regressioonis uuritava tunnuse ennustatud väärtust mingi seletavate tunnuste kombinatsiooni korral. Kui tõenäosus võib varieeruda nullist üheni [0,1] ja šanss nullist lõpmatuseni [0,∞], siis šansi logaritm võib varieeruda miinus lõpmatusest pluss lõpmatuseni [-∞,∞]. See on oluline omadus logistilise regressiooni mudelis!
Oletame, et meil on kaks üliõpilast. Ühel on prillid ja teisel ei ole.
Ilma prillideta üliõpilane A(hti) hilineb iga 10 loengu kohta 7 loengusse. See tähendab, et ainult 3 loengusse 10st jõuab üliõpilane õigel ajal.
Prillideta üliõpilane A hilineb loengusse … korda rohkem kui jõuab õigeks ajaks.
Seevastu prillidega üliõpilane B(runo) hilineb iga 10 loengu kohta ainult 1 loengusse. See tähendab, et 9 loengusse 10st jõuab üliõpilane õigel ajal.
Prillidega üliõpilane B hilineb loengusse … korda rohkem kui jõuab õigeks ajaks? Mida see tähendab?
Kui korrutada mis tahes arvu läbi ühest väiksema arvuga, siis saame esialgsest arvust igal juhul väiksema väärtuse.
## [1] 4.5
## [1] 3.5
## [1] 2.5
## [1] 1.5
## [1] 0.5
Seega kui öelda, et üliõpilane jõuab õigeks ajaks 9 loengusse ja hilineb sellest … korda rohkem, siis tähendab see tegelikult seda, et ta hilineb vähem kui ei hiline.
Kui see arv ümardada, saame uuesti üliõpilase B loengusse hilinemise kordade arvu.
Kui šanss P on väiksem kui 1, siis sündmuse toimumise tõenäosus on väiksem kui sündmuse mittetoimumise tõenäosus. Teisisõnu: kuna prillidega üliõpilase loengusse hilinemise šanss on …, võime järeldada, et üliõpilase loengusse hilinemise tõenäosus on oluliselt väiksem kui tõenäosus jõuda loengusse õigel ajal.
Šansside suhte (odds ratio) mõistet kasutatakse selleks, et võrrelda uuritava tunnuse mingi sündmuse toimumise šansse (odds) erinevates gruppides. St võrreldakse mõlemal juhul seda, et sündmus toimub (vastandina šansile, mis võrdleb toimumist mitte-toimumisega).
Kui tahame nüüd näiteks teada, kui mitu korda kõrgem on prillideta üliõpilase loengusse hilinemise šanss prillidega üliõpilase omast, peamegi leidma šansisuhte.
Šansisuhe ei ole midagi muud kui kahe šansi jagatis.
# Prillideta üliõpilase A
# loengusse hilinemise šanss
P_A <- p_A_hilineb/p_A_eihiline
# Prillidega üliõpilase B
# loengusse hilinemise šanss
P_B <- p_B_hilineb/p_B_eihiline
# Kahe üliõpilase loengusse hilinemise
# šansside suhe
P_A/P_B
## [1] 21
Prillideta üliõpilase A šanss loengusse hilineda on 21 korda kõrgem kui prillidega üliõpilase B šanss loengusse hilineda.
Aga miks need prillid üldse olulised on?
Põhimõtteliselt oleksime siin võinud rääkida ka lihtsalt üliõpilasest
A ja üliõpilasest B. Kui aga paneme selle näite nüüd logistilise
regressiooni konteksti ja kujutame ette, et meil on hulga rohkem
üliõpilasi, kelle kohta on andmed nende hilinemiste ja prillikandmise
kohta, siis oleks loengusse hilinemine kategoriaalne uuritav
tunnus väärtustega hilineb
ja
ei_hiline
ning prillikandmine kategoriaalne seletav
tunnus väärtustega kannab
ja
ei_kanna
.
Logistilises regressioonis hinnatakse seletava(te) tunnus(t)e mõju uuritava tunnuse ühe taseme esinemise tõenäosusele šansi logaritmi kaudu. Teisisõnu saaksime hinnata logistilise regressiooni mudeliga seda, kuidas üliõpilaste loengusse hilinemise šansi logaritm muutub vastavalt sellele, kas tegemist on prillikandjaga või mitte.
Šansisuhet aga kasutame siis, kui tõlgendame logistilise regressiooni koefitsiente, mis näitavad, mitu logaritmitud korda šanss seletava tunnuse muutumise korral muutub.
# Prillide kandmise mõju hilinemisele 1 loengu andmete põhjal
df <- data.frame(nimi = c("Mari", "Bruno", "Ants", "Toomas", "Kertu",
"Peeter", "Sille", "Marianne", "Juhan", "Oskar",
"Ahti", "Reelika", "Annika", "Rauno", "Joosep",
"Imre", "Sille", "Tauri", "Germo", "Norman"),
prillid = c(rep("Jah", 10), rep("Ei", 10)),
hilines = c(rep("Jah", 1), rep("Ei", 9), rep("Jah", 7), rep("Ei", 3)))
df
## nimi prillid hilines
## 1 Mari Jah Jah
## 2 Bruno Jah Ei
## 3 Ants Jah Ei
## 4 Toomas Jah Ei
## 5 Kertu Jah Ei
## 6 Peeter Jah Ei
## 7 Sille Jah Ei
## 8 Marianne Jah Ei
## 9 Juhan Jah Ei
## 10 Oskar Jah Ei
## 11 Ahti Ei Jah
## 12 Reelika Ei Jah
## 13 Annika Ei Jah
## 14 Rauno Ei Jah
## 15 Joosep Ei Jah
## 16 Imre Ei Jah
## 17 Sille Ei Jah
## 18 Tauri Ei Ei
## 19 Germo Ei Ei
## 20 Norman Ei Ei
##
## Call:
## glm(formula = factor(hilines) ~ prillid, family = "binomial",
## data = df)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.8473 0.6901 1.228 0.2195
## prillidJah -3.0445 1.2598 -2.417 0.0157 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 26.920 on 19 degrees of freedom
## Residual deviance: 18.719 on 18 degrees of freedom
## AIC: 22.719
##
## Number of Fisher Scoring iterations: 4
Näiteks kui
prillid == "Jah"
)
üliõpilaste grupis on tõenäosus loengusse hilineda 0,1 ja tõenäosus
mitte hilineda 0,9 ning šanss hilineda seega 0,1/0,9=0,111111,prillid == "Ei"
)
üliõpilaste grupis on tõenäosus loengusse hilineda 0,7 ja tõenäosus
mitte hilineda 0,3 ning šanss hilineda seega 0,7/0,3=2,333333,prillidJah
) šansi muutust
logaritmitud kordades (ehk logaritmitud šansisuhet),
kui vaatame prillikandjate gruppi: mitu (logaritmitud) korda muutub
šanss loengusse hilineda, kui muudame seletava tunnuse taset?Võrdle!
## [1] 2.333333
## (Intercept)
## 2.333333
# prillidega üliõpilaste loengusse hilinemise šansi ja prillideta üliõpilaste loengusse hilinemise šansi suhe/jagatis (mitu korda "rohkem" hilinevad prillidega üliõpilased?)
0.111111/2.333333
## [1] 0.04761901
## prillidJah
## 0.04761905
## [1] 0.1111111
## (Intercept)
## 0.1111111
Logistilise regressiooni puhul on uuritav tunnus kategoriaalne ja selle varieerumist seletatakse ühe või enama kategoriaalse või arvulise tunnuse kaudu. Logistiline regressioon on olemuselt klassifitseerimismeetod ning seda saab kasutada, kui uurimisküsimust saab püstitada vähemalt ühel moel järgnevatest:
Või siis täpsemalt tõenäosuste kaudu:
Sõltuvalt sellest, kas kategoriaalsel tunnusel on kaks või enam taset, nimetatakse analüüsimeetodit vastavalt kas binomiaalseks või multinomiaalseks logistiliseks regressiooniks.
Siin räägime põhiliselt binomiaalsest logistilisest regressioonist, kus on kahe tasemega uuritav tunnus. See on aluseks ka multinomiaalsele regressioonile, kus mitme tasemega kategoriaalse uuritava tunnuse puhul võrreldakse kas 1) üht taset kõikide teistega (“muud”) või 2) igat taset iga teise tasemega.
Kahe tasemega uuritava tunnuse saab taandada vastanduseks sündmus toimub vs. sündmust ei toimu, midagi esineb vs. midagi ei esine, midagi on vs. midagi ei ole jne. See uuritava tunnuse tase, mis esindab sündmuse toimumist, saab väärtuseks arvu 1, ning teine, mis esindab sündmuse mittetoimumist, saab väärtuseks arvu 0. Vaikimisi määratakse sündmuse toimumiseks (1) see uuritava tunnuse väärtus/klass/tase, mis on tähestikulises järjekorras tagapool. Näiteks tee- ja kohvijoomise eelistuste uurimise puhul oleks teejoomine sündmuse toimumine ja kohvijoomine seega sündmuse mittetoimumine.
## [1] "Kohv" "Tee"
Logistilise regressiooniga võib hinnata näiteks
Lineaarne regressioon | Logistiline regressioon |
---|---|
Lineaarses regressioonis on meil mingi arvuline uuritav tunnus, mille keskväärtust hinnatakse seletavate tunnuste lineaarkombinatsiooni abil. | Logistilises regressioonis on meil kahe (või enama) tasemega kategoriaalne uuritav tunnus, mille ühe taseme esinemise tõenäosuse keskväärtust hinnatakse seletavate tunnuste lineaarkombinatsiooni abil. Seda tõenäosust väljendab šansi logaritm. |
Lineaarse regressiooni mudel: Y = A + B1 * x1 + B2 * x2 + ... |
Logistilise regressiooni mudel: log(p/(1-p)) = A + B1 * x1 + B2 * x2 + ... |
kus
|
kus
|
Näiteks Reaktsiooniaeg = 762 + 19 * sõna pikkus + (-21) * log1p(sõna sagedus) |
Näiteks Loengusse hilinemise šansi logaritm = 0.8473 + (-3.0445) * prillide kandmine (0/1) |
Logistilise regressiooni aluseks on tegelikult samuti lineaarse regressiooni mudel ning seetõttu tuleb kategoriaalse uuritava tunnuse tasemed kodeerida ümber 0-ks ja 1-ks. Kuna lineaarse regressiooni arvuline uuritav tunnus võib teoreetiliselt saada väärtusi miinus lõpmatusest pluss lõpmatuseni, kategoriaalsel tunnusel on aga skaala alati piiratud 0 (“sündmus ei toimu”) ja 1-ga (“sündmus toimub”), tuleb regressioonivõrrandi vasak pool n-ö ära petta. Selleks kasutataksegi šansi logaritmi, kuna ka see võib muutuda miinus lõpmatusest pluss lõpmatuseni.
# Tõenäosused 0.000001-st kuni 0.999999-ni
p <- seq(0.000001,
0.999999,
0.000005)
# Nende tõenäosuste šansid
P <- p/(1-p)
head(P)
## [1] 1.000001e-06 6.000036e-06 1.100012e-05 1.600026e-05 2.100044e-05
## [6] 2.600068e-05
## [1] -13.81551 -12.02375 -11.41760 -11.04291 -10.77097 -10.55739
Mida lähemal 0-le on tõenäosus, seda lähemal miinus lõpmatusele on šansi logaritm. Mida lähemal 1-le on tõenäosus, seda lähemal pluss lõpmatusele on šansi logaritm.
Miks siis ikkagi logistiline regressioon ja mitte lineaarne? Näide.
Lisame näiteks prillidega ja prillideta üliõpilaste tabelisse tulba, milles on nende keskmine hinne. Tahame teada, kas üliõpilase hilinemise tõenäosust saab ennustada nt tema keskmise hinde põhjal ülikoolis.
library(tidyverse)
# Järjesta tabel tulba "hilines" järgi
df <- df %>% arrange(hilines)
# Määra "seeme" juhuslike väärtuste korratavuseks
set.seed(12)
# Lisa tabelisse tulp keskmise hindega
df$keskmine <- c(rnorm(12,4,0.4), rnorm(8,3,0.2))
head(df)
## nimi prillid hilines keskmine
## 1 Bruno Jah Ei 3.407773
## 2 Ants Jah Ei 4.630868
## 3 Toomas Jah Ei 3.617302
## 4 Kertu Jah Ei 3.631998
## 5 Peeter Jah Ei 3.200943
## 6 Sille Jah Ei 3.891082
## nimi prillid hilines keskmine
## 15 Reelika Ei Jah 2.969517
## 16 Annika Ei Jah 2.859307
## 17 Rauno Ei Jah 3.237776
## 18 Joosep Ei Jah 3.068102
## 19 Imre Ei Jah 3.101394
## 20 Sille Ei Jah 2.941339
# Loome graafikule tegelikel vaatlustel
# põhineva aluskihi, milles hilinemine
# on konverteeritud tõenäosusteks 1 ja 0.
(aluskiht <- ggplot(data = df,
aes(y = ifelse(hilines == "Jah", 1, 0),
x = keskmine)) +
geom_point(alpha = 0.15) + # suurenda andmepunktide läbipaistvust
labs(x = "Keskmine hinne",
y = "Hilinemise tõenäosus",
title = "Lineaarne vs. logistiline regressioon",
color = "") +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))) # joonda pealkiri keskele
Jooniselt näeme andmepunktide järgi, et nendel, kes hilinesid (y-teljel väärtus 1), oli üldjuhul madalam keskmine hinne kui neil, kes ei hilinenud (y-teljel väärtus 0).
Tõmbame nüüd läbi punktide lineaarse regressioonijoone ja logistilise regressioonijoone.
aluskiht +
geom_smooth(method = "lm",
aes(color = "lineaarne"),
se = F) +
geom_smooth(method = "glm",
aes(color = "logistiline"),
method.args = list(family = "binomial"),
se = F)
Kui käsitleda uuritava tunnuse tasemeid sündmuse toimumisena ja mittetoimumisena, saab sündmuse toimumine tõenäosuseks 1 ja mittetoimumine tõenäosuse 0. Nagu jooniselt näha, ennustaks tavaline lineaarne regressioon, et uuritava tunnuse väärtus (üliõpilane on hilineja või ei ole) võib ulatuda põhimõtteliselt miinus lõpmatusest kuni lõpmatuseni. Logistiline funktsioon aga sobitub andmetega oluliselt paremini ega välju kunagi 0 ja 1 vahemikust.
Vaikimisi logaritmimise funktsioon R-is on log(arv)
, mis
teisendab arvud Euleri arvu e astmeteks. e väärtus on
umbes 2,71828. See tähendab, et kasutatakse naturaallogaritmi alusel
e.
## [1] 1 2 8 10 100 500 1000
## [1] 0.0000000 0.6931472 2.0794415 2.3025851 4.6051702 6.2146081 6.9077553
Arvu 1 saame niisiis väljendada hoopis nii, et see on see arv, mis saadakse, kui võtta arv 2.71828 astmesse 0. Arv 100 on see arv, mis saadakse, kui võtta arv 2.71828 astmesse 4.6 jne.
## [1] 1
## [1] 99.99969
R-is on naturaallogaritmi pöördtehte ehk alusega e
astendamise jaoks funktsioon exp(logaritmitud_arv)
.
## [1] 1
## [1] 100
Logaritmimisel võib põhimõtteliselt aga ka ise valida, mille astmeteks arvusid teisendada, see ei pea tingimata olema Euleri arv. Näiteks võib arvusid teisendada kahe astmeteks, kümne astmeteks, saja astmeteks jne.
## [1] 6.643856
## [1] 2
## [1] 1
Nende tagasiteisenduseks aga mingit eraldi funktsiooni ei ole ning sel juhul tuleb “käsitsi” astendada.
## [1] 99.99999
## [1] 100
## [1] 100
Nagu y-teljelt näeme, on logaritmitud sageduste erinevus palju väiksem kui logaritmimata sageduste erinevus. Näiteks arv 10000 on arvust 100 sada korda suurem (10000/100=100), aga logaritm arvust 10000 on arvu 100 logaritmist ainult kaks korda suurem (log(10000)/log(100)=2).
Selleks, et natuke paremini aru saada, mis logistilise regressiooni
mudelis täpselt ikkagi toimub, laadime andmestiku
ade_peal.csv
. See kujutab endast selle kursuse tarbeks
veidi manipuleeritud varianti keeleteaduse andmestikust, mida on
kasutatud artiklis Klavan, Jane, Maarja-Liisa Pilvik & Kristel
Uiboaed. 2015. The Use of Multivariate Statistical Classification Models
for Predicting Constructional Choice in Spoken, Non-Standard Varieties
of Estonian. SKY Journal of Linguistics, 28, 187−224. Artiklis uuriti
eesti murrete korpuse andmete põhjal, millest sõltub see, kas kõneleja
kasutab kohatähenduses alalütlevat käänet ehk adessiivi (nt
laual) või kaassõna peal (nt
laua peal). Tegemist on niisiis binaarse (st
kahe erineva väärtusega) uuritava tunnusega.
Vaatame, mis tunnused andmestikus on:
## TR_liik tegusõna tegusõna_klass LM_lemma
## asesõna :516 olema :865 liikumisverb :297 maa : 125
## nimisõnafraas:855 käima :175 olemisverb :868 koht : 119
## verbifraas :661 tegema : 82 paiknemisverb: 61 laud : 86
## panema : 41 tegevusverb :618 põld : 85
## kasvama: 38 verbita :188 meri : 78
## (Other):644 põrand : 55
## NA's :187 (Other):1484
## LM_mobiilsus LM_komplekssus LM_pikkus LM_pikkus_log sõnajärg
## liigutatav: 729 lihtsõna:1833 Min. :1.000 Min. :0.000 lm_tr: 613
## staatiline:1303 liitsõna: 199 1st Qu.:2.000 1st Qu.:1.000 tr_lm:1419
## Median :2.000 Median :1.000
## Mean :2.655 Mean :1.261
## 3rd Qu.:3.000 3rd Qu.:1.585
## Max. :9.000 Max. :3.170
##
## cx murre murderühm
## ade : 722 Saarte :457 Kesk :880
## peal:1310 Lääne :380 Lõuna :430
## Kesk :379 Ranniku:265
## Ranna :161 Saarte :457
## Võru :154
## Ida :121
## (Other):380
## kõneleja
## KJ_JOE_Jyri_Maisa_synt-kontrollitud.xml: 27
## KJ_PLT_Liina_Roosimaa_EMH1427_lihts.xml: 26
## KJ_PIL_Helene_Pikk_synt-parandamata.xml: 25
## KJ_SJN_Marie_Kees_EMH16_synt.xml : 25
## KJ_HMD_Aleksander_Idarand_synt.xml : 24
## KJ_KAI_Leena_Lepamaa_synt.xml : 23
## (Other) :1882
Andmestikus on 2032 vaatlust ja 13 tunnust:
TR_liik
: trajektoriks
(Trajector) nimetatakse siin kontekstis seda,
mis millegi peal on (nt lamp on
laua peal, heinamaal tantsiti).
Eristatakse kolme erinevat kategooriat: asesõna (nt
mina, te, see), nimisõnafraasi (nt
lamp) ja verbifraasi (nt tantsiti).tegusõna
: tegusõna, mis kohasuhtega
seotud on, nt olema, kui miski on millegi peal,
käima, kui miski käib millegi peal jne. Tegusõna võib
ka puududa (NA
).tegusõna_klass
: tähendusklass, kuhu
tegusõna kuulub. Eristatakse liikumisverbe (nt käima,
minema, sõitma, jooksma), olemisverbe (nt
olema), paiknemisverbe (nt istuma, seisma),
tegevusverbe (nt kündma, peksma, purjetama)
ja ilma tegusõnata lauseid.LM_lemma
: orientiiriks ehk LM-iks
(Landmark) nimetatakse siin kontekstis seda, mille
peal miski on (nt lamp on laua peal,
heinamaal tantsiti). Orientiiri lemma tähistab
fraasi põhisõna sõnaraamatuvormi (nt lauses Lehm ammub suurel laial
heinamaal on orientiiri fraas ise suurel laial heinamaal,
aga lemma ainult heinamaa).LM_mobiilsus
: tähistab seda, kas
orientiiri (nt laud või heinamaa) saab hõlpsalt
liigutada või mitte. Liigutatavad on näiteks pall,
õlg, surnuvanker, hobune, staatilised jällegi
näiteks uulits, heinamaa, veranda,
maantee.LM_komplekssus
: tähistab seda, kas
orientiirifraasi peasõna on lihtsõna (nt maa) või liitsõna (nt
heina+maa).LM_pikkus
: tähistab
orientiirifraasi pikkust silpides. Näiteks fraasi
suu-rel lai-al hei-na-maal pikkus on 7 silpi, fraasi lau-a
peal pikkus on 2 silpi (kaassõna peal ei loeta silpide
arvu sisse).LM_pikkus_log
: tähistab
orientiirifraasi logaritmitud pikkust silpides. Kasutatud on logaritmi
alusel kaks (log2()
), mis tähendab seda, et kõik pikkused
on teisendatud arvu 2 astmeteks. Näiteks logaritm alusel 2 pikkusest 2
on 1 (log2(2)
), sest 2^1=2
; logaritm alusel 2
pikkusest 8 on 3 (log2(8)
), sest 2^3=8
jne.
Logaritmimine vähendab erandlikult pikkade fraaside mõju ja teeb
pikkuste jaotust natuke ühtlasemaks.sõnajärg
: tähistab seda, kas lauses on
eespool trajektor (nt lehm on heinamaal) või orientiir (nt
heinamaal on lehm). Tunnuse väärtused on vastavalt tr_lm ja
lm_tr.cx
: tähistab meie uuritavat
tunnust ehk konstruktsiooni. Uuritava tunnuse väärtused võivad
olla kas ade (alalütlev kääne) või peal (kaassõna
peal).murre
: tähistab murdeala, mille
kõnelejalt vaatlus on andmestikku sattunud. Sellel tunnusel on tervelt
10 erinevat väärtust: Ida, Lääne, Ranna,
Kirde, Saarte, Kesk, Tartu,
Mulgi, Võru, Seto.murderühm
: siin on murdeid natuke
suuremateks rühmadeks jagatud. Tartu, Võru, Seto ja Mulgi murre
moodustavad rühma Lõuna, ranna- ja kirdemurre moodustavad rühma
Ranniku, lääne-, kesk- ja idamurre moodustavad rühma
Kesk ning saarte murre on jäetud siin eraldi rühmaks
Saarte.kõneleja
: see tunnus sisaldab
unikaalset kõneleja koodi, mis moodustub failinimest, kihelkonna nimest
ning kõneleja id-st faili sees (nt KJ, KJ1,
KJ2 vmt).Andmestikus on meid huvitav tunnus tulbas nimega cx
.
Sellel kategoorial on kaks taset - ade ja peal - mis
tähistavad vastavalt seda, kui kohasuhet väljendatakse käändega
(laual), ja seda, kui kohasuhet väljendatakse kaassõnaga
(laua peal).
##
## ade peal
## 722 1310
Siin on meil tasakaalustamata valim, mis tähendab seda, et kategooriaid ei esine andmestikus võrdselt: peal-konstruktsioon on oluliselt sagedam.
## [1] 0.644685
## [1] 1.814404
# Kaassõna "peal" mitte-esinemise tõenäosus (= alalütleva käände esinemise tõenäosus)
(p_ade <- tab[["ade"]]/sum(tab))
## [1] 0.355315
# Kaassõna "peal" mitte-esinemise šanss (= alalütleva käände esinemise šanss)
(P_ade <- p_ade/(1-p_ade))
## [1] 0.551145
Ainult esinemissageduse põhjalt saame öelda ainult seda, et peal-konstruktsiooni kasutamine on murretes üldiselt tõenäolisem. Selleks aga, et kahe alternatiivse konstruktsiooni kasutuse kohta midagi sisukamat öelda, vajame lisaks mingeid teisi tunnuseid, mis võimalikku varieerumist murretes aitaksid seletada.
(Kuna tegemist on keelekorpusest kogutud andmetega ning ühelt kõnelejalt võib olla ka mitu vaatlust, on tegelikult vaatluste sõltumatuse nõue rikutud ja võiks kasutada hoopis segamudelit, aga sellest ülejärgmises praktikumis.)
Vaatame näiteks kõigepealt, kas kohakonstruktsiooni ja mõne teise kategoriaalse tunnuse vahel on mingi seos. Enne mudeldamist võime muidugi teha ükshaaval tunnustega tabeleid, jooniseid ja graafikuid.
##
## liigutatav staatiline
## ade 0.1879287 0.4489639
## peal 0.8120713 0.5510361
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: ade_peal$cx and ade_peal$LM_mobiilsus
## X-squared = 137.92, df = 1, p-value < 2.2e-16
## [1] 0.2615959
Ehkki peal-konstruktsioon tundub olevat nii liigutatavate
kui ka staatiliste “kohtadega” (LM
) sagedam, on staatiliste
kohtade puhul kaassõna kasutus oluliselt vähem tõenäoline (nt
heinamaa peal) kui liigutatavate kohtadega (nt laua
peal).
Teeme nüüd lihtsa logistilise regressiooni mudeli, et kontrollida, kas kohakonstruktsiooni valikut saab seletada koha/orientiiri liigutatavuse kaudu. Tegelikkuses on mudeli kasutamine kasulikum muidugi pigem siis, kui vaadata mitme seletava tunnuse mõju uuritava tunnuse varieerumisele.
# Logistilise regressiooni mudel
m.glm <- glm(cx ~ LM_mobiilsus, data = ade_peal, family = "binomial")
Mudelist ülevaate saamiseks kasutame jällegi käsku
summary()
.
##
## Call:
## glm(formula = cx ~ LM_mobiilsus, family = "binomial", data = ade_peal)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.46353 0.09481 15.44 <2e-16 ***
## LM_mobiilsusstaatiline -1.25867 0.10996 -11.45 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2644.3 on 2031 degrees of freedom
## Residual deviance: 2497.3 on 2030 degrees of freedom
## AIC: 2501.3
##
## Number of Fisher Scoring iterations: 4
##
## Call:
## glm(formula = cx ~ LM_mobiilsus, family = "binomial", data = ade_peal)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.46353 0.09481 15.44 <2e-16 ***
## LM_mobiilsusstaatiline -1.25867 0.10996 -11.45 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2644.3 on 2031 degrees of freedom
## Residual deviance: 2497.3 on 2030 degrees of freedom
## AIC: 2501.3
##
## Number of Fisher Scoring iterations: 4
Kuna regressioonimudel hindab uuritava tunnuse ühe taseme esinemise tõenäosust šansi logaritmi kaudu, siis peame kõigepealt vaatama, mida peab R sündmuse toimumiseks. Vaikimisi on selleks uuritava tunnuse tähestikulises järjekorras teine tase.
## [1] "ade" "peal"
Sündmuse toimumine (1) on niisiis peal-konstruktsiooni kasutus ja mittetoimumine käändekonstruktsiooni kasutus. Mudel ennustab seega tõenäosust, et mingis seletavate tunnuste poolt määratud kontekstis kasutatakse kohasuhte väljendamiseks peal-kaassõna konstruktsiooni. Antud juhul siis tahame näha, kas peal-konstruktsiooni kasutus kasvab või kahaneb, kui vaatame liigutatavate kohtade (nt laud) asemel staatilisi kohti (nt tänav).
Läheme nüüd uuesti mudeli väljundi juurde.
1. Vabaliikme (Intercept)
koefitsient
1.4635257 näitab peal-konstruktsiooni esinemise šansi
logaritmi (logit) tunnuse LM_mobiilsus
baastaseme korral. Kategoriaalse seletava tunnuse baastase on vaikimisi
tähestikulises järjekorras kõige esimene väärtus
(LM_mobiilsus
tunnuse puhul liigutatav
, mitte
staatiline
). Peal-konstruktsiooni esinemise šansi
logaritmi ennustatakse niisiis sellises kontekstis, kus kohasõna on
mõtteliselt hõlpsasti liigutatav (nt laud). Logaritmitud šansi
saab teisendada tavaliseks šansiks astendamise funktsiooniga
exp()
. Ehk kui logaritm alusel e (Euleri arv,
umbes 2,71828) šansist on 1.4635257, siis šanss on e astmes
1.4635257. Vaikimisi kasutatakse niisiis naturaallogaritmi.
# peal-cx esinemise šanss kontekstis,
# kus kohasõna referent on mobiilne, liigutatav
(P_liigut <- exp(m.glm$coefficients[["(Intercept)"]]))
## [1] 4.321168
## [1] 4.321186
Šanss, et mingi liigutatava koha puhul kasutatakse kohasuhte väljendamiseks peal-konstruktsiooni, on ~4.32. Kuna šanss on > 1, võime tõlgendada seda ka nii, et tõenäosus peal-cx kasutamiseks liigutatavate kohtade korral on suurem kui 0.5. Selle tõenäosuse saab šansi kaudu ka välja arvutada.
## [1] 0.812072
peal-cx esinemise tõenäosus juhul, kui kohasõna referent on liigutatav objekt, on 0.812072.
Kui seletav tunnus oleks arvuline, mitte kategoriaalne, väljendaks vabaliige sündmuse toimumise logaritmitud šanssi (hüpoteetilises) kontekstis, kus arvulise tunnuse väärtus oleks 0.
2. Seletava tunnuse koefitsient -1.258668 näitab sündmuse toimumise šansi muutust logaritmitud kordades 1-ühikulise või ühe taseme muutuse puhul vastava seletava tunnuse väärtuses. Teisisõnu näitab see koefitsient logaritmitud šansisuhet ehk seda, mitu logaritmitud korda suurem on sündmuse toimumise šanss seletava tunnuse uue taseme korral. Plussmärgiga koefitsiendid lisavad sündmuse toimumise šanssi (ühtlasi ka tõenäosust), miinusmärgiga vähendavad. Negatiivne koefitsient siin viitab seega sellele, et sündmuse toimumise šanss väheneb seletava tunnuse taseme muutmisel.
Astendame esmalt selle koefitsiendi, et saada logaritmitud kordade asemel tegeliku kordade arvu.
# šansside suhe
# (peal-cx esinemise šanss staatiliste kohtade puhul/
# peal-cx esinemise šanss liigutatavate kohtade puhul)
(P_suhe <- exp(m.glm$coefficients[["LM_mobiilsusstaatiline"]]))
## [1] 0.2840321
Seletava tunnuse astendatud koefitsient näitab siin niisiis, et
kontekstis, kus kohasõna on staatiline (lehm ammub heinamaa
peal), on peal-cx kasutamine ~0.28 korda “suurem” kui
kontekstis, kus kohasõna viitab liigutatavale referendile (lehm ammub
laua peal). See, et šansisuhe on < 1, näitab, et see arv,
mida suhte arvutamisel jagame, on väiksem kui see arv,
millega jagame. Seega peaks uue seletava tunnuse taseme
korral (LM_mobiilsus = "staatiline"
) peal-cx
kasutamise šanss olema väiksem kui baastaseme korral
(LM_mobiilsus = "liigutatav"
).
Kontrollime, kas see on nii.
Teame juba peal-cx esinemise šanssi kontekstis, kus kohasõna
viitab liigutatavale referendile. Selle saime kätte vabaliikme
astendamise kaudu ja see on salvestatud objekti
P_liigut
.
Leiame nüüd peal-cx esinemise šansi kontekstis, kus kohasõna
viitab staatilisele referendile. Selleks liidame vabaliikme ja seletava
tunnuse koefitsiendid ning astendame tulemuse.
# peal-cx esinemise šanss kontekstis,
# kus kohasõna viitab staatilisele referendile
(P_staat <- exp(m.glm$coefficients[["(Intercept)"]] + m.glm$coefficients[["LM_mobiilsusstaatiline"]]))
## [1] 1.22735
See, et šanss staatilise kohaga kontekstis on ikkagi > 1, näitab, et peal-konstruktsiooni kasutus on ka staatiliste kohtadega tõenäolisem, aga mitte enam nii palju tõenäolisem kui alalütleva käände kasutus. Näiteks heinamaa peal võiks esineda u 1.22 korda rohkem kui heinamaal, aga laua peal esineks tervelt 4.3 korda rohkem kui laual.
Nüüd leiame šansisuhte ja šansisuhte logaritmi.
## [1] 0.2840309
## [1] -1.258672
Saime sama tulemuse nagu mudelist.
Arvulise seletava tunnuse puhul väljendaks koefitsient sündmuse toimumise šansi muutust logaritmitud kordades 1-ühikulise muutuse puhul vastava seletava tunnuse väärtuses (nt kui silpide arv kasvab 1 silbi võrra, kui vanus kasvab 1 aasta võrra vmt).
Kui räägime ainult šansi logaritmist, võime lihtsalt
öelda, et koefitsiendid tõstavad šansi logaritmi koefitsiendi
väljendatud arvu VÕRRA.
Tavalisest šansist rääkides aga peame ütlema, et
koefitsiendid tõstavad šanssi astendatud koefitsiendi väljendatud arv
KORDI.
Üldiselt pole šansi ja šansisuhte terminite kasutamine tingimata vajalik, kui rääkida lihtsalt uuritava tunnuse ühe väärtuse esinemise tõenäosuse suurenemisest või vähenemisest ja mitte arvutada seda, kui mitu korda mingid šansid parajasti muutuvad.
Muutuse suuna ütlevad ära koefitsientide ees olevad märgid ning kui šansisuhe kasvab, kasvavad ka sündmuse toimumise šansid ja tõenäosus ja vastupidi.
3. Std. Error, z value ja Pr(>|z|). Waldi
Z-statistiku (z value
) väärtus on koefitsient
(Estimate
) jagatud standardveaga (Std. Error
)
ja see testib seda, kas koefitsient võiks olla vähemalt sama ekstreemse
suurusega (s.t nullist erinev) ka populatsioonis, juhul kui kehtib
nullhüpotees. Selle statistilist olulisust näitab p-väärtus
(Pr(>|z|)
), mis ütleb meile ühtlasi seda, kas antud
tunnuse väärtus on statistiliselt oluliselt erinev tunnuse baastaseme
väärtusest (uuritava tunnuse ennustamisel). Olulisuse nivoo on vaikimisi
endiselt 0.05 ning tärnikeste tõlgendamine käib samamoodi nagu
lineaarses regressioonis. Kui mingi koefitsiendi standardviga on väga
suur, siis võib vastava parameetri hinnangut pidada ebamääraseks ning
see võib isegi ainult natuke üksteisest erinevates valimites kõvasti
varieeruda. Üldjuhul ei ole väga suure standardveaga koefitsiendid
statistiliselt olulised ehk ei saa piisava kindlusega väita, et muutus
mingis tunnuses tooks kaasa statistiliselt olulise muutuse sündmuse
esinemise šanssides.
Selles mudelis on muutus seletavas tunnuses statistiliselt oluline, mis
tähendab, et on oluline erinevus peal-konstruktsiooni
kasutamise šanssides kontekstis, kus kohasõna viitab liigutatavale
referendile, ja kontekstis, kus see viitab staatilisele referendile.
4. Null deviance näitab, kui suur oleks uuritava tunnuse varieerumise seletamata osa mudelis, kus ei ole ühtegi seletavat tunnust. Selle vabadusastmete arv (degrees of freedom) on enamasti vaatluste arv (n) - 1. Residual deviance näitab, kui suur on see seletamata osa, kui mudelis on need seletavad tunnused, mis seal parajasti on. Selle vabadusastmete arv sõltub mudelisse kaasatud tunnuste arvust ja kategoriaalsete tunnuste puhul ka tasemete arvust. Selles mudelis tuleb hinnata ainult ühe tunnuse ühe taseme mõju, seega lahutatakse n-st 1+1. Mida väiksem Residual deviance Null Deviance’ist on, seda parem, sest seda rohkem meie mudelisse lisatud seletavatel tunnustel uuritava tunnuse varieerumisega pistmist on.
5. AIC ehk Akaike Information Criterion võimaldab hinnata mudeli headust võrdluses teiste mudelitega (väiksem arv on parem). Arvestab valimi suuruse ja mudelisse kaasatud parameetrite arvuga (nagu adjusted R2 lineaarse regressiooni mudelis). Kui näiteks teeksime veel ühe mudeli, kuhu lisaksime ühe seletava tunnuse juurde, aga AIC väärtus ei läheks oluliselt väiksemaks, siis ei pruugi meie lisatud tunnusel olla uuritava tunnuse varieerumise seletamisel kuigi suur roll ja peaksime valima lihtsama (= vähemate seletavate tunnustega) mudeli.
## We fitted a logistic model (estimated using ML) to predict cx with LM_mobiilsus
## (formula: cx ~ LM_mobiilsus). The model's explanatory power is weak (Tjur's R2
## = 0.07). The model's intercept, corresponding to LM_mobiilsus = liigutatav, is
## at 1.46 (95% CI [1.28, 1.65], p < .001). Within this model:
##
## - The effect of LM mobiilsus [staatiline] is statistically significant and
## negative (beta = -1.26, 95% CI [-1.48, -1.05], p < .001; Std. beta = -1.26, 95%
## CI [-1.48, -1.05])
##
## Standardized parameters were obtained by fitting the model on a standardized
## version of the dataset. 95% Confidence Intervals (CIs) and p-values were
## computed using a Wald z-distribution approximation.
exp(1.46353)=4.321186
.exp(-1.25867)=0.2840315
korda. Teisisõnu:
staatiliste kohtadega peal-konstruktsiooni kasutamise šansid
kahanevad.exp(1.46353-1.25867)=1.227353
. Võiksime leida selle
väärtuse põhimõtteliselt ka esialgsete (logaritmimata) šansside
läbikorrutamisel (logaritmimata) šansisuhtega:
4.321186*0.2840315=1.227353
.Järeldus: kohasõna referendi staatilisus vähendab peal-konstruktsiooni kasutamise tõenäosust.
Miks? Eesti keeles on kaassõnu peetud palju konkreetsemate suhete väljendajateks kui käändeid, millel on sageli palju funktsioone ning mis seetõttu väljendavad sagedamini abstraktseid suhteid. On pakutud, et suured, staatilised kohad tunduvad kõnelejale abstraktsemad ja seetõttu sallivad käändekonstruktsioone rohkem kui väiksed, liigutatavad objektid, mis on kõnelejale konkreetsemad ning eelistavad seetõttu kaassõnakonstruktsioone (vt nt Bartens 1978; Ojutkangas 2008; Lestrade 2010).
ade_peal
logistilise regressiooni
mudeli, kus peal-konstruktsiooni esinemist seletatakse
orientiiri/kohasõna komplekssuse kaudu, saame alloleva väljundi.
Seletava tunnuse baastase on lihtsõna ning hinnatav parameeter
liitsõnalisus. Kas liitsõna kohasõnana (nt karja+maa) kasvatab
või kahandab peal-konstruktsiooni kasutamise šansse?##
## Call:
## glm(formula = cx ~ LM_komplekssus, family = "binomial", data = ade_peal)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.71532 0.04973 14.383 < 2e-16 ***
## LM_komplekssusliitsõna -1.13337 0.15318 -7.399 1.37e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2644.3 on 2031 degrees of freedom
## Residual deviance: 2588.1 on 2030 degrees of freedom
## AIC: 2592.1
##
## Number of Fisher Scoring iterations: 4
exp()
- teisenda logaritmitud šanss tavaliseks šansiks
(või logaritmitud šansisuhe tavaliseks šansisuhteks)ggeffects::ggpredict()
- ennusta uuritava tunnuse
väärtust mingis tüüpilises seletavate tunnuste kontekstisglm()
- tee logistilise regressiooni mudelperformance::check_model()
- kontrolli mudeli jääke jm
eeldusiplogis()
- teisenda logaritmitud šanss
tõenäosusekspredict()
- leia mudeli ennustused kas
treeningandmestikul või testandmestikul (lisades argumendi
newdata
)report::report_text()
- raporteeri mudeli tulemused
tekstina