11.07.2015 Views

Lab 4 i Matlab - Matematiska institutionen - Stockholms universitet

Lab 4 i Matlab - Matematiska institutionen - Stockholms universitet

Lab 4 i Matlab - Matematiska institutionen - Stockholms universitet

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MATEMATISKA INSTITUTIONENTillämpad statistisk analys gkSTOCKHOLMS UNIVERSITET VT 2005Avd. Matematisk statistikEO, GB 2005-04-24DATORLABORATION 4: URVALSUNDERSÖKNINGAR.MATLAB.Instruktionerna nedan är anpassade till <strong>Matlab</strong>, men labinstruktioner finns även för R.Året är 1986. Du är anställd på som reporter på tidningen Rosa Affärer. Du har fått iuppdrag att försöka uppskatta hur stora statens skatteintäkter blev för år 1985. Om dukan göra detta först av alla har du en förstasidesnyhet!Landet har vid den här tiden 284 kommuner. När var och en räknat färdigt sinaskatteintäkter tänker du ringa upp och fråga dem, innan Riksskatteverket gjort sinsammanställning, och därmed bli först med nyheten. Du inser att detta kommer att ta förlång tid, därför tänker du bara ringa ett urval om 100 kommuner. Urvalet skall vara ettOSU eller ett stratifierat OSU och skattningen den vanliga vid (stratifierat) OSU.Det är således summan av de 284 kommunernas skatteintäkter som du vill skatta. Vilåtsas att denna variabel inte är från början känd.Data finns på ett antal olika format under ”Nerladdningsbara dokument” på kursenshemsida. Välj ”<strong>Matlab</strong>anpassad text”. Öppna ett nytt dokument i <strong>Matlab</strong>, och kopiera inhela texten i det. Spara dokumentet, och kalla det förslagsvis Skatt.m . (Se <strong>Matlab</strong>instruktionernatill Datorlaboration 1.) Programmet definerar en datamatris S med 284rader och 4 kolonner. Kolonnerna svarar i tur och ordning mot följande variabler idatasetet:1. Kommunens nummer.2. Kommunens befolkning 1975 mätt i tusental.3. Region (landet har delats in i 8 regioner).4. Statens skatteintäkter blev för år 1985.UPPGIFT 1Ditt första problem är att göra en urvals-design. När du bestämmer hur du ska göra ditturval har du till din hjälp de tre första variablerna i datasetet, alltså kommunnummer,befolkning 1975 och region. Den fjärde variabeln, skatteintäkterna, betraktar vi förtillfället som ”dold”.Du funderar över två alternativ:1. OSU ur totalpopulationen.2. Stratifiering efter region.Vid stratifiering har du (minst) två olika val av allokering:A. Proportionell allokering.B. "Optimal" allokering.Vid "optimal" allokering uppstår det vanliga problemet att variabeln som ska uppskattas,skatteintäkterna, är okänd. Du chansar på att skatteintäkterna är ungefär proportionellamot folkmängden och använder därmed denna till att beräkna de standardavvikelser- 1 -


som behövs för denna allokering.Uppgift 1 i sammanfattning: Bestäm allokeringen av ditt urval för alternativ 2A och 2B.Med andra ord, ta reda på hur många kommuner från varje region som ska ingå iurvalet. Skriv ner de två allokeringarna till redovisningen. <strong>Matlab</strong>tips ges längre ner!UPPGIFT 2Det är nu dags att dra urval och ringa de utvalda kommunerna. I verkligheten drar dunaturligtvis bara ett urval och kontaktar de utvalda 100 kommunerna. Här tillåter vi ossatt testa alla tre varianterna (1, 2A och 2B).Uppgifterna från de utvalda kommunerna skulle du i verkligheten få per telefon. Här fårdu i stället hämta dem ur "facit", dvs den fjärde kolonnen. Du får emellertid i dennauppgift inte använda skatteintäkter för andra kommuner än de utvalda!För var och en av urvalsmetoderna ska du nu göra följande:a) Dra ett urval (se <strong>Matlab</strong>tips nedan).b) Skatta hur stora statens totala skatteintäkter var för år 1985.c) Skatta estimatorns standardavvikelse (dvs beräkna medelfelet).UPPGIFT 3Avslutningsvis ska vi "fuska" och kika i facit. Beräkna hur stora de totala skatteintäkterna isjälva verket var 1985. Vilket av de tre alternativen är bäst? Varför? Notera att du endasthar tillgång till ett urval för vart och ett av alternativen. Det betyder att du kan ha oturmed just det urval du får denna gång.REDOVISNINGRedovisa lösningen på Uppgift 1, 2 och 3 skriftligt. Ange fullständigt de allokeringar dugjorde i 1, samt de skattningar du gjorde i b-d i Uppgift 2, och beskriv hur du kom framtill ditt resultat. Bifoga gärna din <strong>Matlab</strong>kod. För att göra det lättare att följa vad du hargjort är det också bra om du bifogar en lista över kommunnummren, i storleksordning,för de observationer som ingår i ditt urval. Gör detta för alla tre urvalsmetoderna.NOTERA1. Populationen (284) är mycket liten jämfört med de flesta tillämpningar: ofta har manhundratusentals eller miljontals urvalsenheter.2. Data är verkliga och hämtade från http://lib.stat.cmu.edu/.- 2 -


