Datorövning 4 Poissonregression

Relevanta dokument
Datorövning 4 Poissonregression

Statistiska metoder för säkerhetsanalys

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

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 det i praktiken kanske viktigaste området inom kursen nämligen

3 Maximum Likelihoodestimering

Laboration 2: Styrkefunktion samt Regression

1 Förberedelseuppgifter

Exempel på tentamensuppgifter

Laboration 3: Enkla punktskattningar, styrkefunktion och bootstrap

bli bekant med summor av stokastiska variabler.

Föreläsning 12: Regression

Datorövning 6 Extremvärden och Peak over Threshold

1. För tiden mellan två besök gäller. V(X i ) = 1 λ 2 = 25. X i Exp (λ) E(X i ) = 1 λ = 5s λ = 1 5

Laboration 4: Lineär regression

Föreläsning 8: Konfidensintervall

PROGRAMFÖRKLARING I. Statistik för modellval och prediktion. Ett exempel: vågriktning och våghöjd

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

GMM och Estimationsfunktioner

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

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).

Datorövning 1: Fördelningar

Prediktera. Statistik för modellval och prediktion. Trend? - Syrehalt beroende på kovariater. Sambands- och trendanalys

förstå modellen enkel linjär regression och de antaganden man gör i den Laborationen är dessutom en direkt förberedelse inför Miniprojekt II.

Föreläsning 8, Matematisk statistik 7.5 hp för E, HT-15 Punktskattningar

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

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

MVE051/MSG Föreläsning 14

PROGRAMFÖRKLARING III

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

Weibullanalys. Maximum-likelihoodskattning

SF1905 Sannolikhetsteori och statistik: Lab 2 ht 2011

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

Laboration 4 R-versionen

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

Lektionsanteckningar 11-12: Normalfördelningen

Datorövning 3 Bootstrap och Bayesiansk analys

F13 Regression och problemlösning

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

Matematisk statistik kompletterande projekt, FMSF25 Övning om regression

Matematikcentrum 1(4) Matematisk Statistik Lunds Universitet MASB11 HT10. Laboration. Regressionsanalys (Sambandsanalys)

Föreläsning 6 (kap 6.1, 6.3, ): Punktskattningar

Tentamen i Matematisk statistik Kurskod S0001M

Laboration 4: Hypotesprövning och styrkefunktion

MVE051/MSG Föreläsning 7

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

SF1901 Sannolikhetsteori och statistik I

Tentamen för kursen. Linjära statistiska modeller. 22 augusti

lära dig tolka ett av de vanligaste beroendemåtten mellan två variabler, korrelationskoefficienten.

Datorövning 6 Extremvärden och Peaks over Threshold

Statistik B Regressions- och tidsserieanalys Föreläsning 1

Föreläsning 8, Matematisk statistik 7.5 hp för E Punktskattningar

Matematisk statistik 9 hp, HT-16 Föreläsning 10: Punktskattningar

1 Förberedelseuppgifter

Datorövning 3 Bootstrap och Bayesiansk analys

Grundläggande matematisk statistik

Extremvärden att extrapolera utanför data och utanför teori/modell. Statistik för modellval och prediktion p.1/27

repetera begreppen sannolikhetsfunktion, frekvensfunktion och fördelningsfunktion

Poissonregression. E(y x1, x2,.xn) = exp( 0 + 1x1 +.+ kxk)

Föreläsning 13: Multipel Regression

Lunds tekniska högskola Matematikcentrum Matematisk statistik. FMS035: Matematisk statistik för M Datorlaboration 5

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression LABORATION 5 MATEMATISK STATISTIK AK FÖR CDE, FMS012, VT08

Logistisk regression och Indexteori. Patrik Zetterberg. 7 januari 2013

Regressionsmodellering inom sjukförsäkring

Instruktioner till arbetet med miniprojekt II

Datorövning 1 Fördelningar

oberoende av varandra så observationerna är

LÖSNINGAR TILL. Matematisk statistik, Tentamen: kl FMS 086, Matematisk statistik för K och B, 7.5 hp

Tentamen i Matematisk statistik Kurskod S0001M

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

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

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

