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.

  1. De som använde cykelhjälm innan kampanjen och som fortfarande använder cykelhjälm.
  2. De som tidigare inte använde cykelhjälm men efter kampanjen gör det.
  3. De som förut använde cykelhjälm men som av någon anledning efter kampanjen slutat med det. (De kanske är trötta på allt "storebror" säger till oss och i protest slutat använda hjälm.)
  4. De som inte använde cykelhjälm innan kampanjen och som fortfarande inte gör det.

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.