Einfalt líkan

Ætla að skoða áhrif fermetra íbúðar og staðsetningu (rvk/akureyri) á verð hennar. Geri fyrst líkan með engum samvirknihrifum. Sjáum að allt er bullandi marktækt.

lm(nuvirdi ~ ibm2 + borg, df) %>%
      tidy %>%
      kable(digits = 2, format = "html") %>%
      kable_styling()
term estimate std.error statistic p.value
(Intercept) -5243.60 248.00 -21.14 0
ibm2 282.80 1.31 215.34 0
borgReykjavík 10234.99 216.50 47.28 0

Samvirknilíkan

Geri núna samvirknilíkan. Þá eru samvirknihrifin marktæk en meginhrifin ekki. Hmmmm.

lm(nuvirdi ~ ibm2 + borg + ibm2:borg, df) %>%
      tidy %>%
      kable(digits = 2, format = "html") %>%
      kable_styling()
term estimate std.error statistic p.value
(Intercept) 3594.10 552.49 6.51 0.00
ibm2 196.36 5.01 39.20 0.00
borgReykjavík 765.68 571.80 1.34 0.18
ibm2:borgReykjavík 92.75 5.19 17.88 0.00

Jaðarreglan

Jaðarreglan segir að við eigum ekki að túlka meginhrifin Borg þegar við erum með samvirknihrifin Borg:ibm2. Það passar því við erum með mismunandi hallastuðla og því er munurinn milli hópa mismunandi eftir því hvað við erum að skoða stórar eignir (ibm2 á myndinni fyrir neðan).

Af því að meginhrifin eru ómarktæk gætum við knúist til að fjarlægja þau úr líkaninu, en jaðarreglan bannar okkur að gera það nema við fjarlægjum líka samvirknihrifin.

ggplot(df, aes(x = ibm2, y = nuvirdi, color = borg)) +
      geom_smooth(method = "lm", se = F) +
      geom_vline(xintercept = 0, lty = 2) +
      labs(title = "Líkan með samvirknihrifum",
           subtitle = "Munurinn er sama sem enginn þegar ibm2 = 0 (gerist aldrei en þúst)")

Smá skoðun

Samvirknilíkanið að ofan skoðar muninn milli hópa þegar ibm2 er 0. Ef við færum ibm2 með því að draga meðaltalið frá getum við fengið líkan með marktæk meginhrif milli hópa líka.

df %>%
      mutate(ibm2 = ibm2 - mean(ibm2)) %>%
      lm(nuvirdi ~ ibm2 + borg + ibm2:borg, data = .) %>%
      tidy %>%
      kable(digits = 2, format = "html") %>%
      kable_styling()
term estimate std.error statistic p.value
(Intercept) 23293.44 207.57 112.22 0
ibm2 196.36 5.01 39.20 0
borgReykjavík 10070.50 215.49 46.73 0
ibm2:borgReykjavík 92.75 5.19 17.88 0

Núna er ibm2 = 0 orðið að meðaltali ibm2. Við sjáum að í meðalstærð íbúða eru meginhrif í mun milli borganna. Dottóta línan sýnir hvar líkanið metur meginhrifin Borg.

df %>%
      mutate(ibm2 = ibm2 - mean(ibm2)) %>%
      ggplot(aes(x = ibm2, y = nuvirdi, color = borg)) +
      geom_smooth(method = "lm", se = F) +
      geom_vline(xintercept = 0, lty = 2) +
      labs(title = "Líkan með samvirknihrifum",
           subtitle = "Munurinn er sama sem enginn þegar ibm2 = 0 (gerist aldrei en þúst)")