Några extra övningsuppgifter i Statistisk teori

Datorövning 1 Introduktion till Matlab Fördelningar

Regressionsanalys av lägenhetspriser i Spånga

TAMS65 - Föreläsning 2 Parameterskattningar - olika metoder

Kapitel 4: SAMBANDET MELLAN VARIABLER: REGRESSIONSLINJEN

Matematisk statistik för D, I, Π och Fysiker

Demonstration av laboration 2, SF1901

Avd. Matematisk statistik

F19, (Multipel linjär regression forts) och F20, Chi-två test.

TAMS65 - Föreläsning 11 Regressionsanalys fortsättning Modellval

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

Residualanalys. Finansiell statistik, vt-05. Normalfördelade? Normalfördelade? För modellen

1. Lära sig plotta en beroende variabel mot en oberoende variabel. 2. Lära sig skatta en enkel linjär regressionsmodell

Föreläsning 13, Matematisk statistik 7.5 hp för E, HT-15 Multipel linjär regression

SF1901 Sannolikhetsteori och statistik I

LABORATION 3 - Regressionsanalys

TAMS65 - Föreläsning 2 Parameterskattningar - olika metoder

Jesper Rydén. Matematiska institutionen, Uppsala universitet Tillämpad statistik 1MS026 vt 2014

Kapitel 12: TEST GÄLLANDE EN GRUPP KOEFFICIENTER - ANOVA

Statistiska metoder för säkerhetsanalys

Föreläsning 7: Punktskattningar

Föreläsning 7: Punktskattningar

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

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

Del I. Uppgift 1 För händelserna A och B gäller att P (A) = 1/4, P (B A) = 1/3 och P (B A ) = 1/2. Beräkna P (A B). Svar:...

Tentamen i Matematisk statistik Kurskod S0001M

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

Transkript:

Lunds tekniska högskola Matematikcentrum Matematisk statistik STATISTISKA METODER FÖR SÄKERHETSANALYS FMS065, HT-16 Datorövning 4 Poissonregression När man hanterar två eller fler variabler är man ofta intresserad av funktionssambandet mellan variablerna. För räknedata (count data) är Poissonregression en vanligt förekommande modell och tillämpningar finns inom de flesta vetenskaper. Poissonregressionsmodellen finns också implementerad i flera statistiska datorpaket. I denna datorövning ska vi lära oss mer om: Poissonregressionsmodellen och hur man skattar modellparametrarna. Modellval, t.ex. hur många förklarande variabler man bör använda. 1 Förberedelseuppgifter 1. Läs igenom handledningen till datorövningen och kapitel 7.1 7.3 (speciellt 7.3.3). 2. Försök förklara skillnaden mellan linjär regression och poissonregression. 2 Trafikolycksdata Vägverket (sedermera Trafikverket, numera Transportstyrelsen) har det övergripande ansvaret för hela vägtransportnätet. En viktig fråga är trafiksäkerhet och man genomför kontinuerligt arbete för att förbättra trafiksäkerheten. Från deras hemsida www.transportstyrelsen.se kan man få fram ett antal olika data om trafikolyckor. Vi ska i denna datorövning använda trafikolycksdata för åren 1950 2010. Data är hämtade från Arsdata-fran-1950 och finns som excel-fil på kurshemsidan. Vi ska använda dessa data för att anpassa en poissonregressionsmodell till antalet personer som dödades i trafikolyckor, jfr Example 7.16 i boken. Den skattade modellen används sedan för att prediktera det förväntade antalet dödade år 2020. Börja med att ladda ner arsdata_1950_2010.xls från kursens hemsida och spara den i din Matlabkatalog. Läs sedan in den i Matlab med: >> data = xlsread('arsdata_1950_2010.xls'); Variabeln data består nu av 9 kolumner (size(data)) men vi är bara intresserade av kolumnerna 1, 2, 5 och 6, dvs. år, antal dödade personer, antal bilar (1000-tal) respektive mängd såld bensin (1000 m 3 ). Vi lägger dessa i varsin vektor: >> year = data(:,1); >> killed = data(:,2); >> cars = data(:,5); >> petrol = data(:,6);

