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

Relevanta dokument
DATORLABORATION: JÄMFÖRELSE AV FLERA STICKPROV.

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

Laboration 1: Introduktion till R och Deskriptiv statistik

Laboration: Grunderna 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

Instruktion för laboration 1

Instruktion för laboration 1

Säsongrensning i tidsserier.

TSBB14 Laboration: Intro till Matlab 1D

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

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Introduktion till MATLAB

Introduktion till Matlab

MMA132: Laboration 2 Matriser i MATLAB

Laboration: Grunderna i Matlab

Laboration 2: Statistisk hypotesprövning

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

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

15 september, Föreläsning 5. Tillämpad linjär algebra

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

Linjär algebra med tillämpningar, lab 1

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

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

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

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

Laboration 3: Enkel linjär regression och korrelationsanalys

SF1672, Linjär Algebra med Matlab för F1 Lab0

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 1. Grafisk teknik (TNM059) Introduktion till Matlab. R. Lenz och S. Gooran (VT2007)

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

14 september, Föreläsning 5. Tillämpad linjär algebra

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

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

Laboration 1: Linjär algebra

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

Beräkningsverktyg HT07

Beräkningsvetenskap föreläsning 2

Introduktion till Matlab

Matriser och Inbyggda funktioner i Matlab

Matriser och linjära ekvationssystem

Matriser och linjära ekvationssystem

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

Datorövning 1 Fördelningar

Department of Physics Umeå University 27 augusti Matlab för Nybörjare. Charlie Pelland

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

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

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

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg ) behöver inte redovisas

Matriser och vektorer i Matlab

Introduktion till Matlab

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

DN1240, Numeriska metoder. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB

Matriser och Inbyggda funktioner i Matlab

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

TANA17 Matematiska beräkningar med Matlab

MAM283 Introduktion till Matlab

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

1 Grundläggande kalkyler med vektorer och matriser

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

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

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1.

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

linjära ekvationssystem.

MATLAB övningar, del1 Inledande Matematik

MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =

Introduktion till Matlab

MMA132: Laboration 1 Introduktion till MATLAB

Introduktion till Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

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

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

Datorlaboration :: 1 Problembeskrivning ::

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

Kort-kort om utdelade användarkonton och datormiljön på NADA

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

1 De fyra fundamentala underrummen till en matris

Laboration: Vektorer och matriser

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

TAIU07 Matematiska beräkningar med Matlab

En introduktion till MatLab

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

ATT RITA GRAFER MED KOMMANDOT "PLOT"

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Matematisk Modellering

Introduktion till Matlab

Matriser och vektorer i Matlab

Laboration 3. Funktioner, vektorer, integraler och felskattning

TAIU07 Matematiska beräkningar med Matlab

Algebraiska egenskaper hos R n i)u + v = v + U

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

MAPLE MIKAEL STENLUND

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Transkript:

MATEMATISKA INSTITUTIONEN Tillämpad statistisk analys, GN STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB 2011-03-24 DATORLABORATION 1: TIDSSERIER. I Tarfala har man under en lång följd av år registrerat bland annat medeltemperaturen för varje månad. Data för åren 1980-1992 finns som tabseparerad text under länken Instruktioner och data i rutan för laborationsdagen på kursens hemsida. För att kunna analysera data i R gör du på samma vis som när du laddade ner data till laborationerna i Statistisk analys. Nämligen: Skapa först ett underbibliotek för den här laborationen, och kalla det förslagsvis för tsa1: $ mkdir tsa1 $ cd tsa1 Sedan går du in på Instruktioner och data och sparar filen TarfalaTab.txt i underbiblioteket tsa1 genom att högerklicka på filen på hemsidan och välja Save Link Target As...". (Filen finns även kommaseparerad, vilket kan fungera bättre på vissa plattformar, men från elevdatasalen är det den tabseparerade versionen du bör välja.) Starta sedan R, och läs in filen genom kommandona > Tarfala <- read.table("tarfalatab.txt",header=true) > Artal <- Tarfala$Artal > Manad <- Tarfala$Manad > Temp <- Tarfala$Temp (Alternativet header=true betyder att den inlästa textfilen har rubriker.) Öppna ett hjälpfönster i HTML-format genom kommandot > help.start() där man kan klicka sig fram till olika hjälpsidor. Man kan, precis som i Matlab, när som helst få information om hur ett visst kommando eller funktion fungerar genom kommandot help enligt mönstret > help(mean) som ger information om hur man beräknar medelvärde i R. När man sedan är klar med laborationen eller vill göra ett uppehåll skriver man bara > q() Då kommer programmet att fråga om man vill spara sin workspace image, det vill säga alla variabler som man har definierat under körningen. Svarar man ja (genom att skriva y) så kommer allting att sparas och laddas in i R - 1 -

