Statistik och dataanalys I, 15 hp

Inlämningsuppgift 1

Authors

Namn 1

Namn 2

Namn 3

Publicerad

January 19, 2024

Warning

Den här inlämningsuppgiften förutsätter att följande paket finns installerade:

  • mosaic

  • dplyr

  • geosphere

  • leaflet

Paket kan installeras via kommandot install.packages('packagename'), där 'packagename' är namnet på paketet, t.ex 'mosaic'.

Introduktion

I den första inlämningsuppgiften ska ni självständigt i grupper om tre analysera ett dataset i programmeringsspråket R. Till skillnad från datorlaborationerna finns det minimalt med kodexempel. Datorlaborationerna går igenom de flesta momenten som behandlas i inlämningsuppgiften, så se till att göra klart dessa innan.


Instruktioner

I denna inlämningsuppgift ska ni analysera ett datamaterial som beskriver ca 500 distrikt i Boston år 1970. Datasetet är en modifierad version1 av originaldata2 som användes i en studie3 där författarna predikterade medianhuspriser i olika distrikt med hjälp av en rad förklaringsvariabler.

Följande variabler finns i datasetet boston_census_data.Rdata (ladda ner), som innehåller 480 observationer. Notera att en observation motsvarar ett distrikt:

  • town: Stadsdel.
  • longitude: Longitud koordinat.
  • latitude: Latitud koordinat.
  • median_home_value: Medianhuspriset (enhet 1K USD).
  • crime_rate: Brott (per 1000 invånare).
  • zoned_25k_p: Andel av stadsdelens bostadsmark ämnad för marklotter större än 25000 kvadratfot.
  • indust_p: Andel tunnland ägd av företag utanför detaljhandel.
  • borders_charles: Charles River dummy variabel (= 1 om området gränsar till floden, 0 annars).
  • NOx: Koncentration av kväveoxider (andelar per 10 miljon).
  • n_rooms_avg: Genomsnitt antal rum i ägda bostäder.
  • before_1940_p: Andel ägda bostäder byggda före 1940.
  • employ_dist: Viktat avstånd till fem arbetsförmedlingscentra i Boston.
  • radial_access: Index som mäter tillgång till stadsmotorvägar.
  • tax_rate: Fastighetsskatt per 10000 USD.
  • pupil_teacher_ratio: Lärartäthet mätt som elev per lärare.
  • lower_stat_pct: Procentandel med låg socioekonomisk status i termer av utbildning eller arbete.
  • dist_fenway_park: Avstånd till stadion Fenway Park.

Inlämningsuppgiften ska lämnas in i form av ett html-dokument genererat av Quarto. Kontrollera att ni inte får några felmeddelande när du genererar HTML-dokumentet. Läs sedan igenom HTML-dokumentet noggrant innan ni lämnar in det. Använd tydliga figurer och namnge axlarna med tydliga variabelnamn. Glöm inte att skriva era namn i början av dokumentet, där det nu står Namn 1, Namn 2 och Namn 3.

0. Ladda in data

💪 Uppgift 0.1

Ladda in datasetet Boston_census_data med följande kod.

Uppgift 0.1 - Svar

# Write your code here
load(file = url("https://github.com/StatisticsSU/SDA1/blob/main/assignments/assignment1/Boston_census_data.RData?raw=true")) 

1. Kriminalitet i Boston

I detta avsnitt ska ni analysera kriminaliteten i Boston med hjälp av variabeln crime_rate.

💪 Uppgift 1.1

Vad kan man generellt säga om kriminaliteten i Boston 1970? Använd lämpliga figurer och mått för att ge en beskrivning.

Uppgift 1.1 - Svar

Skriv svaret här. Vid behov skrivs matematiska symboler inom dollartecken, till exempel \(\overline{y} = \cfrac{\sum^{n}_{i=1} y_i}{n}\). Koden skrivs i den grå R-rutan nedanför.

# Write your code here

💪 Uppgift 1.2

Distrikten tillhör olika stadsdelar som anges i den kategoriska variabeln town? Det finns 88 olika sådana stadsdelar (towns).

Skiljer sig brottsligheten åt mellan de olika stadsdelarna? Undersök stadsdelarna Boston East Boston, Boston Downtown, Cambridge, samt ytterligare en stadsdel som ni själva väljer. Besvara frågan med hjälp av lämpligt valda figurer och statistiska mått.

Tip

Innan ni påbörjar analysen, skapa en ny data frame som enbart innehåller de stadsdelar som ni vill jämföra. Det kan göras till exempel med funktionen filter().

Uppgift 1.2 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 1.3

Vilka två variabler i datasetet Boston_census_data korrelerar mest med brottslighet? Beskriv sambandet mellan brottslighet och var och en av dessa två variabler.

Tip

