Kom igångKom igång gratis

Slumpmässiga intercept

Linjära modeller i R skattar parametrar som anses vara fixa eller icke-slumpmässiga, och kallas fixa effekter. Däremot antar slumpmässiga effekter att data delar en gemensam felfördelning, och kan ge olika skattningar vid små datamängder eller när det finns extremvärden. Modeller med både fasta och slumpmässiga effekter kallas mixed-effect-modeller eller linjär mixed-effect-regression.

Paketet lme4 anpassar mixed-effect-modeller (modeller med både fasta och slumpmässiga effekter) med lmer(), som använder en formel liknande lm(). Slumpmässiga intercept kräver dock en särskild syntax:

lmer(y ~ x + (1 | random-effect), data = my_data)

Funktionen lmer() kräver att modellen innehåller en slumpmässig effekt, annars ger modellen ett fel. Här ska du anpassa en lm() och en lmer(), och sedan jämföra de anpassade modellerna grafiskt med hjälp av ett urval av data. Vi tillhandahåller den här koden på grund av den avancerade databearbetning som krävs – slumpmässiga effekter plottas vanligtvis inte (ggplot2 saknar också bra plotalternativ för mixed-effect-modeller). I den här plotten kan du se hur de streckade linjerna från slumpmässiga effekter förhåller sig till de heldragna linjerna från de fasta effekterna.

Obs! broom.mixed krävs eftersom paketet broom inte stöder lme4.

Den här övningen är en del av kursen

Hierarkiska modeller och modeller med blandade effekter i R

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Build a liner model including class as fixed-effect model
lm_out <- ___

# Build a mixed-effect model including class id as a random-effect
lmer_out <- lmer(___ ~ ___ + (1 | ___), data = ___)

# Extract out the slope estimate for mathkind
tidy(lm_out) %>%
    filter(term == "mathkind")
    
tidy(lmer_out) %>%
    filter(term == "mathkind")
Redigera och kör kod