när man startar det nästa gång. Uppgifterna 1 5 ska besvaras skriftligen. Bifoga den R-kod du skrivit, samt några grafer som visar vad du har gjort och som illustrerar ditt resonemang. UPPGIFT 1. Plotta temperaturen mot tid (=observationsnummer här). Beskriv grafen i ord! UPPGIFT 2. Skapa en ny variabel innehållande årsvisa medelvärden (se R-tips nedan för hur man gör detta), och gör en graf över dem. Verkar temperaturen ha ökat eller minskat under perioden? Spara grafen! UPPGIFT 3. a) Ange ett viktsystem för centrerade glidande medelvärden. Viktsystemet ska ha egenskapen att jämna ut den årsvisa säsongvariationen. Hur många värden innehåller viktsystemet? b) Hur många värden kommer serien av centrerade glidande medelvärden att ha? c) Beräkna serien av centrerade glidande medelvärden. Gör en graf över denna serie, och jämför den med grafen över årsvisa medelvärden du gjorde i Uppgift 2. Vilka skillnader och likheter ser du? UPPGIFT 4. Beräkna de justerade säsongkomponenterna. Vilken månad är varmast? Vilken är kallast? UPPGIFT 5. Genomför en säsongrensning av data. Gör en graf över den rensade serien. Lägg in rensad serie, trend och ursprunglig serie i en och samma graf. (Se R-tips I nedan.) - 2 -

R-TIPS. I. Grafisk framställning av tidsserier. I vårt fall har vi ingen variabel i datasetet som specifikt anger löpande tid, så vad vi vill göra är att plotta olika variabler mot radnummer. Om variabeln heter Y, så kan detta göras genom kommandot > plot(y,type="l") som ritar serien som en sammanhängande kurva. Vill man ha färg så kan man skriva exempelvis > plot(y,type="l", col= blue ) Bokstaven l ( ell, inte ett ) står för line. Om man vill lägga in två tidsserier Y och Z i samma graf, och färga grafen för Z röd, så kan man skriva > plot(y,type="l") > lines(z,col="red") Om de båda tidsserierna har olika längd och/eller ligger ur fas, så måste man komplettera den ena serien eller båda med NA (som är R:s beteckning för saknade värden) i början och/eller slutet. Med hjälp av rep (se nedan under IV) kan man åstadkomma så många NA som behövs, och sedan kombinera ihop dem med tidsserien med hjälp av c(,, ). (Se Lab 1, Statistisk analys GN, Enkla numeriska operationer.) II. Att spara figurer. Om man vill spara en figur exempelvis den som skapats av det första plot-kommandot ovan måste man först ange kommandona > jpeg("figur.jpg") > plot(y,type="l") > dev.off() som skapar filen figur.jpg i underbiblioteket tsa1. För att skriva ut filen, öppna först ett nytt terminalfönster, byt katalog till tsa1, och skriv $ lpr figur.jpg På liknande vis görs en bild i ps-format. III. Att sammanfatta data. Kommandot tapply kan användas för att beräkna medelvärden (och även andra statistikor) över undergrupper av datasetets observationer. Om Y är den variabel vi vill beräkna medelvärden av (exempelvis temperatur), och X för varje observation anger vilken undergrupp den tillhör (exempelvis månad eller år), så kan gruppvisa medelvärden beräknas genom > MedelY <- tapply(y,x,mean) - 3 -

