DATORÖVNING MED R: INTRODUKTION

Relevanta dokument

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

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

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

Enkel linjär regression: skattning, diagnostik, prediktion. Multipel regression: modellval, indikatorvariabler

Datorövning 1 Fördelningar

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

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

Datorövning 1: Fördelningar

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

Laboration 1: Introduktion till R och Deskriptiv statistik

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

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

DATORÖVNING 2: SIMULERING

Laboration: Grunderna i Matlab

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

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

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

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

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

Laboration med Minitab

Datorövning 1 Introduktion till Matlab Fördelningar

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

1 Sannolikhet enligt frekvenstolkningen Kast med tärning

bli bekant med summor av stokastiska variabler.

Liten handledning i Excel och StarOffice Calc i anslutning till Datorövning 1

Datorövning 1: Fördelningar

Introduktion till statistik för statsvetare

Finansiell Statistik (GN, 7,5 hp,, HT 2008) Föreläsning 3

Typvärde. Mest frekventa värdet Används framförallt vid nominalskala Ex: typvärdet. Kemi 250. Ekon 570. Psyk 120. Mate 195.

Laboration 1: Beskrivande statistik

Laboration 1: Grundläggande sannolikhetsteori, simulering och dataanalys

Laboration 3: Parameterskattning och Fördelningsanpassning

TSBB14 Laboration: Intro till Matlab 1D

Föreläsning 3. Sannolikhetsfördelningar

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

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

1 Syfte. 2 Moment hos och faltning av fördelningar MATEMATISK STATISTIK, AK FÖR L, FMS 033, HT Angående grafisk presentation

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

Föreläsning 7. Statistikens grunder.

Introduktion till MATLAB

Obligatorisk uppgift, del 1

Demonstration av laboration 2, SF1901

1 Syfte. 2 Moment hos och faltning av fördelningar MATEMATISK STATISTIK, AK FÖR L, FMS 033, HT Angående grafisk presentation

Institutionen för teknikvetenskap och matematik, S0001M LABORATION 2

Beskrivande statistik

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

Gör uppgift 6.10 i arbetsmaterialet (ingår på övningen 16 maj). För 10 torskar har vi värden på variablerna Längd (cm) och Ålder (år).

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Laboration: Grunderna i MATLAB

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 3: MULTIPEL REGRESSION.

2 Dataanalys och beskrivande statistik

Laboration 4 R-versionen

STOCKHOLMS UNIVERSITET HT 2006 Statistiska institutionen Jan Hagberg, Bo Rydén, Christian Tallberg, Jan Wretman

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

Linjär algebra med tillämpningar, lab 1

Instruktion för laboration 1

DATORÖVNING 2: STATISTISK INFERENS.

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

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

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

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

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

Lunds univrsitet Matematikcentrum Matematisk statistik

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

Sannolikhet och statistik med Matlab. Måns Eriksson

Introduktion och laboration : Minitab

Medelvärde, median och standardavvikelse

Matematikcentrum 1(11) Matematisk Statistik Lunds Universitet. R - a guided tour

Introduktion till Matlab

Tentamen i matematisk statistik (9MA241/9MA341, STN2) kl 08-12

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Föreläsning 1. NDAB02 Statistik; teori och tillämpning i biologi

MVE051/MSG Föreläsning 7

TMS136. Föreläsning 4

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

Föreläsning G60 Statistiska metoder

Matematisk statistik allmän kurs, MASA01:B, HT-14 Laborationer

Idag. EDAA35, föreläsning 4. Analys. Kursmeddelanden. Vanliga steg i analysfasen av ett experiment. Exempel: exekveringstid

SF1901 Sannolikhetsteori och statistik: HT 2014 Lab 1 för CSAMHS, CINEKI, och CL

Arbeta med normalfördelningar

Laboration 1: Grundläggande sannolikhetsteori, simulering och dataanalys

Att göra före det schemalagda labpasset.

