Arbeidskrav 2

Author

Indira Coelho

Om dataene

Datasettet du skal bruke er fra andre utgave av Arend Lijpharts Patterns of Democracy (2012). Det inneholder data om institusjonell variasjon blant 36 demokratier. Variabelnavn som slutter med “1981_2010” gjelder perioden 1981-2010.

library(tidyverse)
lijphart <- read_csv("STV4022/lijphart.csv", show_col_types = FALSE)

Vi skal fokusere på to variabler:

  1. Variabelen index_of_disproportionality_1981_2010 måler disproporsjonaliteten in landenes valgsystemer (altså avvik mellom partienes stemmeandeler og størrelse i parlamentet).

  2. Variabelen eff_num_parl_parties_1981_2010 måler landenes effektive antall partier (et mål som justerer antall partier slik at små partier teller som mindre enn 1).

Oppgaver

1. Utforsking av data

  • Lag et “scatterplot” av variabelen eff_num_parl_parties_1981_2010 over variabelen index_of_disproportionality_1981_2010.

    plot(x = lijphart$eff_num_parl_parties_1981_2010, y = lijphart$index_of_disproportionality_1981_2010, xlab = "Number of parties", ylab = "Index of disproportionality", pch = 16)

  • Beskriv kort hva plottet viser.

    Det er en negativ sammenheng mellom antall partier representert i parlamentet og disproporsjonalitet-indeksen.

2. Kjøre regresjonsmodeller

Bruk funksjonen stan_glm fra pakken rstanarm til å kjøre lineære regresjonsmodeller.

  • Kjør først en regresjonsmodell hvor eff_num_parl_parties_1981_2010 kun er modellert som en funksjon av et konstantledd. Dette kan du oppnå ved å kun skrive et ett-tall der du ellers ville listet opp “uavhengige” variabler / predikatorvariabler. Ta vare på den estimerte modellen som et objekt kalt mod1.

    library(rstanarm)  
    mod1 <- stan_glm(eff_num_parl_parties_1981_2010 ~ 1, data = lijphart, refresh = 0) 
    mod1
    stan_glm
     family:       gaussian [identity]
     formula:      eff_num_parl_parties_1981_2010 ~ 1
     observations: 36
     predictors:   1
    ------
                Median MAD_SD
    (Intercept) 3.4    0.2   
    
    Auxiliary parameter(s):
          Median MAD_SD
    sigma 1.3    0.2   
    
    ------
    * For help interpreting the printed output see ?print.stanreg
    * For info on the priors used see ?prior_summary.stanreg
  • Kjør så en regresjonsmodell hvor eff_num_parl_parties_1981_2010 er modellert som en lineær funksjon av index_of_disproportionality_1981_2010. Ta vare på den estimerte modellen som et objekt kalt mod2.

    mod2 <- stan_glm(eff_num_parl_parties_1981_2010 ~ index_of_disproportionality_1981_2010, data = lijphart, refresh = 0) 
    mod2
    stan_glm
     family:       gaussian [identity]
     formula:      eff_num_parl_parties_1981_2010 ~ index_of_disproportionality_1981_2010
     observations: 36
     predictors:   2
    ------
                                          Median MAD_SD
    (Intercept)                            4.4    0.3  
    index_of_disproportionality_1981_2010 -0.1    0.0  
    
    Auxiliary parameter(s):
          Median MAD_SD
    sigma 1.1    0.1   
    
    ------
    * For help interpreting the printed output see ?print.stanreg
    * For info on the priors used see ?prior_summary.stanreg

3. Diagnostisere regresjonsmodeller

  • Plott residualer over predikerte verdier for den andre modellen (mod2). Gir plottet noen grunn til bekymring rundt modellen? Hvorfor/hvorfor ikke?
plotdat <- data.frame(predicted = predict(mod2), residuals = resid(mod2)) 
ggplot2::ggplot(plotdat, aes(predicted, residuals)) + geom_point() + geom_smooth(method = "loess", span = 1)  

Residualene ser ut til å være helt tilfeldig fordelt rundt den horisontale aksen. Skjevheten til venstre kan skyldes få antall observasjoner.

