3  Statistische Significantie

Regressiecoëfficiënten vertellen ons iets over de gemiddelde verwachte waarde voor onze afhankelijke variabele: welke waarde verwachten we als de score van de onafhankelijke variabele 0 is (Intercept of constante) en hoe verwachten we dat de afhankelijke variabele verandert als de onafhankelijke variabele met 1 stijgt (de coëfficiënt van de predictor). Echter moeten we ook iets zeggen over de onzekerheid rond deze schattingen. Kunnen onze coëfficiënten ook andere waarden aannemen? Dit wordt behandeld in dit hoofdstuk.

We laden eerst de packages en de data en doen voorbereidend data management.

#Packages
library(rio)             #laden van data
library(tidyverse)       #data manipulatie en grafieken
library(broom)           #samenvattingen regressiemodellen

#Importeer data via rio::import()
demdata <- import("demdata.rds") |> 
  as_tibble()  

#Data management (zie vorig hoofdstuk)
demdata <- demdata |>  
  mutate(TYPEDEMO1984_factor = factorize(TYPEDEMO1984), 
         Typeregime2006_factor = factorize(Typeregime2006))

3.1 t- en p-waarden via summary()

De meeste relevant informatie over statistische significantie en onzekerheid vinden we met de summary() functie.

#Schat model en sla op in object
model_binary <- lm(v2x_polyarchy ~ TYPEDEMO1984_factor, data=demdata)

#Gebruik summary om de resultaten te bekijken
summary(model_binary)

Call:
lm(formula = v2x_polyarchy ~ TYPEDEMO1984_factor, data = demdata)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.51025 -0.15007 -0.00857  0.17309  0.48543 

Coefficients:
                               Estimate Std. Error t value Pr(>|t|)    
(Intercept)                     0.41757    0.02333   17.90  < 2e-16 ***
TYPEDEMO1984_factorDemocracies  0.27268    0.03695    7.38 1.25e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.2163 on 141 degrees of freedom
  (36 observations deleted due to missingness)
Multiple R-squared:  0.2786,    Adjusted R-squared:  0.2735 
F-statistic: 54.47 on 1 and 141 DF,  p-value: 1.247e-11
Output uitleg

Informatie over onzekerheid van de schattingen en statistische significantie vinden we in het gedeelte met de coëfficiënten.

  • Std. Error: Standaardfout van de coëfficiënt
  • t value: De t-waarde of t-statistiek voor de coëfficiënt (\(t = \frac{\textrm{Coefficient}}{\textrm{Std.Error}}\))
  • Pr(>|t|): De p-waarde voor de t-statistiek- de probabiliteit dat we deze t-waarde of een grotere krijgen als we ervanuit gaan dat de nulhypothese van geen effect correct is en de assumpties voldaan zijn.
  • Asterisken en Signif. codes: Je kunt deze symbolen zien naast de waarde onder Pr(>|t|), indien van toepassing. Ze geven weer of de coëfficiënt significant is en zo ja, op welk niveau. De “Signif. codes” rij legt uit waar de codes voor staan. Een enkele asterisk (*), bijvoorbeeld, toont dat de p-waarde kleiner is dan 0.05 maar groter dan 0.01. Twee asterisks (**) vertelt dat de p-waarde kleiner is dan 0.01 maar groter dan 0.001.

Doorgaans gaan we statistische significantie na door te kijken naar de symbolen naast de waarden in de Pr(>|t|) kolom. Zie Paragraaf 8.4 voor verdere informatie over hoe hierover te rapporteren.

3.2 Betrouwbaarheidsintervallen via tidy()

De output die we verkrijgen met summary() geeft ons niet de 95% betrouwbaarheidsintervallen voor de coëfficiënten. Deze kunnen we verkrijgen met de tidy() functie vanuit het broom package (geladen aan het begin van dit hoofdstuk).

tidy(model_binary, conf.int = TRUE)
# A tibble: 2 × 7
  term                  estimate std.error statistic  p.value conf.low conf.high
  <chr>                    <dbl>     <dbl>     <dbl>    <dbl>    <dbl>     <dbl>
1 (Intercept)              0.418    0.0233     17.9  4.02e-38    0.371     0.464
2 TYPEDEMO1984_factorD…    0.273    0.0369      7.38 1.25e-11    0.200     0.346
tidy(

Naam van de functie, toegepast op model tussen haakjes.

model_binary,

Naam van het model.

conf.int=TRUE)

Hier vragen we om de betrouwbaarheidsintervallen op te nemen in de output. Dit wordt niet standaard gedaan. We kunnen ook “conf.int=T” schrijven (“T” = “TRUE”).

Output uitleg

De tidy() functie geeft ons een tabel met resultaten van het model.

  • term: De termen in het model (i.e., intercept en onafhankelijke variabelen).
  • estimate: coëfficiënt voor elke variabele (en voor het intercept)
  • std.error: de standaardfout voor de coëfficiënten
  • statistic: de t-waarde
  • p.value: de p-waarde
  • conf.low & conf.high: de 95% betrouwbaarheidsintervallen met onder “conf.low” de ondergrens en onder “conf.high” de bovengrens van het interval

We kunnen het betrouwbaarheidsniveau aanpassen. Als we het 99% betrouwbaarheidsniveau willen, voegen we bijvoorbeeld “conf.level = 0.99” toe:

tidy(model_binary, conf.int = T, conf.level = 0.99)
# A tibble: 2 × 7
  term                  estimate std.error statistic  p.value conf.low conf.high
  <chr>                    <dbl>     <dbl>     <dbl>    <dbl>    <dbl>     <dbl>
1 (Intercept)              0.418    0.0233     17.9  4.02e-38    0.357     0.478
2 TYPEDEMO1984_factorD…    0.273    0.0369      7.38 1.25e-11    0.176     0.369

Zowel summary() als tidy() geven ons de coëfficiënten van het model. Een voordeel van tidy() is dat de output in een tidy dataframe wordt weergegeven. Dit dataframe kunnen we manipuleren (bv. hernoemen kolommen, variabelen enz.). Hier maken we in latere lessen gebruik van.