Afsnit 3.4: Goodness of fit test

Vi skal nu bruge det generelle -test i multinomialmodellen til at teste, at indsamlede data følger en bestemt fordeling. Dette går under navnet Goodness of fit test.
Ideen er, at talaksen deles op i en række intervaller, lad os sige intervaller,
hvorefter der tælles op, hvor mange af observationerne der ligger i de forskellige intervaller
(her bruger vi og , og intervallet går fra til med ,men ikke , indeholdt i intervallet). Dette svarer til, at de observationer er fordelt på kasser, og de tilhørende stokastiske variable for antallene er derfor multinomialfordelt,
På grund af den måde data er indsamlet på, kan vi skrive
I modellen er disse sandsynligheder vilkårlige:
Vi ønsker at teste, at har en bestemt fordeling, der eventuelt afhænger af en parameter der kan variere i området For at formulere dette betegnes fordelingsfunktionen (sandsynligheden for at ligge til venstre for et punkt) med Vi kan nu formulere en ny model, eller specificere en hypotese, ved
Her skal erstattes af 0, og skal erstattes af 1. Situationen her svarer til det generelle -test med hypotesen se ligning (3.3.2). Når skøn over er fundet, bliver de forventede antal
For at bruge Resultat 3.3.1 skal man have, at alle de forventede er større end eller lig med 5. Hvis dette ikke er opfyldt, gør man traditionelt det, at man slår kasser sammen for at få kravet opfyldt.

3.4.1 Histogram

Typisk vil man, inden man laver et goodness of fit test, lave en grafisk fremstilling af data i form af et histogram. Histogrammet giver en repræsentation af, hvordan et datasæt fordeler sig. I et antalshistogram er højden af en søjle antallet af observationer, der ligger inden for det interval søjlen dækker.
Mere præcist dannes et histogram ved at dele talaksen op i intervaller med endepunkter antallet af -er med en værdi i det 'te interval tælles op, og i histogrammet laves en søjle med højde der dækker det 'te interval fra til I python og MATLAB indehodler intervallerne det venstre endepunkt, men ikke det højre (i statistisk litteratur er det omvendte mere typisk).
I et tæthedshistogram er højden af den 'te søjle ikke længere men derimod Her er den observerede frekvens i det 'te interval, og er frekvens per længde. Dette kan vi tænke på som skøn over tæthed, idet en tæthed tolkes som sandsynlighed per længde.
Den følgende tabel viser forskellige muligheder i python og MATLAB, hvor man i python-tilfældet i forvejen har kørt kommandoen import matplotlib.pyplot as plt. I tabellen er en vektor med dataværdierne, og endePkt er en vektor med selvvalgte endepunkter for intervallerne. Den første linje viser kaldet, hvor programmet vælger endepunkter, og den anden linje er udgaven, hvor vi selv vælger endepunkter. I den tredje linje laves et tæthedshistogram i stedet for et antalshistogram, og endelig viser den fjerde linje, hvordan vi kan få antallet af observationer i de forskellige intervaller placeret i en vektor antal.
Indbygget i python er et datasæt rivers, som giver længden (målt i miles) for 141 af de store floder i Nordamerika. I kommandovinduet nedenfor laves et histogram af disse data.

MATLAB-kode

Indbygget i MATLAB er et datasæt med eksamenspoint på en skala fra 0-100 for 600 studerende. I kommandovinduet nedenfor laves et histogram af disse data.
Prøv i stedet at lave et histogram af logaritmen til antallet af point. Prøv dernæst for de oprindelige data at lave en intervalinddeling startende i 50 og med intervallængden 2. Find antallet af studerende i de forskellige intervaller.

Svar: Histogram (MATLAB)

Histogram af de logaritmetransformerede data fås med kommandoen histogram(log(point)). Histogram med intervallængde 2 fås med kommandoen histogram(point,50+2*[0:24]). Endelig fås antallene med kommandoen
h=histogram(point,linspace(50,98,25)); antal=h.Values;

Prøv i stedet at lave et histogram af logaritmen til længden af floderne. Prøv dernæst for de logaritmetransformerede data at lave en intervalinddeling startende i 4 og med intervallængden 0.25. Find antallet af floder i de forskellige intervaller.

Svar: Histogram

Histogram af de logaritmetransformerede data fås med kommandoen plt.hist(np.log(rivers)). Histogram med intervallængde 0.25 fås med kommandoen plt.hist(np.log(rivers),bins=4+0.25*np.arange(21)). Endelig fås antallene med kommandoen
antal,bi,pa=plt.hist(np.log(rivers),bins=np.linspace(4,9,21))

ForegåendeNæste