Teorier bakom McNemar test / Teckentest
Denna sida är uppdaterad 2002-11-13
På denna sida finns förklaringar till teckentest och McNemar test. På sidan "Teckentest / McNemar test" finns en kalkylator som räknar teckentest och McNemar test.
År 1710 publicerade Dr John Arbuthnott en artikel där han försökte bevisa Guds existens genom att på matematisk väg konstatera att det är osannolikt att det skulle födas lika många pojkar som flickor (Arbuthnott 1710). Hans slutsatser har ifrågasatts men ändå är det en av de tidigaste publikationerna där man använder ett modernt statistiskt test, teckentestet (Aczel 1999).
Vad är teckentest / McNemar test?
McNemar test och teckentest är olika test som används i likartade situationer.
Båda testen används när man
räknar på parade (matchade) data. Den här webbsidan förklarar när teckentest är
lämpligast och när McNemar test är lämpligast. Slutsatsen (som förklaras
längre ner) är att testen är utbytbara (Altman 1991) men att teckentest oftast är att föredra.
Teckentestet kan ses som en icke parametrisk variant av Students t-test för
matchade grupper. McNemar test kan ses som Chi-två-testet fast för matchade
grupper.
Så som testen ursprungligen har tänkts och konstruerats bör McNemar test
användas på nominaldata och teckentest då du har en högre nivå (minst
ordinalskala) på dina data.
När kan testerna användas?
Testerna passar i situationer där man har någon form av matchning. Det finns
två huvudsakliga situationer där man har detta:
Testfunktion
I princip alla statistiska test för
signifikansanalys använder en testfunktion som resulterar i ett tal. Talet jämförs
sedan med hur det brukar vara i en viss
fördelning, och detta omvandlas till ett p-värde. De vanligaste
testfunktionerna är:
Testfunktion | Fördelning |
Z | Normalfördelningen |
Binomialfördelningen | |
X2 | Chi-två fördelningen |
T | T-fördelningen |
McNemar test följer chi-två-fördelningen. Vid användande av McNemar rekommenderas att man använder
en lite bättre chi-två fördelning med kontinuitetskorrektion som Yates' tagit
fram (Campbell, 1993).
Teckentest (som på engelska kallas för signs test) följer
binomialfördelningen. Om stickprovet är stort kan man använda
normalapproximationen av binomialfördelningen och teckentestet blir då samma som
z-testet för andelar/proportioner.
Såväl teckentest som McNemar test kan utföras som ensidigt eller tvåsidigt
test. Med det menas om man från början letar efter skillnad mellan grupperna åt
bara ett håll eller om en skillnad mellan grupperna kan tänkas vara åt båda
hållen. Vanligast är att testerna görs tvåsidigt (om man gör ensidigt test bör
man ha goda skäl till det).
Exempel med teckentest
Antag att du jämför en ny behandling med konventionell behandling för
patienter med en viss sjukdom. Du parar
ihop 30 individer till 15 par. Därefter randomiserar du varje par så att den ena
individen tillhör grupp 1 och den andra grupp 2. Individer tillhörande grupp 1
får den nya behandlingen medan individer i grupp 2 får den konventionella. Vi
antar att du mäter resultatet av behandlingen med någon variabel som har åtminstone ordinalskala
(exempelvis symptomskattning på en skattningsskala), intervallskala (exempelvis förändring
i blodtryck) eller kvotskala (exempelvis antal akuta läkarbesök)
När du analyserar resultatet visar det sig att i 9 par har individen
tillhörande grupp 1 förbättrats mer än individen tillhörande grupp 2. I ett par
var det tvärtom och i fem par förbättrades båda individerna lika mycket. Det
verkar som att den nya behandlingen är bättre än den konventionella. För att se
om skillnaden är statistiskt signifikant kan du använda teckentest.
Du kan gå till
räknaren som gör teckentest och göra testet. För att göra teckentest fyller
du i i den ena rutan att 9 par skilde sig åt på ett sätt. I den andra rutan
fyller du i att 1 par skilde sig åt på det andra sättet. Klicka
sedan på den knappen märkt "Teckentest". Du ser då att skillnaden
mellan de två behandlingarna är statistiskt signifikant (ensidigt test p=0,01
och tvåsidigt test p=0,02).
Exempel med McNemar test
Antag att vi
grovt kan dela in populationen i två kategorier, de som använder cykelhjälm
respektive de som inte använder cykelhjälm. Genomför en informationskampanj med många
"otäcka bilder" från cykelolyckor. Hur ser det ut efter kampanjen? Har människor
påverkats och "flyttat över" från en kategori till en annan? Vi kan dela in vår population i fyra kategorier nu.
Grupp a och grupp d har inte ändrat sitt beteende men grupp b och grupp c har ändrat sitt beteende efter kampanjen. Vi kan sätta upp en tabell där vi i cellerna har antalet personer i de olika kategorierna.
Före kampanjen | |||
Använder hjälm (H+) |
Använder inte
hjälm (H-) |
||
Efter kampanjen |
Använder hjälm (H+) |
a | b |
Använder inte hjälm (H-) |
c | d |
Vi kan t.ex. se att de c stycken personerna har ändrat sitt beteende men det går inte att göra någon storleksjämförelse. Vi kan bara konstatera att det skett en förändring. Vi har ju nominaldata. Det är här, på nominalskalenivå, som McNemar test kommer in i bilden.
Kan teckentest även göras på nominaldata?
Egentligen borde svaret vara enkelt: Använd McNemar test på nominaldata och
teckentest då du har en högre nivå (minst ordinalskalan) på dina data. Men riktigt så enkelt är det inte.
Om vi tittar på exemplet ovan där två olika behandlingar
givna till patienter jämförs så har vi parvis observationer där vi ser vilken av personerna inom paret som förbättras mest.
Vi gör en
storleksjämförelse, vilket kräver minst ordinaldata. Om vi kvantifierade förändringen kunde vi
mäta differensen mellan individerna som då skulle vara antingen positiv (vi kan
beteckna dem med värdet +1), oförändrad (vi kan beteckna dem med värdet 0) eller negativ
(vi kan beteckna dem med värdet -1). Vi kan bortse från de par där individerna förbättrades lika mycket
(de som har värdet 0) eftersom de inte kan ge
oss någon information om olikheter i behandlingsmetoderna. Vi låter X vara antal
individer med värdet +1 och om nollhypotesen att det
inte är någon skillnad mellan behandlingsmetoderna (när det gäller resultatet av
behandlingen), så är X binomialfördelad med n=b+c (antal par där det finns en differens
skild från 0) och med sannolikheten att få värdet +1 som är 50% (d.v.s. p(x)=0,5). Vi kan sedan genomföra teckentestet.
Hur gör man om man har kategoridata, nominalskala som i
exemplet med cykelhjälmar? Det korrekta borde vara att använda McNemar test.
Aczel skriver; Large-sample test statistic for the McNemar test:
Vid stora urval är testkarakteristikan T approximativt X2-fördelad med 1 frihetsgrad. Om vi antar att vi kan lägga en värdering i folks ändrade vanor av cykelhjälmsanvändande och säger att en förändring till att börja använda cykelhjälm är positiv (och ges värdet +1), och en förändring att sluta använda hjälm är negativ (och ges värdet -1) så är det rimligt och säga att de som inte har ändrat sig alls ligger mittemellan (och ges då värdet 0). Vi har nu omvandlat nominalskalan till en tregradig ordinalskala. Nu kan vi räkna teckentest på samma sätt som när vi jämförde två olika behandlingar. Vår nollhypotes är att kampanjen inte har någon effekt och antalet individer med värdet +1 kan förväntas följa binomialfördelningen med n=b+c om nollhypotesen (ingen effekt av kampanjen) är sann är p(x)=0,5. Konklusionen är alltså att vi kan göra ett teckentest även om vi bara har nominaldata.
Approximativt Teckentest
Om vi en stund lever kvar i den gamla goda tiden då vi inte
satt med en PC på bordet utan med en miniräknare så kunde ett teckentest bli lite jobbigt
att räkna om vi hade stora urval. Man resonerade då så här;
Vi utgår från exemplet med cykelhjälmar. Eftersom X är
binomialfördelad så gäller vid stora stickprov
enligt centrala gränsvärdessatsen att X kan anses vara
ungefärligt (approximativt)
normalfördelad stickprovet inte är för litet
(mer om detta på sidan om
fördelningar). Det förväntade värdet (väntevärdet) µ=n.p
och variansen
σ2=np(1-p). Vi
kunde då
enkelt beräkna den ungefärliga (approximerade) sannolikheten för att få det
observerade värde med hjälp av
normalfördelningstabell.
Man kan alltså för stora urval göra ett approximativt teckentest
som bygger på normalfördelningen istället för binomialfördelningen. Har vi
bara hyfsat stora stickprov så fungerar approximationen bra. Testet kan sedan förbättras
lite med en kontinuitetskorrektion.
Vad är skillnaden mellan Teckentest och McNemar test?
(Detta avsnitt är för dig som är speciellt
intresserad av statistik. Är du måttligt intresserad kan du gå direkt till nästa
avsnitt; Jämförelse mellan t-test för matchade data och teckentest)
(Detta avsnitt är under omarbetning)
Vi utgår åter från exemplet med cykelhjälmar och låter X vara antal individer med värdet +1. Om X är approximativt normalfördelad så är X/n också normalfördelad, fast med en förändring av parametrarna. Väntevärdet är nu p och variansen är p(1-p)/n. Har vi stora stickprov kan vi göra ett test som bygger på normalfördelningen, z-test. (Vi hoppar även över eventuella funderingar om t-fördelning och antar stora stickprov.) Det ser ut så här.
Testfunktionen; Z.
Är X normalfördelad så är Z normalfördelad. Och är X approximativt normalfördelad så är Z approximativt normalfördelad. I vårt exempel är µ=np och σ2=np(1-p).
Dividera täljare och nämnare med n.
Under nollhypotesen gäller att ett byte från en grupp till en annan inte har något med kampanjen om cykelhjälmar att göra så är det alltså lika stor chans att det sker att "positivt" byte som ett "negativt". (detta kan formellt skrivas som; H0: p=0.5). Vi sätter nu in 0,5 istället för p;
Teststatistikan Z är standardnormalfördelad med µ=0 och σ=1. Det gäller att om man kvadrerar en standardnormalfördelad variabel så får man en chitvåfördelning med 1 frihetsgrad (Altman 1991 - sidan 241). Det gäller att Z2 är X2 med 1 frihetsgrad. Vi kvadrerar alltså ovanstående ekvation och får då
Vi börjar först med att konstatera att X=antal "positiva" förändringar kallade vi i tabellen ovan för c. n= antal förändringar (positiva och negativa) = b+c. Vi för in dessa beteckningar och multiplicerar täljare och nämnare med b+c.
Täljaren kan skrivas om: c-0.5b-0.5c = 0.5c-0.5b = 0.5(c-b) vilket medför:
Alltså kommer vi fram till
Detta är ju teststatistikan i McNemar test. Alltså är McNemar test kvadraten på ett approximativt teckentest. Kvadreringen av teckentestet innebär att testskarateristikan blir (approximativt) chitvå-fördelad istället för (approximativt) standardnormalfördelad. Den enda praktiska konsekvensen av detta är att vi får slå upp den kritiska gränsen för testet (p-värdet) i en annan tabell.
Jämförelse mellan t-test för matchade data och teckentest
Den här sidan handlar om parade/matchade
data. Har du normalfördelade kontinuerliga variabler är
Students t-test för
matchade data bäst. Är data snedfördelade
eller mäts de med ordinalskala kan du inte använda t-testet. Då gäller
teckentest. Teckentestet kan alltså ses som en icke parametrisk variant av Students t-test för
matchade data. Vid små stickprov är båda testen måttligt bra och skillnaden är
inte så stor. Vid n=6 har teckentestet en effektivitet på 95% jämfört med
t-testet (Körner & Wahlgren 2000). Om n ökar förbättras effektiviteten mer hos
t-testet jämfört med teckentestet. Då n är oändligt stort är effektiviteten hos
teckentestet 63% av t-testets. Detta innebär att det vid stora stickprov krävs
59% (1/0,63=1,59) fler par/observationer för att uppnå samma styrka som
teckentestet (Körner & Wahlgren 2000).
Slutsatsen blir att teckentest oftast är att föredra
Det är alltså i praktiken exakt samma sak att använda ett
approximativt teckentest som att använda ett McNemar test (Altman 1991 sidan 240). Även om tanken egentligen var att använda McNemar test för
nominaldata och teckentest för högre datanivåer där storleksjämförelse är möjlig
så ser vi att om stickproven blir så stora att vi inte orkar räkna exakt utan gör
ett approximativt teckentest så är det samma test som McNemar. Vi måste komma ihåg just detta samband och att McNemar är ett
approximativt test. Det är ju alltid bättre om vi kan räkna exakt så som vi gör
med det vanliga teckentestet som följer binomialfördelningen. Så istället för att blanda in datanivåer
(nominalskala, ordinalskala eller högre skala) så blir rådet
följande;
(Har du normalfördelade kontinuerliga variabler är
Students t-test för
matchade data bäst.) Om du kan räkna teckentest (enligt binomialfördelningen) är det att föredra i nästan alla situationer. Teckentest kräver i praktiken tillgång till en Pc då det är opraktiskt att göra för hand. Om du har väldigt stora material kan en Pc få problem (osannolikt men teoretiskt tänkbart). Räkna då McNemar test eftersom det nästan inte kräver något alls av datorn. Om du är ute och går på stan och plötsligt behöver göra ett test och råkar ha en chitvåtabell i fickan kan du göra ett McNemar test eftersom det är en "snygg" formel som är ganska lätt att lägga på minnet. Förutsättningen är att stickprovsstorleken inte är för liten eftersom McNemar test då blir otillförlitligt. |
Referenser
Aczel AD. Nonparametric methods and chi-square tests. Complete business statistics fourth edition. Boston: Irwin/McGraw-Hill; 1999, pp 668-739. | |
Altman DG. Comparing groups - categorical data. In Practical statistics for medical research. Altman DG. London: Chapman & Hall 1991, pp229-76. | |
Arbuthnott J. An argument for divine providence, taken from the constant regularity observed in the births of both sexes. Philosophical transactions 1710;27:186-90. | |
Campbell MJ, Machin D. Appendix A10 McNemar's test. Medical statistics: A commonsense approach - Second edition. Chichester: John Wiley & Sons Ltd; 1993, pp 148-50. | |
Körner S, Wahlgren L. Icke parametriska metoder. Statistisk dataanalys. Lund: Studentlitteratur; 2000, pp 304-26. |
Denna webbsida är författad av
Doc. Ronny Gunnarsson
Distriktsläkare/Familjeläkare
Läs om regler för ansvar och copyright som gäller för denna webbsida.