Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs HT007 Laboration Simulering Grupp A: 007-11-1, 8.15-.00 Grupp B: 007-11-1, 13.15-15.00
Introduktion Syftet med laborationen är dels att vi skall bekanta oss med lite av de olika funktioner som finns i SPSS vad det gäller simulering och dels att öka förståelsen för vissa grundläggande områden inom sannolikhetsteorin t.ex. slumpmässiga urval, slumpvariabel, sannolikhetsfördelning och summor av slumpvariabler (Centrala gränsvärdessatsen). Simulering i SPSS Simulering i SPSS görs genom att man använder speciella färdiga funktioner under menyalternativet Transform>Compute. Om man t ex vill ha ett antal slumptal från en normalfördelning med medelvärdet 0 och standardavvikelsen 15 ser det ut så här: Här bildas alltså en ny variabel som får namnet NORMAL och den innehåller lika många slumptal från normalfördelningen som det finns observationer (rader) i datamaterialet. Exempel på fördelningar som finns i SPSS är (RV=Random Variable) : Fördelning Funktion Exempel Binomial RV.BINOM(n,p) RV.BINOM(,0.5) Poisson RV.POISSON(mean) RV.BINOM() Normal RV.NORMAL(mean,stddev) RV.NORMAL(0,15) Likformig (Uniform) RV.UNIFORM(min,max) RV.UNIFORM(,0) Exponential RV.EXP(scale) RV.EXP(1) mean = medelvärdet i fördelningen stddev = standardavvikelsen i fördelningen scale = 1 / medelvärdet (i exponentialfördelningen) Börja nu med att lägga in värdet (eller vilket värde som helst) på den tionde raden i den första kolumnen i ditt datamaterial. Detta gör man för att SPSS alltid skapar ett slumptal för varje rad i datamaterialet. Vi kommer alltså nu automatiskt att få slumptal.
3 1. Bilda en ny kolumn med hjälp av Transform>Compute. Den skall heta NORMAL och innehålla slumptal från en normalfördelning med medelvärdet och standardavvikelsen. Bilda sedan en andra kolumn som heter UNI och innehåller slumptal från en likformig fördelning mellan och 0. Ledning: RV.NORMAL(,) och RV.UNIFORM(,0) Observera att slumptalen kan ses som stickprov om observationer från två kända populationer. Kontrollera nu med hjälp av Graph>Histogram hur väl stickproven överensstämmer med populationerna. Teoretiskt ser populationerna ut så här: 5 15 15 0 Normal (,) Uniform (,0) Hur väl stämmer stickproven överens med populationerna? Upprepa nu för stickprovsstorlek n=50 observationer. Bör överensstämmelsen bli bättre eller sämre?. På kursens hemsida http://www.maths.lth.se/matstat/kurser/masb11/, under rubriken Kursmaterial Datafiler, hittar du hjälpfilen OBS.SAV. Hämta hem denna fil till din dator. Den innehåller 00 rader och en variabel som heter OBS. Skapa nu tre stickprov om n=00 observationer från följande fördelningar: Normal(,) Uniform(,0) Exponential med medelvärdet 1 (RV.EXP(1)) Kontrollera med histogram hur fördelningarna ser ut. Kryssa för Display normal curve. Om man vill kontrollera hur pass nära ett stickprov är en viss teoretisk fördelning kan man använda olika grafiska metoder. En sådan metod är en s k Q-Q plot (Q=Quantile). I en Q-Q plot jämför man de verkliga värdena i stickprovet med det man kunde förvänta sig från en viss teoretisk fördelning. Om de observerade värdena överensstämmer med de förväntade så kommer punkterna i en Q-Q plot att ligga längs en rät linje. Jämför nu de tre stickproven ovan med vad vi kunde förvänta oss från en normalfördelning. Menyalternativet du skall ge är Graphs>Q-Q plot och det skall då se ut så här:
4 Tryck på OK, I resultatet finns två figurer för varje variabel. Den intressanta är den som kallas Normal Q-Q plot. Dina figurer bör se ut ungefär så här: 18 Normal Q-Q Plot of NORMAL 30 Normal Q-Q Plot of UNI 16 14 1 0 Expected Normal Value 8 6 4 Expected Normal Value 0 4 6 8 1 14 16 18 0 0 30 Observed Value Observed Value,5 Normal Q-Q Plot of EXP,0 1,5 1,0 Expected Normal Value,5 0,0 -,5-1,0-1,5 - -1 0 1 3 4 5 Observed Value Vi ser alltså att olika avvikelser från normalfördelning resulterar i olika kurvutseende.
3. I de tidigare uppgifterna har vi simulerat vad som händer om vi tar stickprov av olika storlekar från olika kända fördelningar. Vi skall nu gå vidare och undersöka vad som händer om vi bildar olika storheter i stickprovet. Vilka egenskaper får då dessa storheter? Vi börjar med att undersöka vilken fördelningen summan av två observationer från en normalfördelning (,) har. Börja med att gå in under Transform>Compute och definiera en ny variabel NORM1 som RV.NORMAL(,). Tryck sedan på knappen Paste innan du ger OK. Då öppnas följande s k syntaxfönster. Detta är ett exempel på den programkod som SPSS alltid genererar när vi utför en operation. Om man vill utföra samma operation många gånger kan det vara praktiskt att utnyttja SPSS programkod (syntax). Kopiera de två raderna i syntaxfönstret så att vi upprepar raderna ännu en gång. Byt namnet norm1 till norm i den andra omgången så att det ser ut så här: När vi kör dessa kommandon kommer det att bildas två nya variabler som heter NORM1 och NORM och som innehåller 00 slumptal var. Programkoden körs genom att man ger menysekvensen Run>All. De två kolumnerna med slumptal finns nu i datamaterialet. Om man vill kan man också spara syntaxfönstret för dokumentation eller senare användning (File>Save As / File>Open>Syntax). Bilda nu summan av de två kolumnerna NORM1 och NORM. Undersök vilken fördelning summan har genom att göra ett histogram och en Q-Q plot. Vilken fördelning har summan? Svar: Vad bör medelvärdet bli? Svar: Standardavvikelsen? Svar: (Svar finns längst bak)
6 Centrala gränsvärdessatsen Centrala gränsvärdessatsen (CGS) är ett av de viktigaste resultaten i den statistiska teorin. Den säger att fördelningen för en summa (medelvärde) av oberoende slumpvariabler med samma fördelning går mot en normalfördelning om antalet termer är tillräckligt stort. I den första uppgiften skall du undersöka hur många termer (observationer) som behövs för att få en bra normalfördelningsapproximation. Vi skall i uppgiften jämföra observationer från en likformig fördelning mellan och 0 och en exponentialfördelning med medelvärdet 1. Simulera nu 00 slumptal från en likformig fördelning mellan och 0. Om du vill kan du använda den variabel du fick fram under punkten ovan. Kalla variabeln UNI1. Skapa ytterligare en variabel UNI med 00 slumptal från samma fördelning. Bilda summan av UNI1 och UNI och undersök hur fördelningen för summa ser ut genom att göra ett histogram och/eller en Q-Q plot. Skapa nu ytterligare en variabel UNI3 och bilda summan UNI1+UNI+UNI3. Hur ser fördelningen för summan ut? Fortsätt nu på samma sätt och lägg till variabler tills fördelningen för summan kan approximeras bra av en normalfördelning. Hur många termer behöver du använda? Kontrollera att medelvärdet och standardavvikelsen för summan stämmer överens med vad de teoretiskt bör vara. Ledning: Man kan visa att om X är uniform (a,b): => E X = a+b Var X = b a 1 Upprepa nu denna procedur för slumptal från en exponentialfördelning med medelvärdet 1. Bilda alltså variabler med 00 slumptal och summera ihop dessa. Verkar fördelningen gå snabbare eller långsammare mot en normalfördelning än det gjorde för den likformiga fördelningen. Vad beror detta på? Centrala gränsvärdessatsen i praktiken: På 35 patienter med Hodgkins sjukdom mätte man antalet T4 celler i blodet (antal/mm³). Samtidigt mätte man motsvarande antal hos 35 patienter som hade andra sjukdomar (Non-Hodgkins). Data ligger i filen HODGKIN.SAV som du hittar på kursens hemsida http://www.maths.lth.se/matstat/kurser/masb11/, under rubriken Kursmaterial Datafiler. Undersök om antalet celler i blodet är normalfördelat för de båda grupperna. Du hade tänkt att jämföra grupperna genom att bilda differensen mellan de två gruppmedelvärdena. Kan du använda dig av centrala gränsvärdessatsen i detta fall? Kan du säga något om vilken fördelning differensen i medelvärden har? Är det ett stort problem att variabeln inte är normalfördelad i de båda grupperna?
7 Sammanfattning SPSS Paste File>Open>Data File>Open>Syntax File>Save As Transform>Compute Analyze> Descriptive Statistics >Descriptives Graphs> Histogram Graphs>Q-Q plot Data>Split File Öppnar syntaxfönster Öppna SPSS-data Öppnar sparat syntaxfönster Sparar aktuellt fönster Bilda nya variabler Beskrivande mått Histogram Q-Q plot Dela upp materialet i grupper Svar på frågorna: Summan blir normalfördelad (alla linjära kombinationer av normalfördelningar blir i sig normalfördelade). Medelvärdet bör bli summan av de två medelvärdena (+=0) och för att få standardavvikelsen så lägger vi ihop de två varianserna och tar roten ur summan. = 8=,83 S=X 1 +X E S =E X 1 +E X Var S =Var X 1 +Var X σ S = Var S