Statistik för biologi (och andra ämnen) Pär Leijonhufvud 1 8 december 2010 1 Mikael Elias Teoretiska Gymnasium, Sundsvall, par.leijonhufvud@teoretiska.se, $\ par@leijonhufvud.org. CC BY: 2010. Får fritt kopieras och användas enligt reglerna i Creative Commons Attribution Licence Attribution-ShareAlike. C
Innehåll Vad är statistik, och varför använda det? 3 Signifikans................................ 3 Mätskalor................................. 3 Metoder 4 Chi-2................................... 4 T-test.................................... 4 Mann-Whitney U............................. 5 Program 5 Installera R................................ 6 Övningar 7 Chi-2................................... 7 T-test.................................... 8 Mann-Whitney U............................. 10 Grafer................................... 11 Tabeller till övningarna 15
Pär Leijonhufvud 3 Vad är statistik, och varför använda det? Statistik är ett område som du troligtvis har stött på lite tidigare, i form av grafer, medelvärden och medianer. Men det finns mycket mer i statistik. Ofta använder man statistik för att jämföra två eller flera grupper data, för att avgöra om de skiljer sig från varandra. Låt oss ta ett exempel: att singla slant. Om du singlar ett mynt 100 gånger förväntar du dig troligtvis ungefär 50 krona och 50 klave. Låt oss säga att du får 45 krona och 55 klave, är det ett resultat som tyder på att något är fel, eller ett resultat som är helt "ok"? Om du får 35 respektive 65? Om du kastar 1000 gånger, och får 450 och 550, är det annorlunda då, trots att proportionerna är de samma? Med hjälp av statistiska metoder kan du besvara den frågan! Signifikans När man analyser data pratar man ofta om ett p-värde, som svara på frågan hur stor är chansen att skillnaden beror på slumpen. Normalt anses det att med ett p- värde större än 0.05 (med andra ord 1/20) så är skillnaden inte signifikant. Desto mindre p-värde, desto mindre chans är det att skillnaden beror på slumpen, och desto mer kan man lita på sina slutsatser. Mätskalor När man mäter saker är det inte alltid så att man kan mäta på samma sätt. Till exempel om du mäter hur mycket en insekt väger så är alla värden rimliga, och man kan säga att en insekt som väger 3 g är hälften så tung som en so väger 6 g. Om du däremot skall jämföra antalet tallar och granar i en skog så går det ju inte att säga att två grannar är lika med en tall... Statistiker räknar med fyra olika typer av mätskalor. Nominalskala Med en nominalskala kan man dela in saker i grupper (t.ex. tallar, björkar och granar eller honor och hanar), men det går inte alla sätta någon inbördes ordning på det man mäter. Ordinalskala Här har vi precis som i nominalskalan olika grupper, men här kan vi rangordna de olika grupperna inbördes (t.ex. betyg är på en ordinalskala).
4 Statistik för biologi Intervallskala På intervallskalan har vi numeriska värden, men vi kan inte på ett meningsfullt sätta tala om kvoterna mellan olika värden. Ett exempel är temperatur: vi kan mäta hur stor skillnaden är mellan 20 C och 40 C (20 C), men vi kan inte säga att det senare är dubbelt så varmt som det förra för att nollpunkten är godtycklig. Kvotskala På en kvotskala kan vi inte bara räkna mätvärden och skillnaden mellan dem, utan även ta en kvot mellan två mätvärden. Ett exempel är en persons vikt, då noll på skalan inte är ett godtyckligt värde. Metoder Det finns hundratals olika statistiska test, och de skiljer sig alla i hur de fungerar och i vilka begränsningar de har. Här har jag valt att ta med tre stycken, tre som lämpar väl sig för den typen av data man ofta får i samband med t.ex. en ekologisk exkursion. Två av dem jämför medelvärde och medianvärde för två uppsättningar data (t-test och Mann-Whitney U), medan den tredje besvarar frågor om hur ens data fördelar sig mellan olika alternativ (chi-2). Chi-2 Det här testet mäter skillnaden i fördelningen för dina data. Om man till exempel vill se om färgen på blommor matchar det förväntade 3:1 förhållandet, eller om det fanns mer tallar än granar i en skog, då är chi-2 ett bra test. T-test Detta test mäter skillnaderna i medelvärde mellan två prov. Det förutsätter att man har en normalfördelning, med andra ord att ens mätvärden mestadels ligger nära ett visst värde, med färre och färre ju längre bort från det man kommer (se figur 1 på motstående sida). Man måste också ha data där alla möjliga mätvärden är möjliga, man kan till exempel jämföra längden på elever, men inte deras betyg i biologi (halvvägs mellan två steg är ju inte ett rimligt betyg som någon kan få).
Pär Leijonhufvud 5 Figur 1: Normalfördelade data. De flesta punkter ligger nära medelvärdet, med färre och färre ju längre från detta man kommer. Ofta kommer dina data att vara normalfördelade, men inte alltid. Mann-Whitney U Detta test liknar t-testet, men skiljer sig på två punkter; det kräver inte att data är normalfördelade, och det går också bra om man bara kan ordna sina data i storleksordning (m.a.o. är på ordinalskala, läs mer på sidan 3). Det jämför medianvärden istället för medelvärden 1. Program Idag finns det många program som hjälper en forskare eller elev att genomföra statistiska beräkningar. De flesta av dessa program kan både utföra statistiska beräkningar och rita grafer. I övningarna så kommer jag att använda programmet R (R Development Core Team, 2007). Det är ett program som har två stora fördelar för dig som elev: 1. det är gratis, med andra ord kan du fritt ladda ned det och installera det på din dator. 2. det är ett fullt utbyggt statistiskprogram, men stora möjligheter att genomföra i princip alla statistiska operationer du kan tänkas behöva, både på gymnasiet och vidare på högskolan. 1 Medelvärdet får man fram genom att summera alla mätvärden och dela med antalet, medan man får fram medianen genom att ställa upp alla mätvärden i storleksordning, och ta det i mitten.
6 Statistik för biologi Du kan ha nytta av R även för andra kurser, t.ex. om du skall rita grafer för fysiken, eller analysera data i sammhällskunskapen. Installera R När du laddar ned R går du till en lämplig server. På sidan http://cran. r-project.org/mirrors.html hittar du en lista, Välj förslagsvis en som ligger nära, bäst för oss i Sverige är nog http://ftp.sunet.se/pub/lang/ CRAN/. Där väljer du base. Överst på sidan finns det en länk Download R 2.12.0 for Windows. Klicka på den för att ladda ned R. På sidan finns också några hjälpfiler och lite information. När du väl har laddat ned filen klickar du på den för att köra den. De förslag du får vid installation på val är helt ok, om du inte vill något annat är det bara att acceptera dem.
Pär Leijonhufvud 7 Övningar Nu är det dags att testa praktiskt. I tre övningar, visar jag hur du steg för steg genomför dina statistiska beräkningar med hjälp av R. Om du har egna data, t.ex. från en exkursion du själv genomfört, så kan du även testa med dessa. Allmänt om R: Normalt arbetar man med R in fönstret R Console. Man kan ofta skriva in sina data direkt i en matris. Då kan man till exempel skriva c(17, 42, 69) för att använda sina data. Man kan få hjälp med en funktion genom att skriva help(chisq.test) (givetvis med namnet på den funktionen man vill ha hjälp med). Man kan importera data i form av en tabell. Detta är bra, t.ex. om man har stora mängder data som man har inlagt i MS Excel. Man kan exportera grafer. Exporten sker genom att man säger till R att spara grafen som kommer härnäst i ett visst format och med ett visst filnamn. Skriv help(png) för att se vilka format som finns. Glöm inte att avsluta med dev.off() när du fått fram din graf, annars sparas inte filen! Läs felmeddelanden (de skrivs med fetstil), ofta är de faktiskt användbara och talar normalt om för dig vad som är fel. När du har läst in en tabell med data kan du få den sammanfattad, med kommandot summary(). För att avsluta R skriver du q(). Normalt vill du svara ja på frågan om att spara din miljö (Save workspace image? [y/n/c]: ). Då kan du komma tillbaks dit du var om du kommer på att du vill pröva något nytt. Chi-2 Chi-2 träden i skogen På en fältexkursion så räknade en Anna bland annat antalet tallar och granar i sin ruta (se tabell 1 på sidan 15). När hon skulle beskriva sin ruta undrade hon om det fanns faktiska skillnader i hur vanliga de båda träden var. Hon ville även jämföra antalet videbuskar med antalet aspar. Först tall och gran:
8 Statistik för biologi > chisq.test(c(9, 5)) Chi-squared test for given probabilities data: c(9, 5) X-squared = 1.1429, df = 1, p-value = 0.2850 Då p-värdet är mer än 0,05 så var skillnaden inte signifikant (med andra ord så kan det bara vara slumpen som gjort att det fanns fler tallar än granar). Sedan jämförde Anna vide och asp: > chisq.test(c(17, 3)) Chi-squared test for given probabilities data: c(17, 3) X-squared = 9.8, df = 1, p-value = 0.001745 Nu blev p-värdet mycket mindre än 0,05, så Anna kan rapportera att det fanns en statistiskt signifikant skillnad mellan antalet videbuskar och antalet aspar. Chi-2: singla slant I inledningen (se avsnittet "Vad är statistik,... " på sidan 3) pratade vi om vad som händer när man singlar slant, och vilka proportioner som är rimliga och vilka som är orimliga. Använd chi-2 till att undersöka detta på egen hand. T-test I en klass mätte man hur långa alla var, och antecknade också om de var pojkar eller flickor (se tabell 3 på sidan 16). Men hur skall man avgöra om det är en skillnad mellan pojkarna och flickorna? Det är lätt att se att den längsta pojken är längre än den längsta flickan, och att den kortaste pojken var längre än den kortaste flickan. Men är det skillnader som kan lika gärna kan bero på slumpen, eller kan vi faktiskt säga att pojkar är längre än flickor? För den här typen av data använder vi oss gärna av t-test. Först så lägger i in våra data i en tabell, med tabb-steg mellan könet och längden, sparar filen på datorn med namnet langd.txt och importerar den i R:
Pär Leijonhufvud 9 > elever <- read.table("langd.txt", sep="\t", h=t) Vad vi gör är fyra saker: 1. Vi lägger in vår tabell i objektet elever. 2. Vi läser data från filen langd.txt 3. Vi anger att vi har tabbtecken (sep="\t") som kolumnavgränsare. 4. Vi anger att vi har kolumnrubriker (h=t), som inte är en del av våra data. Vi kan börja med att titta på en sammanfattning av våra data > summary(elever) kon langd f: 9 Min. :165.0 p:10 1st Qu.:170.0 Median :173.0 Mean :174.7 3rd Qu.:177.5 Max. :189.0 Vad vi ser är antalet pojkar och flickor, samt medelvärde (mean), median, standardavvikelse och min- och maxvärde för längden. Sedan är det dags att analysera. > t.test(elever$langd[elever$kon=="f"], elever$langd[elever$kon=="p"], paired=f) Welch Two Sample t-test data: elever$langd[elever$kon == "f"] and elever$langd[elever$kon == "p t = -1.7338, df = 16.272, p-value = 0.1019 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -10.611665 1.056110 sample estimates: mean of x mean of y 172.2222 177.0000
10 Statistik för biologi I den första raden (kommandot) gör vi flera saker: 1. vi använder t.test (t.test). 2. från objektet elever så tar vi kolumnen langd (elever$langd). 3. Då vi vill jämföra flickor med pojkar så tar vi ut de som är pojkar respektive flickor: elever$langd[elever$kon=="f"] och elever$langd[elever$kon=="p"] Det viktiga för oss just nu är p-värdet, vilket är 0.1019. Innebär det att det är en statistiskt signifikant skillnad i medelvärdena? Mann-Whitney U Cecilia och Denise studerade två olika skogar. De tittade på de träd som växte där och delade in dem i tre grupper; ung, medel och gammal. Deras resultat ser du i tabell 2 på sidan 15. De data som Cecilia och Denise samlat in är på en ordinalskala. Det finns en klar riktning på de olika klasserna (ung < medel < gammal), men inga mätvärden. Vi använder därför Mann-Whitney U testet. Det lättaste är att skapa en tabell med två kolumner, en för vilken skog de hittats i, och en för deras ålder: skog alder Hogasen ung Hogasen ung Hogasen ung Dalsberget ung Dalsberget ung Dalsberget ung Dalsberget ung Hogasen medel Hogasen medel Hogasen medel Dalsberget medel...... Sedan importerar vi den i R. > trad <- read.table("trad.txt", sep="\t", h=t)
Pär Leijonhufvud 11 Sedan tar vi och ser till att R vet om vilken ordning våra åldersklasser skall vara i, och vilka olika skogar vi har. När vi ger kommandot summary(skogalder) så ser vi vilka skogar vi har, och vilka åldersklasser vi har (samt antalet i alla). > alder <- ordered(trad$alder, levels=c("ung", "medel", "gammal")) > skog <- factor(trad$skog, levels=c("hogasen", "Dalssberget")) > skogalder <- data.frame(skog, alder) > summary(skogalder) skog alder Hogasen :17 ung : 7 Dalssberget:24 medel :22 gammal:12 Sedan är det dags att genomföra vårt test > wilcox.test(as.integer(alder)~skog, data=skogalder, paired=f) Wilcoxon rank sum test with continuity correction data: as.integer(alder) by skog W = 169, p-value = 0.3122 alternative hypothesis: true location shift is not equal to 0 Warning message: In wilcox.test.default(x = c(1l, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, : cannot compute exact p-value with ties Vilket var p-värdet? Vad innebär det? Grafer Redan i avsnittet om t-test så tog vi tillfället att rita en graf (figur 3 på sidan 13), men det finns många olika typer av grafer. EN graf är ett sätt att visuellt visa vilka resultat man har fått, eller vilka slutsatser man kan dra från dem. Programmet R har en stor kapacitet till att rita grafer av många olika typer, och vi kommer här att testa några av de vanligare och på gymnasiet kanske mest användbara.
12 Statistik för biologi En enkel graf med vid installationen av R finns det ett antal tabeller med data, som man kan använda som exempel. I vår första graf använder vi data från en studie över hur många lodjur som fångades i Kanada under perioden 1821 1934. Den tabellen heter lynx. plot(lynx) Den graf du får fram ser du i figur 2. Figur 2: En graf över antalet fångade lodjur i Kanada 1821 1934. Boxplot, även kallat låddiagram Baserat på de data vi hade om elevernas längd och kön (se tabell 3 på sidan 16) kan vi enkelt rita en graf. > plot(elev$kon, elev$langd, ylim=c(160,190)) Den graf vi får ut (se figur 3 på nästa sida) är en så kallad "boxplot" (eller låddiagram), där rutan berättar var huvuddelen av våra data ligger, medan de utstickande linjerna anger det minsta och största värdet. Den här typen av grafer är ofta bra för att den både visar medelvärdet (det fetare strecket inne i boxen) och hur spridda våra mätvärden är. Den vanligaste varianten av boxplot det finns några olik varianter är den som på engelska kallas "box and whisker" (figur 3 på motstående sida). Där visar man tre saker:
Pär Leijonhufvud 13 Figur 3: Elevernas längd, uppdelar på pojkar och flickor. Rutan visar var huvuddelen av eleverna ligger, utstickarna var det minsta och största värdet ligger. 1. Medianvärdet. 2. Undre och övre kvartilen, med andra ord det intervall inom vilket 50% av alla data faller inom. 3. Det största och minsta värdet. Stapeldiagram Figur 4: Stapeldiagram över några olika träd och buskar som hittades i en skog. Ibland vill man bara visa antalen eller den relativa storleken av olika objekt. Då
14 Statistik för biologi kan ett stapeldiagram vara bra. Om vi använder Annas data från skogsexkursionen (tabell 1 på nästa sida) så är det lätt. > barplot(c(9, 5, 17, 3), names=c("tall", "gran", "vide", "asp")) Grafen man får upp ser du i figur 4 på föregående sida. Källor Peter Dalgaard. Introductory Statistics with R. Springer, 2002. ISBN 0-387- 95475-9. Jim Fowler, Lou Cohen, and Phil Jarvis. Practical Statistics for Field Biology. John Whiley and Sons, 2 edition, 1998. ISBN 0-471-98296-2. R Development Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria, 2007. URL http://www.r-project.org. ISBN 3-900051-07-0. Sidney Siegel and N. John Castellan Jr. Nonparametric Statistics for The Behavioral Sciences. McGraw-Hill, 1988.
Pär Leijonhufvud 15 Tabeller till övningarna Art Antal Tall 9 Gran 5 Vide 17 Asp 3 Tabell 1: Data från en fältexkursion. Tabell 2: Åldersklasser på träd i två skogar. Unga Medel Gammla Högåsen 3 10 3 Dalsberget 4 11 9
16 Statistik för biologi Kön Längd f 172 f 168 f 178 f 180 f 169 f 176 f 165 f 169 f 173 p 175 p 172 p 189 p 169 p 177 p 173 p 183 p 171 p 174 p 187 Tabell 3: Elevers kön och längd (p/f, cm)