Laboration 1: Icke-parametriska enstickprovstest

Relevanta dokument
Laboration 3: Icke-parametrisk korrelations- och regressionsanalys

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

Introduktion och laboration : Minitab

Inledning till statistikteorin. Skattningar och konfidensintervall för μ och σ

TMS136. Föreläsning 10

Datorlaboration 8/5 Jobba i grupper om 2-3 personer Vi jobbar i Minitab Lämna in rapport via fronter senast 22/5 Förbered er genom att läsa och se

Laboration med Minitab

Laboration 2: Statistisk hypotesprövning

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

2. Test av hypotes rörande medianen i en population.

Introduktion. Konfidensintervall. Parade observationer Sammanfattning Minitab. Oberoende stickprov. Konfidensintervall. Minitab

Föreläsning 12: Regression

Matematikcentrum 1(6) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs VT2014, lp3. Laboration 2. Fördelningar och simulering

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

7.3.3 Nonparametric Mann-Whitney test

Instruktion för laboration 1

Laboration 1: Introduktion till R och Deskriptiv statistik

F3 Introduktion Stickprov

Institutionen för teknikvetenskap och matematik, S0001M LABORATION 2

Laboration 2. i 5B1512, Grundkurs i matematisk statistik för ekonomer

π = proportionen plustecken i populationen. Det numeriska värdet på π är okänt.

Lektionsanteckningar 11-12: Normalfördelningen

DATORÖVNING 2: STATISTISK INFERENS.

Analys av medelvärden. Jenny Selander , plan 3, Norrbacka, ingång via den Samhällsmedicinska kliniken

Datorövning 1: Fördelningar

SF1901: SANNOLIKHETSTEORI OCH STATISTIKTEORI KONSTEN ATT DRA INTERVALLSKATTNING. STATISTIK SLUTSATSER. Tatjana Pavlenko.

bli bekant med summor av stokastiska variabler.

DATORÖVNING 6: CENTRALA GRÄNSVÄRDES-

träna på att använda olika grafiska metoder för att undersöka vilka fördelningar ett datamaterial kan komma från

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

Instruktion för laboration 1

Datorövning 1 Fördelningar

FÖRELÄSNING 8:

Laboration 3: Enkla punktskattningar, styrkefunktion och bootstrap

Tentamen i statistik (delkurs C) på kursen MAR103: Marina Undersökningar - redskap och metoder.

Datorlaboration 1 Deskriptiv statistik med hjälp av MS Excel vers. 2010

*****************************************************************************

Föreläsning 4. NDAB01 Statistik; teori och tillämpning i biologi

Statistik och epidemiologi T5

Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs HT2007. Laboration. Simulering

FÖRELÄSNING 7:

Föreläsning 5 och 6.

Matematikcentrum 1(6) Matematisk Statistik Lunds Universitet MASB11 HT11. Laboration. Statistiska test /16

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Tenta i Statistisk analys, 15 december 2004

TMS136. Föreläsning 11

DATORÖVNING 2 MATEMATISK STATISTIK FÖR D, I, PI OCH FYSIKER; FMSF45 & MASB03. bli bekant med summor av stokastiska variabler.

a) Facit till räkneseminarium 3

Datorlaboration 1 Deskriptiv statistik med hjälp av MS Excel

TMS136. Föreläsning 13

Matematikcentrum 1(5) Matematisk Statistik Lunds Universitet MASB11 HT Laboration P3-P4. Statistiska test

Föreläsning G60 Statistiska metoder

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Hypotestestning och repetition

Datorövning 1: Fördelningar

F22, Icke-parametriska metoder.

Laboration 3: Parameterskattning och Fördelningsanpassning

Thomas Önskog 28/

Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet Per-Erik Isberg. Laboration 1. Simulering

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Avd. Matematisk statistik

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

9. Konfidensintervall vid normalfördelning

Laboration 1: Beskrivande statistik

Datorövning 2 Betingad fördelning och Centrala gränsvärdessatsen

8 Inferens om väntevärdet (och variansen) av en fördelning

Parade och oparade test

F9 Konfidensintervall

MVE051/MSG Föreläsning 7

Föreläsning 4: Konfidensintervall (forts.)