1. Lära sig beräkna kon densintervall och täckningsgrad 2. Lära sig rita en exponentialfördelning 3. Lära sig illustrera centrala gränsvärdessatsen

Provmoment: Tentamen 6,5 hp Ladokkod: A144TG Tentamen ges för: TGMAI17h, Maskiningenjör - Produktutveckling. Tentamensdatum: 28 maj 2018 Tid: 9-13

Laboration 3: Enkla punktskattningar, styrkefunktion och bootstrap

SF1901: SANNOLIKHETSTEORI OCH KONTINUERLIGA STOKASTISKA VARIABLER STATISTIK. Tatjana Pavlenko. 7 september 2016

Del 2 tillsammans med förberedelsefrågor - tid för inlämning och återlämning meddelas senare.

Idag. EDAA35, föreläsning 4. Analys. Exempel: exekveringstid. Vanliga steg i analysfasen av ett experiment

Histogram, pivottabeller och tabell med beskrivande statistik i Excel

Valresultat Riksdagen 2018

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

Laboration 1: Icke-parametriska enstickprovstest

Föreläsning 3, Matematisk statistik Π + E

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

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

Laboration 2 Inferens S0005M VT18

4 Diskret stokastisk variabel

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

F9 Konfidensintervall

Transkript:

UPPSALA UNIVERSITET Matematiska institutionen Jesper Rydén Matematisk statistik 1MS026 vt 2014 DATORÖVNING MED R: INTRODUKTION 1 Inledning Den allmänna utvecklingen inom datorteknikens område har lett till uppkomsten av många statistiska programpaket. Dessa påminner ofta om varandra till stora delar. Programmen kan användas för beskrivande statistik, exempelvis genom frekvenstabeller eller olika grafiska metoder. Beträffande inferentiell statistik återfinns ofta de flesta av de mer eller mindre standardbetonade testen, regressionmodeller osv. Programpaketet R innehåller färdiga kommandon för flera av de statistiska standardmetoderna. Det har också fördelen att man kan programmera och skriva sina egna funktioner. Sist men inte minst är R fri programvara, tillgänglig för de vanligaste operativsystemen (Linux, PC Windows, Mac). Statistiker runtom i världen bidrar med rutiner inom sina specialområden och allt är tillgängligt via internet: http://www.r-project.org Det primära syftet med den här laborationen är att ge en introduktion till hur arbete med ett modernt statistikprogram går till, och vi ansluter till moment som diskuterats under kursens första tredjedel. Välkommen att sätta tänderna i följande avsnitt: 2. Komma igång med R 3. Analys av datamaterial: bilar 4. Konfidensintervall och test 2 Komma igång med R Enklare kommandon eller kommandosekvenser ges direkt vid kommandoprompten (i denna stencil används symbolen hake, >) men som nämnts ovan kan även egna program skrivas (s.k. scripts). R avslutas genom att vid kommandoprompten skriva följande kommando: q() 2.1 Allmänna kommandon, vektorer och enkel plottning Vi ska först använda R som en räknedosa. Testa t.ex. följande kommandon och kontrollera med huvudräkning om R räknar rätt:

> 2+7 > 2/(3+5) > sqrt(9)+5^2 > sin(pi/2)-log(exp(1)) Hjälp om specifika kommandon kan fås genom att skriva ett frågetecken före själva kommandot, prova t.ex. följande: >?log Alternativt kan help användas; i detta fall, help(log). Använd gärna hjälpkommandot fortsättningsvis om du är osäker på något 1. För övrigt skrivs kommentarer i R som följande exempel visar (med symbolen brädgård ): > 2+3 # En enkel summering Vektorer och matriser Hantering av vektorer är viktigt i många beräkningsprogram. I R används följande kommandon för att skapa en vektor med namnet hello och tilldela den värdena 7, 2, 5: > hello <- c(7,-2,5) (Symbolen <- utläses tilldelas.) Man refererar till exempelvis det andra elementet genom > hello[2] och till element 2 och 3 genom > hello[2:3] Vektorer kan manipuleras, t.ex. genom att addera en konstant till samtliga element; prova > myconst <- 100; hello + myconst (Med semikolon kan en följd av kommandon skrivas på en och samma rad.) En vektor x bestående av talen 1, 2,..., 10 kan enkelt skapas genom att skriva > x <- c(1:10) Vektorer med särskilt valda, regelbundna mellanrum mellan elementen kan skapas med kommandot seq: > hej <- seq(0,10,2) Kommandona rbind och cbind kan användas för att foga samman rad- eller kolumnvektorer och därmed skapa matriser. Prova följande: > x <- c(1,2,3); y <- c(4,5,6); > A = cbind(x,y); B = rbind(x,y); C = t(b) (Sista kommandot ger matristransponat.) 1 I Unix-versionen av R måste man trycka på tangenten Q (som i quit) för att lämna hjälpbeskrivningen. För Windows stänger eller minimerar man fönster.