Vektorn MedelY av medelvärden kan sedan användas i andra beräkningar. (Det verkar som om R automatiskt antar att så länge vektorerna X och Y har samma längd, så hör värden på motsvarande platser inom respektive vektor till samma observation.) Om man ska beräkna medelvärden med tapply, och det finns saknade värden som betecknas NA i R så ger tapply värdet NA som svar. Om man istället vill att kommandot ska bortse från saknade värden och beräkna medelvärden av de värden som faktiskt finns, så kan man skriva > MedelY <- tapply(y,x,mean,na.rm=true) IV. Upprepning av värden med mera. R har ett ganska smidigt sätt att upprepa värden via kommandot rep. Dess två vanligaste varianterna illustreras av följande exempel: betrakta vektorn u = (2, 7, 4): > u <- c(2,7,4) Då ger > v <- rep(u,times=4) > w <- rep(u,each=4) vektorerna v = (2, 7, 4, 2, 7, 4, 2, 7, 4, 2, 7, 4) respektive w = (2, 2, 2, 2, 7, 7, 7, 7, 4, 4, 4, 4). En vektor bestående av talen 1 till 10 (exempelvis) ges av > x <- 1:10 Om vi istället skriver > x <- 1:10+2 så blir resultatet inte som man kanske skulle kunna tro en vektor bestående av talen 1 till 12, utan istället en bestående av talen 3 till 12; vad R har gjort är att lägga 2 till samtliga komponenter i vektorn 1:10. Om man däremot hade skrivit 1:(10+2), så hade man fått talen 1 till 12. V. Hantering av matriser. R sammanfogar två matriser (åtminstone om dimensionerna passar ihop) genom att lägga dem sida vid sida, respektive lägga den ena under den andra, via kommandona cbind och rbind. Om vi exempelvis vill sammanfoga två kolonnvektorer u och v till en matris w med två kolumner, så gör vi det genom att skriva > w <- cbind(u,v) Matriser har ett attribut i R kallat dimension : om exempelvis M är en 2x3-matris, så ger > dim(m) svaret 2 3. En talsekvens kan även sakna dimension, i vilket fall vi istället får svaret NULL. Om vi nu har en sekvens av 6 tal utan dimension och vill få R att istället betrakta den som en 2x3-matris, så skriver vi > dim(m) <- c(2,3) - 4 -

På samma vis kan vi förvandla M till en 3x2-matris eller göra den dimensionslös igen genom att skriva, respektive, > dim(m) <- c(3,2) > dim(m) <- NULL Observera dock att det förstnämna kommandot inte ger samma resultat som att transponera M. (Prova!) Transponatet ges istället av t(m). Kommandot length ger antalet element i ett objekt, oavsett eventuell dimension. För en 2x3- matris får vi exempelvis 6. Matrisprodukten av två matriser A och B skrivs A%*%B. Om du får felmeddelandet Error in A %*% B : non-conformable arguments så betyder det att matrisernas dimensioner inte passar ihop. Kontrollera med hjälp av dim! VI. Glidande medelvärden. Börja med att definiera en vektor av vikter. Om vi exempelvis vill bilda ett vanligt glidande medelvärde av tre, så är vikterna (1/3, 1/3, 1/3), och vi kan skriva > vikt <- c(1/3,1/3,1/3) och på motsvarande sätt för andra uppsättningar av vikter. Vad vi nu vill är att en serie av på varandra följande värden i en vektor Y ska multipliceras med respektive vikter, och sedan adderas ihop, och dessutom ska serien av vikter förskjutas längs vektorn Y. Man kan betrakta varje glidande medelvärde som en skalärprodukt av viktvektorn och ett utsnitt ur vektorn Y, alternativt en matrisprodukt förutsatt att vi ser till att den första vektorna är en radvektor och den andra en kolonnvektor. Följande loop skapar en ny serie Glid av glidande medelvärden: > Glid <- c() > for (j in 1:n){Glid <- rbind(glid,y[j:(j+v )]%*%vikt)} Det första kommandot gör Glid till en tom vektor; det behövs för att inte R ska protestera att vektorn Glid inte finns. Utsnittet ur Y är Y[j:(j+v )], se nedan under VII: Övrigt. Observera parenteserna kring j+v. Om du glömmer dem så blir j:j+v det enda talet j+v, istället för vektor av v+1 stycken tal. Parametern n ska ersättas med antalet glidande medelvärden, som bekant lite färre än det ursprungliga antalet observationer. Vad v ska vara för att det hela ska ge önskat resultat får du fundera ut själv. VII. Diverse. Om man vill subtrahera (exempelvis) en variabel från en annan så är det väsentligt att motsvarande vektorer matchar varandra observation för observation. För att uppnå detta måste man ibland klippa av en vektor i början och/eller i slutet. Om exempelvis H är en vektor av längd 100 och vi vill klippa bort de 5 första och de 5 sista observationerna, så kan vi skriva: - 5 -

> H <- H[6:95,] vilket kan utläsas som ta med rad nummer 6 t o m 95, och ta med alla kolonner. Om du får ett felmeddelande, pröva istället utan kommatecken: > H <- H[6:95] Ibland händer det att man får ett felmeddelande vid subtraktion (eller addition) även när de båda vektorerna har samma längd. Detta kan bero på att den ena, men inte den andra har dimension, eller på att de har olika dimension. I så fall måste man justera dimensionen. För att ta reda på vilka objekt som finns i din nuvarande R-session, skriv > ls() Då får du en lista på de namn du har givit objekten. - 6 -