Tentamentsskrivning: Matematisk Statistik med Metoder MVE490 1

En introduktion till och första övning for Excel

1 Syfte. 2 Förberedelseuppgifter DATORLABORATION 1 MATEMATISK STATISTIK, AK FÖR L, FMS 033, HT-03

Histogram, pivottabeller och tabell med beskrivande statistik i Excel

DATORÖVNING 5: SANNOLIKHETSFÖRDELNINGAR FÖR

Matriser och vektorer i Matlab

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

SF1901: Sannolikhetslära och statistik. Statistik: Intervallskattning (konfidensintervall)

F8 Skattningar. Måns Thulin. Uppsala universitet Statistik för ingenjörer 14/ /17

Betrakta kopparutbytet från malm från en viss gruva. För att kontrollera detta tar man ut n =16 prover och mäter kopparhalten i dessa.

Demonstration av laboration 2, SF1901

I den här datorövningen ser vi hur R kan utnyttjas för att kontrollera modellantaganden och beräkna konfidensintervall.

Bild 1. Bild 2 Sammanfattning Statistik I. Bild 3 Hypotesprövning. Medicinsk statistik II

Tentamen i matematisk statistik (9MA241/9MA341, STN2) kl 14 18

Arbeta med normalfördelningar

FÖRELÄSNINGSMATERIAL. diff SE. SE x x. Grundläggande statistik 2: KORRELATION OCH HYPOTESTESTNING. Påbyggnadskurs T1. Odontologisk profylaktik

STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. Matematisk statistik Anders Björkström

Lösningar till tentamensskrivning för kursen Linjära statistiska modeller. 14 januari

Datorlaboration 7. Simuleringsbaserade tekniker

F14 HYPOTESPRÖVNING (NCT 10.2, , 11.5) Hypotesprövning för en proportion. Med hjälp av data från ett stickprov vill vi pröva

Laboration 4 Statistiska test

Målet för D3 är att studenterna ska kunna följande: Dra slumptal från olika sannolikhetsfördelningar med hjälp av SAS

Laboration 4 Statistiska test Del I: Standardtest Del II: Styrkefubktion

SF1901: Sannolikhetslära och statistik. Statistik: Intervallskattning (konfidensintervall) Jan Grandell & Timo Koski

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Matriser och Inbyggda funktioner i Matlab

Introduktion till Matlab

Transkript:

STOCKHOLMS UNIVERSITET 8 september 2004 Matematiska institutionen Avd. för matematisk statistik Mikael Andersson Laboration 1: Icke-parametriska enstickprovstest Syftet med denna datorlaboration är ni skall bekanta er lite med de numeriska beräkningar som ligger bakom de vanligaste icke-parametriska metoderna för analys av ett stickprov samt göra en jämförelse av resultaten av dessa. Instruktionerna är skrivna för programspråket MATLAB, men det är inget som hindrar att man löser uppgifterna med hjälp av annan programvara. Valet av MATLAB är gjort framförallt av pedagogiska skäl. Det finns flera statistiska program, exempelvis Minitab, SPSS och S-plus, som har färdiga rutiner för många ickeparametriska test, men användandet av sådana skulle inte bidra på samma sätt till en ökad förståelse av dessa metoder. Dessutom är MATLAB mycket effektivt när det gäller långa numeriska beräkningar, slumptalssimulering och hantering av stora datamängder som det ofta är frågan om. Instruktionerna är uppdelade i tre avsnitt, ett för inloggning och start av MATLAB i Linux, ett där ett enkelt exempel gås igenom i detalj och ett som innehåller själva uppgifterna som skall lösas. För er som aldrig har arbetat med MATLAB tidigare rekommeras att gå igenom det andra avsnittet noga innan ni ger er på uppgifterna. Vana MATLAB-användare kan å andra sidan gå till tredje avsnittet direkt. 1 Inloggning och start av MATLAB Mata först in kontonamn och lösenord och tryck på Go. Då kommer ni in i Linuxsystemet och kan arbeta i en Desktopmiljö liknande Windows. Om det är första gången ni loggar in så dyker det allra först upp en ruta för systemkonfiguration. Om ni inte vill konfigurera systemet så tryck bara på Avbryt. MATLAB startar ni genom att först klicka på den lilla röda hatten längst ner till vänster i fönstret, sedan på Math på menyn som dyker upp och slutligen på Matlab. Då kommer totalt fem olika fönster att öppnas: Launch Pad, Workspace, Command History, Current Directory och Command Window. För den här laborationen behövs bara Command Window där alla kommandon skrivs in. För att sedan avsluta körningen kan ni antingen skriva exit i Command Window eller gå in på menyn File längst upp till vänster och sedan Exit MATLAB. 1

