I de tre foregående afsnit omkring sammenligning af to
normalfordelte observationssæt blev alle beregningerne lavet
ved at bruge python som en lommeregner. I afsnittet her
vil beregningerne blive lavet på mere simpel vis med avancerede
funktioner. I skal bruge funktioner som jeg selv har kodet og
som I finder i filen pytFunktioner.py omtalt i afsnit
1.6. (Python har en indbygget funktion
til at lave -testet for ens middelværdier, men denne
funktion giver ikke det tilhørende konfidensinterval for
forskellen i middelværdier.) Jeg har i de foregående afsnit indført to tests af hypotesen
om ens middelværdier i to normalfordelte populationer.
Et test (-testet) i situationen hvor varianserne er ens
og et andet (Welchs test), når varianserne i de to grupper er
forskellige. Hvorfor bruger vi to test i stedet for blot at nøjes
med testet, hvor det ikke antages, at varianserne er ens ?
De fleste vil nok bruge -testet, hvis baggrundsviden gør,
at man formoder de to varianser er ens. Fortolkningen af et
konfidensinterval for forskel i middelværdierne bliver nemmere,
og for meget små stikprøvestørrelser () vil testet
bedre kunne opdage en forskel end Welchs test.
Det sidste kan aflæses i, at konfidensintervallet for forskellen
mellem de to middelværdier er smallere for -testet end for Welchs
test (dette skyldes, at antallet af frihedsgrader for -testet
er som er større end eller lig med antallet af
frihedsgrader i Welchs test). Omvendt, hvis man ikke tror, at varianserne er ens, skal man bruge
Welchs test. Når varianserne er forskellige, ser man ofte
en sammenhæng mellem middelværdi og spredning, således at spredningen
approksimativt er proportional med middelværdien (når der måles på
positive størrelser). I sådanne situationer opnår man typisk
ens varianser, hvis man logaritmetransformerer data. Et eksempel på dette
beskrives nedenfor.
6.5.1 Two samples: Teste middelværdier ens
For at teste at middelværdierne er ens i to normalfordelinger,
skal man enten bruge -testet, hvis de to varianser er ens,
eller også bruge Welchs test, hvis de to varianser ikke er
ens. Begge de to tests udregnes med funktionen ttest2.
Hvis data ligger i to vektorer
x1 og x2,
bliver kaldet i tilfældet, hvor varianserne antages ens:
Hvis de to varianser antages forskellige skal man ændre True
til False.
De forskellige dele af output er som følger:
Nedre og øvre grænse er for et 95%-konfidensinterval for forskel i
middelværdi mellem gruppe 1 og gruppe2, det
vil sige for parameteren
Gå nu tilbage til Eksempel 6.2.2
og Eksempel 6.3.2 og gentag beregningerne
ved hjælp af ttest2.
Først laver vi beregningerne hørende til Eksempel 6.2.2
med data omkring mængden af ekstraheret cell free DNA,
baseret på to protokoller Qiagen og Triton.
Vi aflæser her -teststørrelsen til
-værdien fra en -fordeling er ,
og et 95%-konfidensinterval for forskel i middelværdi er Vi betragter dernæst beregningerne hørende til Eksempel 6.3.2
med måling af massefylden af kvælstof foretaget af
Lord Rayleigh.
Vi aflæser her -teststørrelsen til
-værdien fra en -fordeling er ,
og et 95%-konfidensinterval for forskel i middelværdi er
6.5.2 Eksempel: log-data
I eksempel 6.2.2 så vi,
at mængden af ekstraheret cell free DNA var næsten dobbelt så stor
ved Triton-metoden som ved Qiagen-metoden. Den empiriske spredning ved
Triton-metoden er også højere end den empiriske spredning ved
Qiagen-metoden.
Man ser ofte, når prøver med forskellige mængder måles med
det samme apparat, så vil spredningen vokse med middelværdien.
Det er ikke helt den situation vi står i her, da forskellen skyldes
målemetoden og ikke forskel i den underliggende mængde.
Alligevel kan den samme effekt godt optræde her.
I sådanne situationer vil der ofte
ske det, at hvis data logaritmetransformeres, vil der efterfølgende være
større lighed mellem varianserne. Nedenfor laver jeg en analyse af de
logaritmetransformerede data, hvor jeg antager, at der er samme
varians i de to grupper for de logaritmetransformerede data. Lad os betegne logaritmen til mængden af ekstraheret CFDNA
med henholdsvis og
for den 'te prøve i de to grupper.
Vi betragter Statistisk Model 6.1.2,
hvor de logaritmetransformerede data har samme varians,
her skrevet som
hvor er
middelværdien af logaritmen til mængden.
Man kan matematisk vise sammenhængen
hvor er
middelværdien af mængden.
I kodevinduet nedenfor laves der qqplots for de
logaritmetransformerede data.
Figurerne tyder på, at vi kan beskrive såvel de oprindelige data
som de logaritmetransformerede data med normalfordelingen.
Man kan ikke ud fra figuren sige, at varianserne er mere ens for
de logaritmetransformerede data. I kodevinduet laves der et 95%-konfidensinterval for
forskel i middelværdi mellem gruppe 1 og gruppe2,
under antagelsen om samme
varians. Konfidensintervallet er baseret på -fordelingen,
og bliver Da nul ikke ligger i intervallet,
strider data mod at sige, at der er samme middelværdi for de
logaritmetransformerede data.
Vi kan oversætte konfidensintervallet
til et konfidensinterval for forholdet mellem middelværdierne
på den oprindelige skala.
Resultat 6.5.2.
(Fra log til ikke-log)
Da vi har antaget samme varians i de to grupper på
logaritmeskalaen, giver sammenhængen
at
Her står, at forholdet mellem middelværdierne på den oprindelige
skala er exponentialfunktionen taget på differensen mellem
middelværdierne på logaritmeskalaen.
Et konfidensinterval for forholdet fås derfor ved
at tage eksponentialfunktionen på intervalendepunkterne for
konfidensintervallet for
For data omkring mængden af CFDNA giver dette resultat
95%-konfidensintervallet
Her står, at
med 95% sikkerhed er
middelværdien af mængden af CFDNA ved Qiagen-metoden
mellem 41% og 56% af middelværdien ved brug af Triton-metoden.
Python har ikke en indbygget funktion til at lave
-testet for hypotesen om ens varianser i
Statistisk Model 6.1.1
med to normalfordelte observationssæt. Jeg har derfor selv kodet en
funktion med navnet vartest2.
Funktionen ligger i pytFunktioner.py.
Hvis data ligger i to vektorer
x og y, og output placeres i fUD, bliver kaldet
De forskellige dele af output er som følger:
Det 95%-konfidensinterval, der angives i output,
er for forholdet mellem de to
variansparametre, det vil sige for
(dette konfidensinterval har jeg ikke omtalt ovenfor).
Gå nu tilbage til Eksempel 6.4.3, og find
de beregnede værdier der i output fra et kald af vartest2.
I det følgende kodevindue betragtes data fra
Eksempel 6.2.2
omkring mængden af ekstraheret cell free DNA,
baseret på to protokoller Qiagen og Triton.
Der laves først et test for at varianserne er ens
for data på den oprindelige skala og dernæst for de
logaritmetransformerede data.
Vi aflæser i output, at for de utransformerede data er
-tesstørrelsen 0.375 og -værdien er
0.075. Hvis vi i stedet betragter de logaritmetransformerede data,
er -tesstørrelsen 1.343 og -værdien er 0.54.
Data strider altså ikke mod samme varians hverken for
de oprindelige data eller for de transformerede data,
men for de logaritmetransformerede data er de empiriske varianser
mere ens. Hvilken -fordeling bruges til beregningen af -værdien ?