4. Rapportere og tolke resultater

  • Oppsummer de to modellene i en presentabel tabell (helst via R-pakken modelsummary).

    library(gt)
    modelsummary::modelsummary(
    list("Modell 1" = mod1, "Modell 2" = mod2),
    output = "gt",
    title = "Politisk representativitet",
    coef_rename = c("(Intercept)" = "Antall partier (gjennomsnitt)", "eff_num_parl_parties_1981_2010" = "Effektive antall partier (1981-2010)", "index_of_disproportionality_1981_2010" = "Disproporsjonalitetsmål"),
    notes = 'Basert på Arend Lijpharts Patterns of Democracy (2012) data om institusjonell variasjon blant 36 demokratier. Modell 1 ser kun på variasjon i antall partier, mens modell 2 analyserer dette i funksjon av avviket mellom partienes stemmeandeler og effektive parlamentarisk representasjon (disproporsjonalitet).',
    statistic = "mad",
    fmt = 2,
    metrics = c("R2", "LOOIC"))
    Politisk representativitet
    Modell 1 Modell 2
    Antall partier (gjennomsnitt) 3.36 4.45
    (0.22) (0.30)
    Disproporsjonalitetsmål -0.12
    (0.03)
    Num.Obs. 36 36
    R2 0.000 0.350
    Log.Lik. -60.554 -52.568
    ELPD -61.9 -54.7
    ELPD s.e. 3.4 3.6
    LOOIC 123.8 109.5
    LOOIC s.e. 6.7 7.2
    Basert på Arend Lijpharts Patterns of Democracy (2012) data om institusjonell variasjon blant 36 demokratier. Modell 1 ser kun på variasjon i antall partier, mens modell 2 analyserer dette i funksjon av avviket mellom partienes stemmeandeler og effektive parlamentarisk representasjon (disproporsjonalitet).
  • Hvordan tolker du resultatene for modell 1? Gi et utfyllende svar som viser at du har forstått hva tallene viser.

    Siden modellen er basert på en konstant verdi på 1 for den uavhengige variabelen, modellerer den i hovedsak gjennomsnittet av den avhengige variabelen – i dette tilfellet antallet politiske partier i et gitt demokrati. Modellen lar oss si at det var et gjennomsnitt på 3,36 effektive politiske partier per land i de 36 observerte demokratiene for den tidsperioden. Små partier teller som mindre enn 1, så en slik verdi kan bety, f.eks, et mindre og tre større partier.

  • Hvordan tolker du resultatene for modell 2? Gi et utfyllende svar som viser at du har forstått hva tallene viser.

    Denne modellen tar hensyn til disproporsjonalitet, det vil si gapet mellom antall stemmer og seter i parlamentet en parti får. Når modellen tar dette i betraktning, kan vi observere at det effektive antallet politiske partier øker, noe som betyr at disse landene i gjennomsnitt har flere aktive politiske partier enn den første variabelen antyder alene, men disse er underrepresentert i parlamentet.

5. Analytisk standardfeil og konfidensintervall

  • Hva er gjennomsnittet for variabelen eff_num_parl_parties_1981_2010?

    #bruke mean-funksjonen for å regne ut gjennomsnittet
    gs_num_parl <- mean(lijphart$eff_num_parl_parties_1981_2010)
    gs_num_parl
    [1] 3.358611
  • Hva er standardavviket for variabelen?

    #bruke sd-funksjonen for å regne ut standardavviket 
    sa_num_parl <- sd(lijphart$eff_num_parl_parties_1981_2010)
    sa_num_parl
    [1] 1.300473
  • Hvor mange observasjoner er det i dataene?

    dim(lijphart)
    [1] 36 77

    Det er 36 observasjoner (altså 36 land) av 77 variabler

  • Bruk løsningene på de to forrige spørsmålene over til å regne ut den analytiske (formel-baserte) standardfeilen til gjennomsnittet for variabelen eff_num_parl_parties_1981_2010. Formelen finner du i notatene fra forelesning 3.

    #regning basert på formellen s/√n, der s = standardavviket og n = observasjoner 
    se_num_parl <- 1.30 / sqrt(36) 
    se_num_parl
    [1] 0.2166667
  • Bruk standardfeilen du regnet ut til å lage et tilnærmet 95%-konfidensintervall for gjennomsnittet. Finn den relevante t-verdien via kvantilfunksjonen til t-fordelingen.

    #finne t-verdien for utvalgets størrelse 
    n <- 36
    qt(c(0.025, 0.975), n-1)
    [1] -2.030108  2.030108
    #ganger t-verdien med standardfeilen for gjennomsnittet 
    2.03 * 0.21
    [1] 0.4263
    #bruke denne verdien til å finne øvre og nedre grensen for konfidensintervallet 
    3.36 - 0.43 
    [1] 2.93
    3.36 + 0.43
    [1] 3.79

    Konfidensintervallet forutsier med 95% sikkerhet at gjennomsnittet for utvalgsfordelingen vil ligge mellom 2,93 og 3,79.

  • Ligner resultatene du fikk på de forrige spørsmålene på resultatene fra modell 1 ovenfor? Hva kan eventuelt være grunnen(e) til at resultatene ligner eller ikke ligner?

    SD indikatorer (som MAD SD i modell 1) bruker som vanlig z-verdier. Disse baserer seg på generelle antakelser for en normalfordeling, og determinerer sannsynligheten for å obserservere en viss verdi gitt et bestemt gjennomsnitt og standardavvik.

    Siden estimater basert på data med få observasjoner er betydelig mer usikker, er det mer realistisk å bruke en t-fordeling, som følger den samme logikken som normalfordelingen men har tykkere haler avhengig av antall observasjoner.

    Dette betyr at, når man lager et konfidensintervall basert på en t-fordeling for et relativt små utvalg, får man en bredere sett av verdier (altså mer usikkerhet) enn når man bruker indikatorer basert på z-verdier. Vi observerer dette ved å sammenligne MAD SD-verdien, som var 0,21, og t-verdien som nettop ble kalkulert, som var 0,43.