Sjekke forutsetninger: stort nok utvalg, unngå multikollinearitet1, sammenhengene er lineære, homoskedastisitet2, normalfordelte residualer
Sjekke modellens totale forklaringskraft (Adjusted \(R^2\) og \(F\))
Sjekke hver prediktors forklaringskraft
Besvare forskningsspørsmålet
Digitalt stress
Vi ser på noen data fra stress-studien. Dataene er i comma separated format og lastes ned her
For å lese inn data i mange format (excel, csv, spss, osv) trykk på File>Import dataset i Rstudio
library("tidyverse")stressdata <-read.csv("../data/stress_complete.csv") stressdata$X <- NULL#fjerne unødvendig variabel "X"dim(stressdata)#rader og søyler
annet Bygg og anlegg Faglige tjenester
47 14 5
Finans og forsikring Forskning og undervisning Helse og omsorg
10 47 347
Industri IT Offentlig administrasjon
7 23 25
Olje og gass Varehandel
34 17
Vi forenkler ved å lage ny binær variabel for bransje (vi overskriver den gamle bransje)
stressdata$bransje <-ifelse(stressdata$bransje =="Helse og omsorg", "Helse og omsorg", "Annet")table(stressdata$bransje)
Annet Helse og omsorg
229 347
Complexity ICT er et aspekt med digitalt stress
Fem items som tilhører “Complexity ICT” er bra korrelert
comp <-select(stressdata, contains("COMP"))#velge ut bare disse 5cor(comp) %>%round(1)
# A tibble: 2 × 2
bransje andel_menn
<chr> <dbl>
1 Annet 0.358
2 Helse og omsorg 0.0980
Bransje og lederansvar
Ta bort kjønn og ta med lederansvar
mod <-lm(complexity ~ leder+bransje, data=stressdata) summary(mod)
Call:
lm(formula = complexity ~ leder + bransje, data = stressdata)
Residuals:
Min 1Q Median 3Q Max
-16.3492 -6.3492 0.3539 6.3871 19.3539
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 14.6461 0.5786 25.314 <2e-16 ***
lederTRUE -0.1327 0.9649 -0.138 0.891
bransjeHelse og omsorg 6.7031 0.6958 9.633 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 7.875 on 573 degrees of freedom
Multiple R-squared: 0.1495, Adjusted R-squared: 0.1465
F-statistic: 50.36 on 2 and 573 DF, p-value: < 2.2e-16
Leder er ikke signifikant.
Utdanningsnivå og stress
Utdanningsnivå er på ordinal skala så vi gjør det om til factor:
mod <-lm(complexity ~ education+bransje, data=stressdata) summary(mod)
Call:
lm(formula = complexity ~ education + bransje, data = stressdata)
Residuals:
Min 1Q Median 3Q Max
-16.6117 -6.3274 0.2403 6.5246 19.3824
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 15.0441 1.3507 11.138 <2e-16 ***
education -0.1422 0.4095 -0.347 0.729
bransjeHelse og omsorg 6.7098 0.6727 9.975 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 7.875 on 573 degrees of freedom
Multiple R-squared: 0.1497, Adjusted R-squared: 0.1467
F-statistic: 50.42 on 2 and 573 DF, p-value: < 2.2e-16
Utdanningsnivå er heller ikke signifikant prediktor
Parsimony = Enkelhetsprinsippet
Ironisk nok ender vi opp med en enkel regresjon! Det er bare bransje som forklarer stress i våre data (15% er forklart, 85% er ikke forklart)
mod <-lm(complexity ~ bransje, data=stressdata) summary(mod)
Call:
lm(formula = complexity ~ bransje, data = stressdata)
Residuals:
Min 1Q Median 3Q Max
-16.3401 -6.3401 0.3886 6.3886 19.3886
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 14.6114 0.5200 28.10 <2e-16 ***
bransjeHelse og omsorg 6.7287 0.6699 10.04 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 7.869 on 574 degrees of freedom
Multiple R-squared: 0.1495, Adjusted R-squared: 0.148
F-statistic: 100.9 on 1 and 574 DF, p-value: < 2.2e-16
Når \(Y\) er binær: Logistisk regresjon
I multippel regresjon er \(Y\) kontinuerlig
For eksempel \(Y\)= well-being på en skala fra 0-10
Modellen gir forventet well-being gitt feks kjønn og alder
Hvis \(Y\) er binær så må vi bruke logistisk regresjon
For eksempel \(Y\)=depressiv (Ja/Nei)
Modellen gir da odds/sannsynlighet for at en person er depressiv, gitt feks kjønn og alder
Eksempel: Extramarital affairs
library(AER)#install first if neededdata("Affairs")#loader datasettetsummary(Affairs)
affairs gender age yearsmarried children
Min. : 0.000 female:315 Min. :17.50 Min. : 0.125 no :171
1st Qu.: 0.000 male :286 1st Qu.:27.00 1st Qu.: 4.000 yes:430
Median : 0.000 Median :32.00 Median : 7.000
Mean : 1.456 Mean :32.49 Mean : 8.178
3rd Qu.: 0.000 3rd Qu.:37.00 3rd Qu.:15.000
Max. :12.000 Max. :57.00 Max. :15.000
religiousness education occupation rating
Min. :1.000 Min. : 9.00 Min. :1.000 Min. :1.000
1st Qu.:2.000 1st Qu.:14.00 1st Qu.:3.000 1st Qu.:3.000
Median :3.000 Median :16.00 Median :5.000 Median :4.000
Mean :3.116 Mean :16.17 Mean :4.195 Mean :3.932
3rd Qu.:4.000 3rd Qu.:18.00 3rd Qu.:6.000 3rd Qu.:5.000
Max. :5.000 Max. :20.00 Max. :7.000 Max. :5.000
Affairs$utro <-ifelse(Affairs$affairs ==0, 0, 1)#binær variabel
Logistisk regresjon når \(Y\)= 0/1
Vi ønsker å bruke rating og children som prediktorer for utroskap Modellen er \[ log(\frac{p}{1-p})=\beta_0+ \beta_1 rating + \beta_2 children + \epsilon\]
Her er \(p\) sannsynlighet for utroskap, og \(\frac{p}{1-p}\) er oddsen Oddsen er alltid positiv men når vi tar logaritmen så får vi dekket både negative og positive tall!