DATORÖVNING 4, FMS065 2 Rita upp antalet personer som dött varje år: >> plot(year,killed,'*') >> xlabel('år') >> ylabel('döda') Uppgift: Rita också (i nya figurer) antalet döda mot antalet bilar och mot mängden bensin. Ser du några samband? Från figurerna kan man se att trenden med ökande antal döda bryts omkring år 1965. Och från 1970 börjar antalet minska. Varför ökade antalet döda under 1950 1965? Och varför började det sedan minska? Ledtråd: högertrafik (1967), säkerhetsbälte i framsätet i nya bilar (1969), obligatorisk användning av bilbälte i framsätet (1975). 3 Poissonregressionsmodellen Antag att vi har en serie räknedata, n i, i = 1,..., k, för någon händelse, dvs. antalet dödade i trafikolyckor under året. Dessa räknedata antas vara observationer från slumpvariablerna N i Po(m i ), (kallas responseller beroende variabler) med väntevärden m i = m i (x i1,..., x ip ). Variablerna x i1,..., x ip kallas förklarande variabler 1 och antas mäta faktorer som har inverkan på räknevariablerna. Vi begränsar m i till att vara en log-linjär funktion 2, E(N i ) = m i = exp(b 0 + b 1 x i1 +... + b p x ip ) (1) Då blir sannolikheten att N i = n: P(N i = n) = e m i (m i) n n! = e eb 0 +b 1 x i1 +...+bpx ip (eb 0+b 1 x i1 +...+b px ip ) n, n = 0, 1, 2,... n! 3.1 Skattning av modellparametrarna b 0,..., b p För att förenkla notationen inför vi x i0 = 1 och kan nu skriva (1) som E(N i ) = m i = exp( b j x ij ), p j=0 där N i Po(m i ) för i = 1,..., k. Likelihoodfunktionen beräknas sedan som L(b) = k P(N i = n i ) = k e m i mn i i n i!. där m i = m i (b p ) är en funktion av b p = (b 0,..., b p ). ML-skattningarna b p = (b 0,..., b p ) är de värden på b som maximerar likelihoodfunktionen L(b). Det är oftast enklare att maximera log-likelihoodfunktion l(b) = ln(n i!) + n i ln(m i ) 1 Det finns ett antal olika benämningar: oberoende variabler, prediktorvariabler, etc. 2 Ibland har modellen en extra term t i: m i = t i exp(b 0 + b 1x i1 +... + b px ip). m i

DATORÖVNING 4, FMS065 3 Genom att sätta förstaordningsderivatorna av log-likelihooden lika med noll får vi ett system av (p + 1) icke-linjära ekvationer i b j, l(b) b j = m i b j ( n i m i 1) = (n i m i )x ij = 0, j = 0,..., p Oftast måste detta ekvationssystem lösas med någon numerisk metod, t.ex., Newton-Raphson-algoritmen, jfr. Kapitel 7.3.3 i boken. Poissonregressionsmodellen tillhör en klass av modeller som kallas generaliserade linjära modeller. I en generaliserad linjär modell (GLM), är väntevärdet av responsvariabeln, m, modellerat som en monoton (icke-linjär) transformation av de förklarande variablerna, m i = g(b 0 + b 1 x 1 + b 2 x 2 +... ). Inversen av transformationsfunktionen g kallas den kanoniska länk-funktionen. I Poissonregression är denna funktion log-funktionen eftersom ln m i = p j=1 b jx ij. I andra GLM:er används andra länkfunktioner, se doc glmfit för en lista av länkfunktioner som Matlab tillåter. Dessutom kan responsvariabeln ha flera olika fördelningar, t.ex. normal eller binomial. Vi ska också använda Matlabs funktion glmval med en logaritmisk länkfunktion för att göra prediktioner med den skattade modellen. 4 Poissonregression av trafikdata Vi ska nu pröva att anpassa en poissonregressionsmodell till antal dödade i trafikolyckor. Vi kunde se att det fanns ett brott i den ökande trenden av antal dödade runt åren 1965 1975, till stor del beroende på förbättringen i trafiksäkerhet genom bilbälten. Därför verkar det rimligt att anpassa vår modell till data med start 1975. Uppgift: Varför? >> year = data(26:end,1); % 26:end betyder rad 26 t.o.m. sista raden. >> killed = data(26:end,2); >> cars = data(26:end,5); >> petrol = data(26:end,6); Uppgift: Vilka är de förklarande variablerna? Vilken är responsvariabeln? Rita om figuren för det reducerade datamaterialet: >> figure(1) >> plot(year,killed,'*') >> xlabel('år') >> ylabel('döda') Vi börjar analysen med en förklarande variabel, year. Uppgift: Vad är det tänkt att variabeln year ska mäta?

