Denne side kræver yderligere en udvidelsespakke, nemlig ggfortify

install.packages("ggfortify")
#vi skal lige have indlæst datasættet igen, og lavet beregningen af den lineære model
df_sugar <- dget("https://statepi.statnoter.dk/data/sugar.robj")
model_sugar <- lm(formula = BMI ~ sugar, data = df_sugar)

Brugen af lineære normale modeller kræver i princippet at de anvendte data opfylder en række forudsætninger. De primære forudsætninger er:

  1. Alle observationer skal være uafhængige. Det betyder bla. at man kun må medtage en observation pr. person (med mindre man ved hvordan man skal forholde sig til det, hvis der er flere målinger for hver person).
  2. Gentagne observationer af udfalds-variablen for samme værdi af prediktor-variablerne skal være normalfordelte.
  3. Varianserne af udfalds-variablen for hver værdi af prediktorvariablerne skal være identiske (bemærk at variansen blot er kvadratet på spredningen). Denne forudsætning omtales tit som varianshomogenitet eller homoskedacitet.
  4. Hvis der er tale om numeriske prediktorvariable, så bør den gennemsnitlige sammenhæng mellem prediktorvariabel og udfald være lineær.

Ovenstående formuleringer kan være lidt svære at forstå. Bare læs videre, så kigger vi nærmere på det i løbet af timerne.

Bemærk at disse 4 forudsætninger er de samme som man kender fra t-test, variansanalyse og lineær regression (som jo er specialtilfælde af de lineære normale modeller).

Forudsætningerne er fundamentale i forhold til den matematiske teori som ligger til grund for statistikken, men der er, i større eller mindre omfang, enighed om at det sjældent er nødvendigt at håndhæve dem strengt i forhold til praktisk anvendelse (undtaget punkt nr. 1 som man ikke må gå på kompromis med). Dvs. at så længe data opfylder den første forudsætning, og ikke afviger alt for meget fra de 3 sidstnævnte forudsætninger, så vil man kunne anvende metoderne i dette kapitel.

Uafhængige målinger

Bemærk først og fremmest at forudsætning nummer 1 er kritisk. Der findes ikke matematiske/grafiske metoder til at undersøge denne forudsætning, her er man nødt til at forstå hvordan data er fremskaffet. Denne forudsætning skal være fuldstændig overholdt, ellers bliver beregningerne meningsløse. Nedenstående omhandler derfor kun forudsætningerne 2-4.

Robuste metoder

Der findes versioner af beregningerne bag de lineære modeller, som i nogen grad er robuste overfor afvigelser fra forudsætningerne angivet ovenfor. Dette gennemgås pt. ikke, men kan være en mulighed hvis man står med data der viser store afvigelser fra især forudsætningen om varianshomogenitet. Bemærk desuden at forudsætning nr. 2 og 3 bliver mindre vigtige jo flere målinger man har.

Kontrol af forudsætninger

Forudsætningerne som angivet øverst kan typisk kontrolleres på flere måder. Dels er det muligt at finde diverse statistiske hypotesetest som kan undersøge, om de observerede data er i modstrid med forudsætningerne. Det er imidlertid forfatterens opfattelse at disse metoder sjældent er relevante. Dette skyldes to faktorer: Dels at R (og lignende programmer) som nævnt kan foretage beregning af lineære normale modeller på en sådan måde, at beregningerne er robuste overfor mindre afvigelser fra forudsætningerne. Dels at matematikken faktisk selv redder mange af afvigelserne: De beregninger man udfører handler ofte om middelværdier. Og den såkaldte “centrale grænseværdisætning” medfører at selv om enkeltmålingerne ikke er normalfordelte så bliver middelværdierne det alligevel, og dermed fungerer beregningerne alligevel.

Dvs. at det er kun relevant at opdage afvigelser fra forudsætningerne, hvis disse er betydelige, og dermed også er synlige med nogle af de grafiske metoder som gennemgås herunder.

Grafiske metoder til kontrol af forudsætninger

Kontrol af de forudsætninger der ligger til grund for test af lineære normale modeller kan, i R, foretages via nogle passende grafer, som fremstilles som vist herunder. Bemærk at hvis man ønsker en dybere forståelse for disse plot, er det nødvendigt at forstå begrebet “residual”. Dette er forklaret lidt dybere på denne side: https://statnoter.dk/index.php?pageID=116

Residualplot

Første plot er et residualplot. Det har ikke den store betydning i dette eksempel, men når man har numeriske prediktorer er det vigtigt i forhold til at tjekke forudsætning nr. 4. I så fald skal residualerne gerne være tilfældig fordelt omkring 0.

library(ggfortify)
autoplot(model_sugar, which = 1)
Warning: `fortify(<lm>)` was deprecated in ggplot2 4.0.0.
ℹ Please use `broom::augment(<lm>)` instead.
ℹ The deprecated feature was likely used in the ggfortify package.
  Please report the issue at <https://github.com/sinhrks/ggfortify/issues>.
This warning is displayed once per session.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
ℹ Please use tidy evaluation idioms with `aes()`.
ℹ See also `vignette("ggplot2-in-packages")` for more information.
ℹ The deprecated feature was likely used in the ggfortify package.
  Please report the issue at <https://github.com/sinhrks/ggfortify/issues>.
This warning is displayed once per session.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
ℹ The deprecated feature was likely used in the ggfortify package.
  Please report the issue at <https://github.com/sinhrks/ggfortify/issues>.
This warning is displayed once per session.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.

qq-plot

Næste plot viser fordelingen af residualerne. Dette plot tjekker forudsætning nr. 2, og skal gerne danne en nogenlunde ret linje (ikke nødvendigvis vandret)

autoplot(model_sugar, which = 2)

Scale location

Det sidste plot benyttes til at teste forudsætning nr. 3, og her skal punkterne gerne ligge nogenlunde på en vandret linje.

autoplot(model_sugar, which = 3)

Konklusion

I dette eksempel er der ikke nogen af plottene, som tyder på at der er signifikante afvigelser fra forudsætningerne.

Bemærk

Alle 3 plot kan laves på en gang, som vist her:

autoplot(model_sugar, which = 1:3)