Enkel grafik Funktionsgrafer kan ritas enkelt genom att konstruera lämpliga vektorer. Exempelvis: > x <- seq(0,10,0.2); y <- sqrt(x); plot(x,y); grid() Det sista kommandot lägger på ett rutnät. Om man vill rita flera plottar i olika fönster kan kommandot x11() användas för att öppna ett nytt grafikfönster. I annat fall skrivs den senast ritade figuren över av den nya vid uppritning av en ny figur. UPPGIFT. Rita kurvan y = x 2 i intervallet 2 x 2. (Tänk på vad du vill åstadkomma med figuren: Funktionsvärden i några diskreta punkter? En snygg, kontinuerlig kurva? Fundera över lämpliga val av inparametrar till seq samt studera hjälptexten till plot. Inparametern type kan vara intressant.) 2.2 Skapa och läsa in datafiler Skapa data Det går fint att med kommandot data.frame organisera data av olika slag och sedan extrahera delmängder därav, som vi ska se. Låt säga att vi sammanfattar data för några personer som följer: > langd <- c(180,175,190); vikt <- c(75,82,88); > namn <- c("adam","bertil","cesar") > friends <- data.frame(namn,langd,vikt) Givet en datastruktur kan data extraheras med hjälp av dollartecken: > mina.namn <- friends$namn Inläsning av data Mycket vanligt är att data finns lagrat externt i en fil. Vi ska här studera två fall som kan uppträda; först fallet med rent numeriska data. I filen coins.dat finns data för det exempel som gavs på föreläsning 1: totalt 27 silvermynt med olika silverhalt från 4 epoker. Ladda ned filerna coins.dat och coins.txt till valfri arbetskatalog, och upprätta sedan en sökväg till den katalogen. Med kommandot > mynt1 <- read.table("coins.dat") skapar R en struktur där kolonnerna har rubrikerna V1, V2 (och här står för silverhalt resp. epok). För att se egenskaperna hos 10:e observationen skriver man > mynt1[10,] medan om man mer speciellt vill se silverhalten för 10:e observationen > mynt1$v1[10]

Det gäller här att känna till vad V1 och V2 står för. För att underlätta kan man vid inläsningen skriva > mynt2 <- read.table("coins.dat",col.names=c("ag","epok")) varvid strängarna Ag och Epok ersätter V1 och V2. Låt oss nu studera samma datamaterial men lagrat på aningen annorlunda vis: coins.txt. Här finns överst i kolonnerna rubriker lagrade i klartext (följer alltså med data). I detta fall skriver man > mynt2 <- read.table("coins.txt", header=true) och då flyttas etiketterna med in i R. Prova att göra referenser till objekt som ovan. Excelfiler och R För inläsning av Excelfiler sparas lämpligen Excelfilerna i s.k. csv-format, varefter kommandot read.csv används. Vi återkommer till inläsning av data i senare laborationer. 3 Analys av datamaterial: bilar Flera datamaterial följer med R initialt. Vi ska här studera ett datamaterial från början av 1970-talet där diverse uppgifter om personbilar presenteras. Ladda in datamaterialet genom att skriva > data(mtcars) Läs information om data genom >?mtcars UPPGIFT. För att bekanta dig med datamaterialet, sök svar på följande frågor: 1. Hur många bilmodeller finns med? (Använd informationen kopplad till data, eller mer datatekniskt kommandot dim.) 2. Vilka årsmodeller är aktuella? 3. Vad är innebörden av storheten mpg? För att få en utskrift på skärmen av hela datamaterialet, skriv helt enkelt > mtcars