DATORÖVNING 4, FMS065 4 >> X1 = [year-mean(year)]; % Vi drar bort medelvärdet för att få % numeriskt stabilare skattningar. >> n = killed; >> help glmfit % Matlabs rutin för GLM-regressionsmodeller. >> beta1 = glmfit(x1,n,'poisson'); >> my_fit1 = glmval(beta1,x1,'log'); % Prediktion där log(my) är linjär. % Rita i samma figur som data ovan. >> plot(year,my_fit1,'b-') Uppgift: Vad blev din skattning av b 0 och b 1? Uppgift: Räkna ut e b 0 och e b 1 (exp(beta1)). Hur ska vi tolka dem? Försök identifiera dem i figuren. Hur stor är den genomsnittliga minskningen i antal döda per år? Uppgift: Att döma av figuren, är denna modell tillräcklig för att beskriva antalet personer som dödas i trafikolyckor? Trots att denna enkla modell fångar den övergripande trenden, kan anpassningen kanske förbättras genom att ta med fler variabler i modellen. Vi lägger alltså till antalet bilar till modellen: >> X2 = [year-mean(year), cars-mean(cars)]; >> beta2 = glmfit(x2,n,'poisson'); >> my_fit2 = glmval(beta2,x2,'log'); >> plot(year,my_fit2,'g-') Uppgift: Har dina skattningar b 0 och b 1 ändrats? Förbättrar antalet bilar anpassningen? Uppgift: Hur förändras det förväntade antalet döda om antalet bilar ökar med 1000? Med 100 000? (Tänk på enheten!) Det verkar rimligt att också ta med mängden såld bensin eftersom den borde återspegla hur mycket bilarna kör. 3. (Naturligtvis skulle man hellre vilja ha antalet körda mil. På RUS (Regional Utveckling och Samverkan i miljömålssystemet) kan man hitta statistik över antal körda mil, baserat på bilprovningens noteringar men tyvärr bara för perioden 1999 2012.) 3 Under antagande att medelbensinförbrukningen för en bil varit konstant över åren en 1970-års model av Volvo använde ungefär 10 l per 100 km, vilket är ungefär detsamma som för en 2000-års modell. Däremot har 2000 års modell mer än dubbelt så många hästkrafter.

DATORÖVNING 4, FMS065 5 >> X3 = [year-mean(year), cars-mean(cars), petrol-mean(petrol)]; >> beta3 = glmfit(x3,n,'poisson'); >> my_fit3 = glmval(beta3,x3,'log'); >> plot(year,my_fit3,'r-') Uppgift: Har dina skattningar av b ändrats nu? Använd kommandot format long för att visa fler decimaler. Uppgift: Hur förändras det förväntade antalet döda om mängden bensin ökar med 1000 m 3? Med 100 000 m 3. Uppgift: Vilken modell tycker du är bäst? (format short ställer tillbaka till färre decimaler igen.) 4.1 Modellval Deviance Det är inte alltid enkelt att avgöra, bara genom att titta på en figur, vilken modell man ska välja. Även om anpassningen blir bättre när man lägger till fler variabler så ökar också osäkerheten hos skattningarna. En metod att välja komplexitet hos modellen är att använda deviance och hypotestest. Låt b p = {b 0, b 1,..., b p } vara ML-skattningarna av modellparametrarna {b 0, b 1,..., b p } i den fullständiga modellen med p förklarande variabler och låt b q vara skattningarna i den reducerade modellen där vi bara använder q (q < p) av de förklarande variablerna. Då gäller, under lämpliga villkor, att deviance DEV = 2 (l(b p ) l(b q )) = 2 n i (ln m ip ln m iq) är ungefär q 2 (p q)-fördelad om den reducerade modellen är sann. Deviance för den tredje modellen, jämfört med den andra modellen kan beräknas som: >> DEV32 = 2*sum(killed.*(log(my_fit3)-log(my_fit2))) Uppgift: Är förbättringen med modell 3 signifikant jämfört med modell 2? (a-kvantilen i en q 2 (f )-fördelning fås med chi2inv(1-a,f )). Uppgift: Upprepa testet för modell 2 mot modell 1 och dessutom med modell 3 mot modell 1 (tänk på frihetsgraderna!) Vilken modell är bäst?