VARNING: På grund av en bugg i MATLAB 6 för Linux kan man inte skriva symbolen ˆ för upphöjt till, då låser sig programmet och man måste starta om allting. Uttrycket a b kan i stället beräknas som power(a,b). 2 Introduktion Som en vägledning till MATLAB och hur man kan genomföra icke-parametriska test och beräkna konfidensintervall för ett stickprov skall vi betrakta följande enkla exempel. För ovana MATLAB-användare rekommeras häftet Användarhandledning för MATLAB, version 6 av Lennart Edsberg, särskilt avsnitt 1-5. Vid många kirurgiska ingrepp ger man patienter ett så kallat blodförtunningsmedel, som bland annat förlänger koaguleringstiden för blodet. Man gav fem försökspersoner ett nytt blodförtunningsmedel och uppmätte koaguleringstiderna i minuter till 8.7 9.5 9.6 9.9 10.4 Normal koaguleringstid hos människor är 8.8 minuter. Testa om medlet ökar koaguleringstiden signifikant och beräkna även ett tvåsidigt 95 %-igt konfidensintervall. Börja med att mata in data i MATLAB genom att skriva följande efter promptern >> i Command Window >> x=[8.7 9.5 9.6 9.9 10.4] x = 8.7000 9.5000 9.6000 9.9000 10.4000 2.1 t-test Låt oss allra först genomföra ett parametriskt t-test som referens. Eftersom vi vill påvisa en ökad koaguleringstid är det lämpligt med hypoteserna H 0 : µ = 8.8 H 1 : µ > 8.8 Under antagandet att data är oberoe och normalfördelade med väntevärde µ och varians σ 2 gäller att x 8.8 T = s/ 5 är t-fördelad med 4 frihetsgrader. Vi förkastar H 0 om T antar ett alltför högt värde, vilket innebär att p-värdet kan beräknas enligt 2

>> 1-tcdf((mean(x)-8.8)/(std(x)/sqrt(5)),4) 0.0210 Funktionerna mean(x) och std(x) beräknar medelvärdet och standardavvikelsen av vektorn x, funktionen sqrt(y) beräknar y och funktionen tcdf(t,n) beräknar fördelningsfunktionen för t-fördelningen i punkten t för n frihetsgrader. Gränserna i ett tvåsidigt konfidensintervall fås genom >> mean(x)-tinv(.975,4)*std(x)/sqrt(5) 8.8476 >> mean(x)+tinv(.975,4)*std(x)/sqrt(5) 10.3924 Funktionen tinv(a,n) ger a-kvantilen för t-fördelningen med n frihetsgrader. MATLAB-tips: Om man trycker på tangenten med pil uppåt kommer senast skrivna kommando upp och sedan kan man ändra detta om man har skrivit fel eller, som ovan, om man vill exekvera två snarlika uttryck. Upprepade tryckningar på piltangenten ger ännu tidigare kommandon. 2.2 Teckentest För att göra ett teckentest måste vi sätta upp hypoteserna där θ är medianen. Vi baserar testet på statistikan H 0 : θ = 8.8 H 1 : θ > 8.8 T = Antal observationer < 8.8 och förkastar H 0 om T antar ett alltför litet värde. Under H 0 är T som bekant binomialfördelad med parametrar 5 och 0.5, vilket gör att p-värdet kan beräknas enligt >> sum(binopdf(0:1,5,.5)) 0.1875 3