MATLABTIPS.Gruppvisa värden.I <strong>Matlab</strong>tips till Datorlaboration 1, avsnittet ”Medelvärden över undergrupper. Loopar”,beskrivs hur man kan räkna ut gruppvisa medelvärden och standardavvikelser i <strong>Matlab</strong>. Iden här laborationen behöver vi göra något liknande, bland annat för att bestämmaallokeringarna. Det finns emellertid en skillnad som gör saken lite mera komplicerad i dethär fallet: de åtta grupperna (regionerna) är inte lika stora. För att lösaallokeringsuppgiften måste du ta reda på hur stora de är, men du behöver inte göra dettaför hand: följande programslinga definierar en 8x2-matris Reg som innehållerregionsnummer och antalet kommuner i denna regionfor k=1:8 r=size(find(S(:,3)==k)); Reg(k,:)=[k r(1)]; end;Förklaring: kommandot find skapar en kolonnvektor bestående av alla radnummer därden tredje kolonnen i S (dvs regionsnumret) har ett visst värde k. Kommandot size gerdenna kolonnvektors dimensioner, alltså antalet rader (=antal kommuner i regionen) ochantalet kolonner (=1). Genom att skriva r(1) plockar vi ut den information vi vill ha urr , nämligen antal kommuner i regionen. (Se help find och help size om du villveta mer.)Antag nu att vi hade velat beräkna de regionsvisa folkmängderna, som står angivna iandra kolonnen i matrisen S. Vi kan använda kommandot find igen för att plocka ut urS de rader som hör till en viss region och sedan beräkna summan av folkmängderna där:for k=1:8 s=sum(S(find(S(:,3)==k),:)); Reg(k,3)=s(2); end;På detta vis har vi utvidgat Reg med en kolonn för regionsvisa folkmängder. Förklaringtill koden: matrisen S(find(S(:,3)==k),:) består av de rader i S som harregionsummer = k. Kommandot sum (se <strong>Matlab</strong>tips, Datorlaboration 1) beräknarkolonnvisa summor för denna matris. Det är den andra av dessa summor som gerfolkmängderna; därför skriver vi Reg(k,3)=s(2). (Observera att <strong>Matlab</strong> skiljer på storaoch små bokstäver vad det gäller variabelnamn.)Att dra ett urval.För detta använder vi <strong>Matlab</strong>s slumptalsgenerator, som genererar matriser av likformigaslumptal. Vi tilldelar varje kommun ett slumptal genom att lägga en kolonn slump medslumptal till den ursprungliga datamatrisen S :slump=rand(284,1); S(:,5)=slump;Om vi nu hade velat dra ett slumpurval om exempelvis sju kommuner, så hade vi kunnatta dem som har de sju minsta slumptalen. För att kunna göra detta är det praktiskt attförst sortera datasetet efter slumptal. Detta görs genom kommandot sortrows. (Detfinns även ett kommando sort, men det sorterar bara en enskild kolonn, och det har viinte så stor glädje av.)S_sort=sortrows(S,5);Sedan skapar man en matris bestående av de sju första raderna i S_sort. För hur dettagörs, se Datorlaboration 1, <strong>Matlab</strong>tips avsnittet ”Matriser och delmatriser”.För att göra ett stratifierat urval behöver du sortera först efter region och sedan efterslumptal:S_strat=sortrows(S,[3 5]);- 3 -


Sedan gäller det att plocka ut rätt antal kommuner ur varje region. Låt oss anta att vi harurvalsstorlekarna för exempelvis proportionell allokering i en 8x2-matris som heter Prop,med regionsnumren i den första kolonnen och urvalsstorlekarna i den andra. Vianvänder find igen:Urval=[]; for k=1:8 stratum=S_strat(find(S_strat(:,3)==k),:);Urval=[Urval;stratum(1:Prop(k,2),:)]; end;Förklaring: matrisen S_strat(find(S_strat(:,3)==k),:) består av de rader iS_strat som har regionsnummer k. Vi väljer ut de första Prop(k,2) raderna ur dennamatris, dvs så många som anges av allokeringen, och lägger dessa rader till matrisenUrval. Från början är denna matris tom: Urval=[].- 4 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!