Afsnit 7.4: Analyse af model i python

Regressionsmodellen analyseres med funktionen ols i python og fitlm i MATLAB. Her står ols for ordinary least squares og lm står for lineær model. Input til de to funktioner består af en datatabel og en modelformel. I regressionsmodellen her, hvor vektoren med responsværdierne hedder og vektoren med værdierne af den forklarende variabel hedder er modelformlen blot "xt". Generelt skal der på venstresiden af tildesymbolet i en modelformel stå navnet på responsvariablen og på højre side skal strukturen af middelværdien angives. For den lineære regressionsmodel angives middelværdien ved blot at skrive navnet på regressionsvariablen.
I MATLAB laver fitlm automatisk et passende output, hvorimod man i python skal anvende en funktion til at danne output ud fra beregningerne fra ols. Hertil har jeg lavet en funktion summaryLM, der danner et output identisk med output fra fitlm. Idet data ligger i en datatabel, der indeholder en søjle med navnet og en søjle med navnet laves analysen af regressionsmodellen med følgende kommandoer
De variabelnavne, der optræder i modelformlen, skal være navne på søjler i mydata. Ofte vil indlæsningen af data give en datatabel, der allerede indeholder de relevante variable. I modsat fald, hvis responsværdierne ligger i en vektor xvek, og værdierne af den forklarende variabel ligger i en vektor tvek, konstrueres datatabellen som følger (i MATLAB skal vektorerne i table være søjlevektorer):
Her, og i modelformlen, er brugt navnene og , men i anvendelser vil man typisk bruge mere beskrivende navne.
Den vigtigste del af output er en parametertabel (Estimated Coefficients), hvor hver række svarer til en parameter i middelværdimodellen, i den lineære regressionsmodel er dette skæring og hældning , navngivet som Intercept og med navnet på den forklarende variabel, i kaldet ovenfor Tabellen har søjler med parameterskøn, standard error, teststørrelse og en -værdi. Søjleoverskrifterne er som følger:
Søjlen med standard error angiver et skøn over spredningen på parameterskønnet jævnfør formlerne for i Resultat 7.3.1. For at teste hypotesen, at den sande parameterværdi er nul, laves en -teststørrelse, som netop er parameterskøn divideret med standard error. Endelig er søjlen med -værdier fremkommet ved at slå op i en -fordeling med det relevante antal frihedsgrader. Antallet af frihedsgrader, såvel som skønnet over spredningen af punkterne omkring linjen, kan aflæses i teksten under parametertabellen:
Desuden har output fra ols i python to yderligere søjler med nedre og øvre endepunkter i 95%-konfidensintervallet for middelværdiparameteren. I MATLAB fås disse konfidensintervaller med den yderligere kommando coefCI(lmUD), hvor rækkerne svarer til rækkerne i parametertabellen.
Ved hjælp af kodeord (navne) kan man udtrække ønskede elementer fra output i lmUD. Følgende tabel viser de vigtigste muligheder.

7.4.1 Regressionsanalyse via ols/fitlm, modelkontrol

Benyt nu estimationsfunktionen ols/fitlm til at få lavet en parametertabel (og et residualplot) i regressionsmodellen for data omkring forurening af vandprøver fra Eksempel 7.1.1 (MATLAB: husk, at i kaldet af table skal input være søjlevektorer). For at have summaryLM til rådighed er definitionen skrevet ind i kodevinduet. Find skønnene over hældning, skæring og spredning, og sammenlign med værdierne beregnet i Eksempel 7.2.2. Find dernæst et 95%-konfidensinterval for hældning og skæring og sammenlign med beregningerne i Eksempel 7.3.2.

Se opstartskoden (til/fra)

MATLAB-kode

  1. Hvorfor bruges der logG og logC i modelformlen?
  2. Hvor aflæses skønnet over spredningen omkring linjen?
  3. Hvor aflæses konfidensintervallet for hældningen i den lineære sammenhæng?

Svar: Bruge ols/fitlm

  1. I datatabellen indføres navnene logG og logC hvorfor disse skal bruges i modelformlen.
  2. Skøn over spredningen aflæses til 0.3094 under Root Mean Squared Error.
  3. Konfidensintervallet aflæses til i linjen hørende til logC.

ForegåendeNæste