3.1 Deskriptiv statistik Data kan summeras i några enkla mått som medelvärde, standardavvikelse, största och minsta värde osv. En utskrift på skärmen över några sådana mått fås genom kommandot > summary(mtcars) Diverse mått kan även studeras för variabler en i taget, t.ex. > mean(mtcars$hp); median(mtcars$hp); quantile(mtcars$wt); max(mtcars$mpg) Tips: Kommandot attach. Genom att först skriva attach(mtcars) förkortas referenserna till variabler inom mtcars; ovanstående kommandorad blir då > mean(hp); median(hp); quantile(wt); max(mpg) 3.2 Visualisering av data Histogram Med hjälp av ett histogram kan spridningen hos kontinuerliga data studeras. Normalt väljer datorprogrammen automatiskt antal klasser, klassbredd osv. Med hjälp av kommandot hist i R kan histogram uppritas. Kommandosekvensen nedan ritar upp histogram i två fönster; till vänster åskådliggörs data för variabeln mpg, till höger för variabeln wt: > par(mfrow=c(1,2)); hist(mpg); hist(wt) Med hjälp av inparametern freq i anropet av hist kan alternativt ett normerat histogram ritas, med relativ frekvens på ordinatan. Läs mer i hjälptexten och tag reda på vad hist(mpg,freq=false) innebär. Kontrollera själv direkt med R. Lådagram Även lådagram (engelska: boxplots) ger en fin överblick över spridning hos datamaterial. Dessutom kan man visuellt läsa av median och kvartiler samt eventuella avvikande värden (s.k. outliers). Kommandot i R heter boxplot och vi tillämpar detta återigen på två variabler från datamaterialet om bilar: > par(mfrow=c(1,2)); boxplot(mpg); boxplot(wt) Kontrollera med kommandot median direkt på data att medianen i lådagrammet stämmer. Spridningsdiagram Spridningsdiagram (engelska: scatterplots) är av intresse för att studera eventuella funktionssamband och beroende variabler emellan. En variabel ritas på ordinatan, den andra på abskissan. Prova t.ex. > plot(wt,mpg)

Övertyga dig om att lutningen på punktsvärmen verkar rimlig. Korrelationskoefficienten för data fås med hjälp av kommandot cor. Vad blir den i detta fall? UPPGIFT. Rita histogram för variablerna hp och qsec. Rita lådagram för variablerna hp och qsec. Rita spridningsdiagram för variablerna hp och qsec. Kommentar? Några ytterligare diagram Två kommandon som kan vara intressanta är barplot som ger ett stolpdiagram och pie som ger ett tårtdiagram. Den empiriska fördelningsfunktionen kan ritas upp med hjälp av kommandot plot.ecdf. Prova att t.ex. rita upp empiriska fördelningen för förbrukning (variabeln mpg). Prova även att rita upp för 200 simulerade observationer från en N(0,1)-fördelning: > plot.ecdf(rnorm(200)) Passa på att rita upp data i en specialdesignad QQ-plott för normalfördelningen (rutinen qqnorm). En rät linje i diagrammet fås med hjälp av rutinen qqline. 4 Konfidensintervall och test 4.1 Ett stickprov Ur en sjö har man tagit 8 vattenprover och mätt ph-värdena i dessa. Mata in data för hand och lagra i en vektor kallad x: x <- c(7.3,7.5,6.8,7.1,6.9,7.2,7.0,6.5) Gör ett antagande om normalfördelning. Med datorns hjälp är det enkelt att göra en snabb kontroll av rimligheten om normal fördelning, rita helt enkelt ett histogram och se efter om det åtminstone indikerar en symmetrisk spridning (kan vara svårt att bedöma med så pass få observationer): hist(x) Vi ska nu med hjälp av några få kommandon i R skapa ett 95% konfidensintervall för det genomsnittliga ph-värdet. Vi antar okänd standardavvikelse. Från teorin vet vi att intervallet ges av [ x ± tα/2 (n 1) s ] n Det finns två sätt att numeriskt angripa detta: 1. Skriv in intervallet ovan manuellt