Funktionen binopdf(y,n,p) ger sannolikhetsfunktionen för binomialfördelningen med parametrar n och p i de punkter som specificeras av vektorn y. I vårt fall är vi intresserade av sannolikheten att få högst en observation mindre än 8.8, det vill säga antingen noll eller en observation, och detta anges som 0:1. Allmänt kan en vektor beståe av alla heltalsvärden från n till och med m genereras i MATLAB genom kommandot n:m. Funktionen sum(y) summerar elementen i vektorn y. För att beräkna ett tvåsidigt konfidensintervall måste vi först hitta ett lämpligt acceptansområde för ett tvåsidigt test. En lämplig kandidat är A(θ) = {T : 1 T 4} det vill säga att vi förkastar ast för T = 0 eller T = 5. Sannolikheten för A(θ), den så kallade täckningsgraden, under H 0 ges av >> sum(binopdf(1:4,5,.5)) 0.9375 Vi når inte riktigt upp till 95 % med ast 5 observationer, men vi kan knappast utöka acceptansområdet eftersom det skulle leda till oändliga gränser i konfidensintervallet. Det resulterande konfidensintervallet kan nu skrivas 2.3 Wilcoxons teckenrangtest 8.7 θ 10.4 (93.8%) Det här testet baserar sig på rangerna för absolutbeloppen av skillnaderna d i = x i θ 0. I MATLAB kan rangerna beräknas enligt >> r=tiedrank(abs(x-8.8)) r = 1 2 3 4 5 Funktionen tiedrank(y) beräknar rangerna för vektorn y även om det förekommer ties och abs(y) ger absolutbelopp för elementen i y. I vårt fall är det mest praktiskt att basera testet på S = Summan av alla negativa ranger och eftersom ast första observationen ger en negativ differens får vi att S = 1. Under H 0 och det extra antagandet att observationerna kommer från en symmetrisk fördelning ger att vi får totalt 2 5 = 32 lika sannolika teckenkombinationer. För att beräkna S för alla dessa kombinationer behöver vi en kombinationsmatris, som kan beräknas enligt >> komb=[0;1]; >> for i=1:4 komb=[zeros(power(2,i),1) komb;ones(power(2,i),1) komb]; 4

Detta genererar en matris med 32 rader och fem kolumner beståe av nollor och ettor motsvarande samtliga teckenkombinationer. Effekten av ett semikolon sist på kommandoraden är att resultatet inte skrivs ut på skärmen, något som kan vara praktiskt när man upprepar en beräkning många gånger som i ovanståe for-sats. Vi går inte in i detalj på stegen i den här beräkningen. För att se hur matrisen ser ut, skriv helt enkelt >> komb Nu kan vi generera en vektor beståe av samtliga värden på S enligt följande >> for i=1:32 S(i)=sum(r.*komb(i,:)); Kommandona for och anger att alla beräkningar däremellan skall utföras då i går från 1 till 32. Kommandot komb(i,:) anger att rad nummer i i kombinationsmatrisen skall användas och.* anger komponentvis multiplikation av elementen i vektorerna. Skriv >> S för att se vilka värden som finns i vektorn S. Man kan även åskådliggöra resultatet i ett histogram enligt >> hist(s,0:15) där 0:15 anger att staplar skall ritas för alla heltal från 0 och 15, som är alla möjliga värden för S. Nu kan vi beräkna p-värdet för testet enligt >> sum(s<=1)/32 0.0625 Kommandot sum(s<=1) ger antal kombinationer där S 1 och normerar vi med antal kombinationer får vi p-värdet. När det gäller konfidensintervall behöver vi först beräkna Walshmedelvärdena. Detta kan göras med hjälp av två for-sekvenser enligt >> walsh=[]; >> for i=1:5 for j=i:5 walsh=[walsh (x(i)+x(j))/2]; >> walsh=sort(walsh); 5