Kom ihåg att korrelation mäter det linjära sambandet mellan numeriska variabler.

Uppgift 1.3 - Svar

Skriv textsvaret här.

# Write your code here

2. Fastighetsskatt i Boston

I detta avsnitt ska ni analysera fastighetsskatten i Boston med hjälp av variabeln tax_rate.

💪 Uppgift 2.1

Vad kan man generellt säga om fastighetsskatten i distrikten? Använd lämpliga figurer och mått för att beskriva fördelningen.

Uppgift 2.1 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 2.2

Låt oss skapa en ny variabel cat_tax som anger om ett distrikt betalar låg (low), medel (medium), eller hög (high) fastighetsskatt. Vi definerar skattekategorierna enligt

  • low: tax_rate \(\leq\) 250,
  • medium: 250 \(<\) tax_rate \(\leq\) 400,
  • high: tax_rate \(>\) 400.

Följande kod skapar och lägger till variabeln cat_tax i Boston_census_data

Boston_census_data$cat_tax <- cut(Boston_census_data$tax_rate, 
              breaks=c(0, 250, 400, 800),
              labels=c('Low', 'Medium', 'High'))

Finns det ett samband mellan vilken skattekategori ett distrikt tillhör och dess angränsning till Charles River? Förklara med hjälp av lämplig tabell och figur.

Uppgift 2.2 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 2.3

Hur många procent av alla distrikt i vår data ligger i angränsning till Charles River och tillhör en hög skattekategori? Hur stor andel av distrikten med hög skatt ligger inte i angränsning till Charles River?

Uppgift 2.3 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 2.4

Vilka två variabler i datasetet Boston_census_data korrelerar starkast med tax_rate? Beskriv det parvisa sambandet mellan tax_rate och var och en av dessa två variabler. Vad kan vi säga om kausalitet för vart och ett av sambanden?

Tip

Kom ihåg att korrelation är ett mått på linjära samband mellan numeriska variabler.

Uppgift 2.4 - Svar

Skriv textsvaret här.

# Write your code here

3. Avstånd till Fenway park

I detta avsnitt ska ni undersöka variabeln dist_fenway_park, som mäter avståndet mellan ett distrikt och Fenway park (stadion där basebollslaget Boston Red Sox spelar sina hemmamatcher).

Vi kan visualisera Fenway park och distrikten på en karta med hjälp av R-paketet leaflet. Följande kod visar platsen för Fenway park och distrikten för observationerna 30 och 45.

library(leaflet) # Install if not available
fenway_park_lat_long <- c(42.346462, -71.097250) # latitude and longitude for Fenway_park
Boston_map <- leaflet() %>% 
  addTiles() %>%
  addMarkers(lat = fenway_park_lat_long[1], lng = fenway_park_lat_long[2], popup="Fenway park") %>%
  addMarkers(lat = Boston_census_data$latitude[30], lng = Boston_census_data$longitude[30], popup="Observation 30") %>%
  addMarkers(lat = Boston_census_data$latitude[45], lng = Boston_census_data$longitude[45], popup="Observation 45") 

Boston_map # Show interactive map

💪 Uppgift 3.1

Vilket distrikt i vår data har längst respektive kortast avstånd till Fenway park? Markera ut dessa distrikt i en interaktiv karta tillsammans med Fenway park.

Uppgift 3.1 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 3.2

Finns det ett samband mellan dist_fenway_park och crime_rate?

Uppgift 3.2 - Svar

Skriv textsvaret här.

# Write your code here

4. Enkel linjär regression

I detta avsnitt ska ni anpassa och tolka enkla linjära regressionsmodeller.

💪 Uppgift 4.1

Anpassa en linjär regression med responsvariabeln NOx och den förklarande variabeln employ_dist. Rita den anpassade regressionslinjen tillsammans med data i en lämplig figur. Beskriv resultaten och tolka modellen. Utför en modellvalidering via en residualanalys och kommentera modellens lämplighet. Om modellen inte anses lämplig, vilka antaganden har inte varit uppfyllda?

Uppgift 4.1 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 4.2

Använd modellen i Uppgift 4.1 för att prediktera koncentration av kväveoxider för observation 10, där employ_dist=10.5857. Beräkna vad residualen blir för denna observation.

Uppgift 4.2 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 4.3

Transformera variablerna i Uppgift 4.1 (avgör själv vilken eller vilka av de två som behöver transformeras). Ett förslag är att använda Tukeys cirkel för att hitta lämpliga transformationer. Anpassa en ny linjär regression med de transformerade variablerna. Utför en modellvalidering (efter transformation) via en residualanalys och kommentera modellens lämplighet jämfört med modellen i Uppgift 4.1.

Uppgift 4.3 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 4.4

Plotta den anpassade regressionen från 4.3 i icke-transformerad skala tillsammans med observationerna (också i icke-transformerad skala) i en lämplig figur.