2. Använd en färdig rutin (vid namn t.test) För den första metoden, skriv mv <- mean(x) stad <- sd(x) n <- 8 tfaktor <- qt(0.975,n-1) mv - tfaktor*stad/sqrt(n) mv + tfaktor*stad/sqrt(n) Som du säkert insett ger funktionen qt med lämpliga inargument kvantiler till t-fördelningen. På liknande sätt kan kvantiler för andra vanliga fördelningar erhållas, för normalfördelningen används funktionen qnorm. Skriv t.ex. in följande och jämför de värden du får med den vanliga tabellen: qnorm(0.975) qnorm(0.95) För den andra metoden anropas helt enkelt rutinen t.test och man får då ut, bokstavligen i ett enda slag, förutom själva konfidensintervallet en mängd ytterligare information. Dessutom levereras p-värde för det relaterade hypotesprövningsproblemet. Kommando: t.test(x) Är man en van användare av R och kan sin statistik används med fördel metod 2. Är man nybörjare och vill veta vad man gör kan metod 1 vara säkrare. Du noterade väl att de gav samma svar? Konfidensgraden 0.95 är förinställd vid anropet av t.test, men kan ändras. Se hjälptexten för detaljer, speciellt parametern conf.level. 4.2 Två stickprov Rutinen t.test kan användas även för att beräkna konfidensintervall för skillnader i väntevärden mellan två stickprov. Här finns, som vi sett i teorin, två angreppssätt: två oberoende stickprov respektive stickprov i par. Som illustration använder vi R i exempel 7.30 i kursboken Stokastik (kalkning av försurade sjöar). Här är det fråga om modellen stickprov i par, vilket måste anges för R. xf <- c(5.2,5.8,4.3,5.2,4.6,4.7,5.8,5.5); xe <- c(5.6,6.3,4.9,5.8,5.5,5.7,6.1,5.4); t.test(xe,xf,paired=true) Jämför med räkningarna i boken!

5 Översikt, fördelningar Beräkning av sannolikheter kan ske för hand, med hjälp av tabell eller direkt med användning av statistisk programvara. De vanligaste fördelningarna finns inbyggda i R, och önskade sannolikheter kan levereras på direkten, givetvis förutsatt att man känner till fördelning och därtill hörande parametervärden. Ofta vill man simulera från en given fördelning. Metodiken och teorin för detta ligger utanför kursens ram, men kort kan sägas att man ofta utgår från likformigt fördelade slumptal på intervallet [0, 1]. Simuleringsfunktioner finns inbyggda i R. I tabellen nedan menas med p(x) = P(X = x) sannolikhetsfunktionen, f(x) täthetsfunktionen, F (x) = P(X x) fördelningsfunktionen. Lägg märke till beteckningarna för fördelningarnas parametrar. Antalet slumptal som simuleras i varje anrop nedan anges med N. p(x) eller f(x) F (x) Simulering Binomial, Bin(n, p) dbinom(x,n,p) pbinom(x,n,p) rbinom(n,n,p) Poisson, Po(m) dpois(x,m) ppois(x,m) rpois(n,m) Normalfördelning, N(m, s 2 ) dnorm(x,m,s) pnorm(x,m,s) rnorm(n,m,s) Likformig, Re(a, b) dunif(x,a,b) punif(x,a,b) runif(n,a,b) Exponential, Exp(a) dexp(x,1/a) punif(x,1/a) runif(n,1/a)