Lunds tekniska högskola Matematikcentrum Matematisk statistik FMSF25: MATEMATISK STATISTIK KOMPLETTERANDE PROJEKT DATORLABORATION 2, 6 DECEMBER 2017 Syfte Syftet med den här laborationen är att du ska träna på att förstå modellen enkel linjär regression och de antaganden man gör i den med hjälp av Matlab kunna studera frågeställningar som är intressanta i regressionsmodellen och dra relevanta slutsatser kunna undersöka om modellen passar bra till data och relatera detta till modellbeskrivningen i viss mån kunna jämföra olika modeller och välja bland olika modeller för samband mellan variabler förstå skillnaden mellan konfidensintervall för förväntat y-värde och prediktionsintervall för ett enstaka y-värde Laborationen är dessutom en direkt förberedelse inför Miniprojekt II. Förberedelseuppgifter Du skall ha löst förberedelseuppgifterna innan du kommer till laborationen. Hemuppgift 1: Innan laborationen måste du ha läst det utdelade materialet om sambandsanalys (regression). Hemuppgift 2: Du skall ha gjort uppgifterna på övningsbladet om regression innan du kommer till laborationen. Observera att övningstillfället torsdagen 30/11 är avsatt till arbete med dessa uppgifter. Kopiera samtliga filer under laboration 2 på hemsidan www.maths.lth.se/matstat/kurser/fmsf25/. 1 Regressionsanalys av töjningsmätningar Vid töjningsmätning i ett laboratorium belastas provkroppar. För en given belastning x (kn) mäts förlängningen y (10 2 mm). Ett antal mätningar har sparats i filen tensiletest.mat. Uppgift 1.1: Ladda in filen i matlab och plotta förlängningen mot belastningen. I figuren ser ni att med ökande belastning ökar förlängningen, vilket också rimmar väl med fysikalisk kunskap. Det finns inslag av slumpmässighet: betrakta t.ex. den givna lasten 7.9 kn. Där finns fyra mätningar, vilka resulterat i fyra olika y-värden. En regressionsmodell behövs för att modellera slumpen och samtidigt ta fasta på det linjära sambandet. För att enkelt skatta regressionslinjen, beräkna konfidensintervall, undersöka residualer, m.m. utnyttjar vi den specialskrivna rutinen reggui. Skriv help reggui för att se hur den ska användas. 31
Uppgift 1.2: Bekanta dig med utskrifterna och figurerna som reggui alstrar och svara på följande frågor. Vad är den antagna modellen? Vad är tolkningen av parametrarna i modellen? Vad är den skattade modellen? Vad är konfidensintervallet för α? Vad är konfidensintervallet för β? Vad är skattningen av σ? Hur mycket ökar förlängningen i medeltal när belastningen ökar med 1 kn? Vilket intervall är det som talar om detta? Om man belastar många provkroppar med 6 kn vardera, vad kan man vänta sig att deras medelförlängning blir? Vilket intervall är det som talar om detta? Om man belastar en provkropp med 6 kn, vad kan förlängningen bli? Vilket intervall är det som talar om detta? Om man har belastat en provkropp med en okänd last och fått att förlängningen blev 20 10 2 mm, hur stor kan lasten då ha varit? Vilket intervall är det som talar om detta? Vad är förklaringsgraden? Hur tolkar ni den? 2 Transformationer Ibland kan man behöva göra en transformation av data för att modellantagandena i den linjära modellen ska vara uppfyllda. 2.1 Marianergraven Vid en undersökning av biomassans djupfördelning i Marianergraven fick man följande resultat: vattendjup, x i (1000 m) 0.1 0.5 1.0 1.5 2.5 4.0 5.0 7.0 9.0 biomassa, y i (g/m 3 ) 200 40 25 20 5.0 2.0 0.3 0.03 0.01 För att beskriva sambandet mellan vattendjup och biomassa kan man använda någon av följande regressionsmodeller, den linjära (modell 1): y i = α 1 + β 1 x i + ε i, i = 1,..., 9 där ε 1,..., ε 9 är oberoende och N (0, σ 1 ); eller den transformerade linjära (modell 2): där e 1,..., e 9 är oberoende och N (0, σ 2 ). Uppgift 2.1: ln(y i ) = α 2 + β 2 x i + e i, i = 1,..., 9 Mata in datamaterialet i Matlab. Det görs enklast med kommandona >> x=[0.1 0.5 1.0 1.5 2.5 4.0 5.0 7.0 9.0]; >> y=[200 40 25 20 5.0 2.0 0.3 0.03 0.01]; 32
Uppgift 2.2: Vilken av de två modellerna bör fungera bäst? I din motivering ska det klart framgå vilka egenskaper i plottarna och tabellerna du baserar ditt modellval på. Uppgift 2.3: Gör en skattning av den förväntade biomassan på 3000 meters djup och uppskatta ett lämpligt 95% intervall för denna storhet. Det måste klart framgå hur uppskattningen är gjord. Uppgift 2.4: Om biomassan i ett vattenprov bestämdes till 1.0 g/m 3, från vilket vattendjup har provet tagits? Uppskatta ett lämpligt 95% intervall för det efterfrågade djupet. 3 Frost Hur beror antalet frostdagar i en ort på höjd och latitud? Om man känner höjden och latituden hos en ort kan man då förutsäga (prediktera) antalet frostdagar? Man noterade det genomsnittliga antalet frostdagar vid 20 olika väderstationer i West Virginia. Detta tillsammans med höjden över havet (feet) och stationens latitud finns i filen frost. 3.1 Vilken typ av modell? Multipel regression är en mycket vanlig teknik när man vill undersöka hur p uppmätta variabler, x 1,..., x p påverkar en responsvariabel, y. I denna situation har vi två förklarande variabler, dvs p = 2. Regressionsmodellen är alltså av formen y i = β 0 + β 1 x 1i + β 2 x 2i + ε i, i = 1,..., n. där man tänker sig att alla ε i är oberoende och normalfördelade med väntevärde 0 och varians σ 2. Uppgift 3.1: Identifiera de olika variablerna i modellen ovan i vårt frostproblem. Vad är alltså er ansatta modell i just detta exemplet? 3.2 Regression med regress Reggui är en specialskriven funktion för våra grundkurser i matematisk statistik. Den fungerar emellertid bara för enkel linjär regression och polynomregression, den går alltså inte att använda här. Om man vill arbeta med multipel linjär regression (flera x-variabler) måste man använda Matlabs inbyggda funktion för regressionsanalys, regress. Gör help regress för att ta reda på hur in- och utargumenten ser ut. 33
Uppgift 3.2: Använd regress för att skatta parametrarna i modellen ovan. Börja med att bygga upp matrisen X som, i det här fallet, är en (20 3)-matris (det finns 20 st observationer av x 1 -värden respektive x 2 -värden) med första kolumnen enbart ettor, andra kolumnen bestående av x 1 -värdena och tredje av x 2 -värdena. >> X = [ones(size(x1)) x1 x2] >> [b Ib r] = regress(y,x,0.05) Vektorn b ger skattningarna av parametrarna β 0, β 1 och β 2 medan deras konfidensintervall, med konfidensgraden 95 % (= 1 0.05), finns i matrisen Ib. Vektorn r ger residualerna. Uppgift 3.3: Vad är skattningarna av β 0, β 1 och β 2? Ange också motsvarande konfidensintervall. Hur många av modellparametrarna är signifikant skilda från noll (på 5%-nivån)? Kan vi förenkla modellen? Gör en samlad bedömning utifrån residualplottarna - finner du något att anmärka på, eller anser du att regressionsmodellen är acceptabel? Använd modellen för att skatta medelfrostdurationen för en ort som ligger på 1000 fots höjd på 40 nordlig latitud. >> X0=[1 1000 40]; % 1000 feet, 40 grader >> Y0=X0*b Ni kan även rita det skattade regressionsplanet i en tredimensionell bild. Funktionen planplot är skriven just för denna uppgift, men den utnyttjar Matlabs standardfaciliteter för 3D-plottar, >> planplot(x1, x2, b, y) % där b = vektorn med parameterskattningar 4 Vad påverkar andelen bussresande i en stad? I ett nyligen avslutat examensarbete på V-programmet 1 funderar man över vilka faktorer som påverkar hurvida en person tar bussen eller ett annat färdemedel i stadstrafik. Från ett antal städer i Västsverige studerar man hållplatser utmed vissa utvalda busslinjer. I detta material har vi 49 olika hållplatser. För varje hållplats har man lokaliserat ett närområde, d.v.s det bostadsområde som naturligt tillhör just denna hållplats. Uppmätta variabler för varje hållplats och närområde är: resandel= (antal resande från hållplatsen en viss tidsperiod)/ (totala antalet invånare i närområdet) avst= avstånd från hållplatsen till stadens centrumpunkt (d.v.s. en plats där många stiger av) restid= restiden med buss från hållplatsen till stadens centrumpunkt ink= medelinkomsten (10 000 kr) hos invånarna i hållplatsens närområde bil= bilinnehav i närområdet ((antal bilar)/(antal invånare i närområdet)) Data finns i filen buss. 1 Tack till Viktor Sköldstedt som gett oss data och idéer till problemställningar. Viktor har hämtat sina data från bl.a. Västtrafiks resvägsundersökning och från Statistiska Centralbyrån.Vi har i denna labb förenklat det ursprungliga problemet. 34
4.1 Vilka variabler samvarierar? Starta med att direkt lägga alla data i en matris och beräkna parvisa korrelationskoefficienter >> bussmatris=[resandel avst restid ink bil] >> corrcoef(bussmatris) Tolkningen av den första raden i matrisen är att där visas ρ resandel,reasndel, ρ resandel,avst, ρ resandel,restid, ρ resandel,ink samt ρ resandel,bil. De övriga raderna tolkas på motsvarande sätt. Vi vill bygga en modell där andelen resande från en hållplats kan förklaras m.h.a. en eller flera av variablerna avst, restid, ink och bil. En stark samvariation mellan resandel (vår responsvariabel) och en annan variabel tyder på att denna variabel kanske kan användas som förklarande variabel i vår modell. En stark samvariation mellan två tänkbara förklarande varaibler är däremot oroväckande. Det tyder på att de i princip mäter samma sak och i modelltänkande innebär det att det kanske räcker med att ha en av de två variablerna med i modellen. Uppgift 4.1: Utifrån korrelationsmatrisen, vilka variabler tror ni påverkar andelen resande? Finns det någon variabel som verkar onödig? Resonera också utifrån vad variablerna mäter. 4.2 Vilka variabler ska vi ta med i modellen? Lite förenklat arbetar vi enligt dessa kriterier när vi väljer modell. Vi eftersträvar en modell där: koefficienterna framför samtliga förklarande variabler ska vara signifikant skilda från 0 skattningen av modellens σ ska vara liten residualerna plottade mot de förklarande variablerna ska bete sig slumpmässigt (inga mönster) och helst kunna anpassas till en normalfördelning När man ska avgöra vilka variabler som bör vara med i modellen har man i princip två strategier att välja mellan: Ta med samtliga variabler från början och ta bort variabler efter hand som inte verkar påverka. Plocka in variabler i modellen en efter en. Vi gör en variant av den första strategin. Låt de förklarande variablerna vara avst, bil och ink och utför en multipel regression: >> [b I_b r rint stats]=regress(resandel, [ones(49,1) avst bil ink]); >> b >> I_b >> stats 35
Uppgift 4.2: Titta på de skattade parametrarna i vektorn b, vad är tolkningen av dem? Är de rimliga (går på rätt håll)? Uppgift 4.3: Titta på konfidensintervallen i vektorn I b. Vilka av de tre förklarande variablerna bör vara med i modellen och vilka kan ni ta bort? Uppgift 4.4: Titta på resultatet i variabeln stats. Det första talet anger förklaringsgraden R 2, det sista skattningen av σ 2 (de båda andra behöver ni inte bry er om). Skriv ner de båda resultaten. Både värdet på förklaringsgraden och skattningen av σ 2 är bra att titta på när man väljer mellan två modeller med samma antal förklarande variabler. Uppgift 4.5: Om ni beslöt att ta bort någon eller några variabler, pröva den nya regressionsmodellen. Kanske är det ytterligare någon modell ni vill testa? Jämför även förklaringsgrader och σ 2 -skattningar. Vad är ert slutliga förslag på förklarande variabler? Uppgift 4.6: Ni såg tidigare att det fanns en stark samvariation mellan avst och restid eftersom de i pricip mäter samma sak. Pröva vad som händer om ni även plockar in restid i modellen. 4.3 Ytterligare koll av modellen När ni bestämt er för vilka variabler som bör vara med ska ni kontrollera att modellens residualer beter sig som man förväntar sig. Avsluta därför med att plotta residualerna mot var och en av de förklarande variablerna. Undersök också om residualerna kan tänkas vara normalfördelade. Uppgift 4.7: Sammanfatta er analys genom att skriva upp er fullständiga modell! 36