Kommandot walsh=[] skapar en tom vektor med namnet walsh och sedan läggs alla Walshmedelvärden i den vektorn då index i går från 1 till 5 och index j från i till 5. Slutligen sorteras alla element i storleksordning med kommandot sort. Även här måste vi först ange ett lämpligt acceptansområde för ett tvåsidigt test av medianen för att erhålla ett tvåsidigt konfidensintervall. Enda rimliga kandidaten med en täckningsgrad så nära 95 % som möjligt och som inte ger oändliga gränser är A(θ) = {S : 1 S 14} vars exakta täckningsgrad kan beräknas enligt >> sum(s>=1 & S<=14)/32 0.9375 det vill säga samma som för teckentestet. Med andra ord ges gränserna i intervallet av det minsta respektive det största Walshmedelvärdet, vilket vi får som >> walsh(1) 8.7000 >> walsh(15) 10.4000 2.4 Bootstrap Slutligen skall vi se hur vi kan uppskatta p-värde och konfidensintervall genom att använda bootstrap-simulering. Notera att denna metod bygger på slumptalssimulering, vilket innebär att olika körningar kan ge olika resultat. Bästa sättet att reducera denna osäkerhet är att generera så många bootstrap-stickprov som möjligt. I MATLAB kan vi skapa en matris av bootstrap-stickprov enligt följande >> slump=ceil(rand(1000,5)*5); >> for i=1:1000 bootstrap(i,:)=x(slump(i,:)); Kommandot rand(n,m) genererar en matris med n rader och m kolumner beståe av slumptal mellan 0 och 1. Genom att multiplicera hela matrisen med m och avrunda uppåt genom kommandot ceil får vi en matris slump med heltal från 1 till m. Rad i i denna matris anger nu vilka observationer i det ursprungliga stickprovet som skall ingå i bootstrapstickprov i och dessa utgör nu raderna i matrisen bootstrap. 6

Nu kan vi välja att basera resultaten antingen på medianerna, vilket gör en jämförelse med tidigare metoder möjlig, eller medelvärdena, vilket ger bättre precision. Dessa kan enkelt beräknas enligt >> mdn=sort(median(bootstrap )); >> snt=sort(mean(bootstrap )); Apostrof betyder transponering i MATLAB och är nödvändig för att få radvisa medianer respektive medelvärden. Fördelningarna kan återigen åskådliggöras med hjälp av hist, lämpligtvis enligt >> hist(mdn,8.7:.1:10.4) >> hist(snt,8.7:.1:10.4) Argumentet 8.7:.1:10.4 anger att histogrammet skall ha staplar från 8.7 till 10.4 med mellanrum 0.1. Nu kan vi beräkna p-värden enligt >> sum(mdn<=8.8)/1000 0.0450 >> sum(snt<=8.8)/1000 0 Återigen bör noteras att dessa resultat är i högsta grad beroe av just de slumptal som genererades då jag körde dessa kommandon. Ni får troligtvis något avvikande värden. Upprepa gärna beräkningarna för att få en uppfattning om osäkerheten i skattningarna och/eller utöka antal boostrap-stickprov, förslagsvis till 10000. Konfidensintervall är också enkla att beräkna genom att inkludera de 95 % av alla värden som så att säga ligger i mitten. För 1000 värden utgör alltså det 25:e minsta och det 25:e största (975:e minsta) värdet gränserna i intervallen. För medianen får vi >> mdn(25) 8.7000 >> mdn(975) 10.4000 7

och för medelvärdet får vi >> snt(25) 9.1800 >> snt(975) 10.0600 3 Uppgift Vid en undersökning tog man prov från slemhinnan i näsan hos nio stycken allergiker och uppmätte halten histamin. Man ville dels få en uppfattning om normal histaminhalt hos allergiker och dels testa om allergiker har en signifikant förhöjd histaminhalt jämfört med icke-allergiker. De uppmätta värdena blev (i µg/g torrvikt) 67.6 39.6 1651.0 100.0 65.9 1112.0 31.0 102.4 64.7 Normal histaminhalt hos icke-allergiker ligger på 36 µg/g. Testa om det föreligger signifikant förhöjd histaminhalt med hjälp av 1) t-test, 2) teckentest, 3) teckenrangtest och 4) bootstrap och beräkna även tvåsidiga symmetriska konfidensintervall med konfidensgrad så nära 95 % som möjligt. Vissa operationer kan ta något längre tid än i det föregåe exemplet eftersom MATLAB måste gå igenom betydligt fler kombinationer. I den skriftliga redovisningen skall ingå p-värden för alla test, övre och undre gräns i konfidensintervallen och histogram över fördelningen för teststatistikan under H 0 för teckenrangtest och bootstrap. Dessutom skall en jämförelse göras mellan de fyra metoderna och en diskussion angåe vilken/vilka som kan anses mest lämplig/lämpliga för det aktuella datamaterialet ingå. 8