DATORÖVNING 4, FMS065 6 5 Prediktion Vi vill nu använda vår modell för att prediktera det förväntade antalet dödade i trafiken år 2020. För att göra det måste vi först uppskatta antalet bilar och mängden såld bensin det året. Börja med att rita upp antalet bilar mot årtalet: >> figure(2) >> plot(year,cars,'o') Vi använder en enkel linjär modell för antalet bilar, y i, år x i y i = b 0 + b 1 x i + e i där felen, e i N(0, s 2 e), antas vara oberoende. Detta är den vanliga modellen vid linjär regression. I Matlab skattas parametrarna med funktionen regress som beräknar minsta-kvadrat-skattningarna. När e i är normalfördelade är dessa skattningar identiska med maximum-likelihood-skattningarna. >> phat = regress(cars,[ones(size(year)) year]) % regress måste ha en % kolumn ettor också. >> newyear = 1975:2020; % De år vi vill prediktera för. >> car_fit = phat(1)+phat(2)*newyear; >> plot(newyear,car_fit,'r-') >> cars_2020 = phat(1)+phat(2)*2020 Uppgift: Hur mycket ökar antalet bilar per år, i medeltal? Undersök hur bra modellen är genom att titta på residualerna: >> res = cars-(phat(1)+phat(2)*year); >> figure(3), plot(year,res,'o') >> figure(4), normplot(res) Uppgift: Ser residualerna ut som de borde när vi vet hur modellfelen e i ska bete sig? Det verkar som om vi missar lite konjunkturcykler men det struntar vi i nu. Vi vill bara ha en grov uppskattning av antalet bilar 2020. Nu ska vi uppskatta mängden såld bensin år 2020. >> figure(5) >> plot(year,petrol,'*') Uppgift: Ser det ut at passa med en rät linje? Eftersom bensinförbrukning inte är linjär anpassar vi en kvadratisk funktion till den istället:

DATORÖVNING 4, FMS065 7 >> phat = regress(petrol,[ones(size(year)) year year.^2]) >> petrol_fit = phat(1)+phat(2)*newyear+phat(3)*newyear.^2; >> plot(newyear,petrol_fit,'r-') >> petrol_2020 = phat(1)+phat(2)*2020+phat(3)*2020^2 Uppgift: Verkar det vara en bra uppskattning? Nu kan vi prediktera det förväntade antalet dödade år 2020 med hjälp av (1) och rita in det i den ursprungliga figuren: >> x = [2020-mean(year) cars_2020-mean(cars) petrol_2020-mean(petrol)]; >> my_2020 = glmval(beta3,x,'log') >> figure(1) >> plot(2020,my_2020,'ro') Uppgift: Verkar prediktionen rimlig? Eftersom modellen för att prediktera bensinförsäljningen kanske inte är så bra är det bäst att undersöka hur känslig vår prediktion av antalet döda är. Gör om prediktionen men utan att ta med bensinen: >> x = [2020-mean(year) cars_2020-mean(cars)]; >> my2_2020 = glmval(beta2,x,'log') % modell 2 utan bensin >> figure(1) >> plot(2020,my2_2020,'ko') Uppgift: Ändrade sig prediktionen? Uppgift: Bör man använda någon av modellerna för prediktera antalet dödade år 2100?