Uppgift 4.4 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 4.5

Använd modellen i Uppgift 4.3 för att prediktera koncentration av kväveoxider i icke-transformerad skala för observation 10, där employ_dist=10.5857. Beräkna vad residualen blir för denna observation. Kommentera resultaten jämfört med Uppgift 4.2.

Tip

Tänk på att ta hänsyn till eventuella transformationer!

Uppgift 4.5 - Svar

Skriv textsvaret här.

# Write your code here

5. Multipel linjär regression

I detta avsnitt ska ni studera multipel linjära regression.

💪 Uppgift 5.1

Anpassa en linjär regression med responsvariabel logaritmerad median_home_value samt förklarande variabler lower_stat_pct och dummy-variabeln borders_charles. Tolka koefficienten för borders_charles.

Uppgift 5.1 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 5.2

Ni ska nu utforma en modell som predikterar medianhuspriset median_home_value. Ni får endast använda följande förklaringsvariabler:

  • before_1940_p
  • crime_rate
  • radial_access
  • NOx
  • dist_fenway_park

Ni får själva välja hur många av variablerna som ska ingå i modellen. Ni får göra vilka transformationer ni vill av variablerna, inklusive responsvariabeln.

Pröva er fram metodiskt när ni väljer vilka variabler ni inkluderar i modellen, och när ni bestämmer vilka eventuella transformationer ni använder.

När ni utvärderar olika modeller kan ni förslagsvis börja med att jämföra adjusted R-squared. När ni med hjälp av adjusted R-squared har identifierat två eller tre modeller som ser lovande ut kan ni utvärdera dessa modeller ytterligare i ett andra steg.

I det andra steget ska ni utvärdera hur väl modellerna predikterar data som inte använts för att anpassa modellen. Ni kan välja en av två alternativa metoder:

  1. Dela in ert dataset i träningsdata och testdata. Anpassa modellen med hjälp av träningsdata, och utvärdera sedan på testdata. Ni kan exempelvis använda de första 350 observationerna som träningsdata och de sista 130 observationerna som testdata.
  2. Använd korsvalidering. Det är en något mer krävande metod, men också något bättre. Ni kan exempelvis göra korsvalidering med 4 folds (4-fold cross validation). Dela då upp ert dataset i fyra delar (del 1: observationer 1-120, del 2: observationer 121-240, del 3: observationer 241-360, del 4: observationer 361-480).

Sortera inte observationerna i Boston_census_data slumpmässigt. Ordningen är redan slumpmässig.

Tip

Tänk på att ta hänsyn till eventuell transformation av responsvariabeln. Om ni exempelvis har valt transformationen \(\log(y)\) är modellens prediktion av responsvariabeln \(\widehat{\log(y)}\). Ni måste då transformera den till \(\hat y\) i responsvariabelns originalskala med formeln \(\hat{y}=\exp\left(\widehat{\log(y)}\right)\). Sedan kan ni räkna ut residualen \(y - \hat y\).

Uppgift 5.2 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 5.3

Gör en residualanalys av den valda modellen i Uppgift 5.2.

Uppgift 5.3 - Svar

Skriv textsvaret här.

# Write your code here

💪 Uppgift 5.4

Använd modellen i Uppgift 5.2 för att prediktera medianhuspriset för observationerna i datasetet Boston_districts_to_predict (ladda ner).

Uppgift 5.4 - Ladda hem data för prediktion

Ladda in dataseten Boston_districts_to_predict med följande kod.

# Write your code here
load(file = url("https://github.com/StatisticsSU/SDA1/blob/main/assignments/assignment1/Boston_districts_to_predict.RData?raw=true")) 

Det här datasetet har endast de förklarande variablerna, dvs inte responsvariabeln. När vi rättar era inlämningsuppgifter kommer vi att jämföra era prediktioner med de faktiska medianpriserna (som vi har tillgång till).

Skriv ut dina prediktioner så att vi enkelt kan se dem när vi rättar.

Tip

Tänk på att ta hänsyn till eventuella transformationer av förklaringsvariablerna!

Uppgift 5.4 - Svar

Skriv textsvaret här.

# Write your code here

Footnotes

  1. Totalundersökningen trunkerade medianhusvärdet till 50K för de censusdistrikten som låg över. Vi har tagit bort dessa censusdistrikt. Vi har också tagit bort variabler som är irrelevanta.↩︎

  2. Harrison Jr, D., & Rubinfeld, D. L. (1978). Hedonic housing prices and the demand for clean air. Journal of Environmental Economics and Management, 5(1), 81-102.↩︎

  3. Pace, R. K., & Gilley, O. W. (1997). Using the spatial configuration of the data to improve estimation. The Journal of Real Estate Finance and Economics, 14(3), 333-340.↩︎