#Packages
library(rio) #laden van data
library(tidyverse) #data manipulatie en grafieken
library(broom) #samenvattingen regressiemodellen
#Importeer data via rio::import()
<- import("demdata.rds") |>
demdata as_tibble()
#Data management (zie vorig hoofdstuk)
<- demdata |>
demdata mutate(TYPEDEMO1984_factor = factorize(TYPEDEMO1984),
Typeregime2006_factor = factorize(Typeregime2006))
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.
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
<- lm(v2x_polyarchy ~ TYPEDEMO1984_factor, data=demdata)
model_binary
#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
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”).
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.