library(ipumsr)
## Warning: package 'ipumsr' was built under R version 4.1.3
ddi <- read_ipums_ddi("C:/Users/drayr/OneDrive/Desktop/DEM Spring 2022/DEM 7093/HW7/usa_00010.xml")
data <- read_ipums_micro(ddi)
## Use of data from IPUMS USA is subject to conditions including that users should
## cite the data appropriately. Use command `ipums_conditions()` for more details.
data<-haven::zap_labels(data) 
names(data)<-tolower(names(data))

Load some other packages

library(survey, quietly = T)
## Warning: package 'survey' was built under R version 4.1.3
library(tidyverse, quietly = T)
library(car, quietly = T)
## Warning: package 'car' was built under R version 4.1.3
## Warning: package 'carData' was built under R version 4.1.3
library(ggplot2, quietly = T)
library(tigris, quietly = T)
library(classInt, quietly = T)
library(tmap, quietly = T)

Download geographic data for Public Use Microdata Areas

The Public Use Microdata Area is the lowest level of geography in the PUMS data. They correspond to greographic ares of ~ 100,000 people.

options(tigris_class = "sf")
pumas<-pumas(state = "CA",
             year = 2019,
             cb = T)
## 
  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |=                                                                     |   2%
  |                                                                            
  |===                                                                   |   4%
  |                                                                            
  |===                                                                   |   5%
  |                                                                            
  |=====                                                                 |   7%
  |                                                                            
  |======                                                                |   8%
  |                                                                            
  |=======                                                               |  11%
  |                                                                            
  |=========                                                             |  13%
  |                                                                            
  |==========                                                            |  14%
  |                                                                            
  |===========                                                           |  16%
  |                                                                            
  |============                                                          |  17%
  |                                                                            
  |==============                                                        |  19%
  |                                                                            
  |===============                                                       |  22%
  |                                                                            
  |================                                                      |  23%
  |                                                                            
  |=================                                                     |  25%
  |                                                                            
  |==================                                                    |  26%
  |                                                                            
  |====================                                                  |  28%
  |                                                                            
  |======================                                                |  32%
  |                                                                            
  |========================                                              |  34%
  |                                                                            
  |========================                                              |  35%
  |                                                                            
  |==========================                                            |  37%
  |                                                                            
  |============================                                          |  40%
  |                                                                            
  |==============================                                        |  44%
  |                                                                            
  |================================                                      |  46%
  |                                                                            
  |==================================                                    |  48%
  |                                                                            
  |==================================                                    |  49%
  |                                                                            
  |====================================                                  |  51%
  |                                                                            
  |=====================================                                 |  52%
  |                                                                            
  |======================================                                |  55%
  |                                                                            
  |========================================                              |  58%
  |                                                                            
  |===========================================                           |  61%
  |                                                                            
  |===============================================                       |  67%
  |                                                                            
  |================================================                      |  69%
  |                                                                            
  |=================================================                     |  70%
  |                                                                            
  |==================================================                    |  72%
  |                                                                            
  |====================================================                  |  74%
  |                                                                            
  |=====================================================                 |  75%
  |                                                                            
  |=======================================================               |  79%
  |                                                                            
  |=========================================================             |  81%
  |                                                                            
  |==========================================================            |  83%
  |                                                                            
  |===========================================================           |  84%
  |                                                                            
  |============================================================          |  86%
  |                                                                            
  |=============================================================         |  87%
  |                                                                            
  |===============================================================       |  90%
  |                                                                            
  |=================================================================     |  93%
  |                                                                            
  |===================================================================   |  96%
  |                                                                            
  |===================================================================== |  98%
  |                                                                            
  |======================================================================| 100%
plot(pumas["GEOID10"],
     main = "Public Use Microdata Areas in California")

mapview::mapview(pumas, zcol= "GEOID10")

Prepare variables

data$pwt <- data$perwt
data$hwt <- data$hhwt

#citizenship
data$mig<-Recode(data$migrate1, recodes = "1='Same House'; 2:4='mover'; 3:4='notcitizen';else=NA ")

Generate survey design object

Here we identify the person weights and the survey design variables.

des<-svydesign(ids = ~cluster,
               strata = ~ strata,
               weights = ~pwt,
               data = data)

perform survey estimation for PUMAs

puma_est_mig<-svyby(formula = ~mig,
                    by = ~puma,
                    design = des,
                    FUN=svymean,
                    na.rm = TRUE )
head(puma_est_mig)

join to geography

pumas$puma<-as.numeric(pumas$PUMACE10)

geo1<-left_join(pumas, puma_est_mig, by=c("puma"= "puma"))
head(geo1)

Map estimates

Same House by PUMA

tmap_mode("view")
## tmap mode set to interactive viewing
geo1%>%
  tm_shape()+
  tm_polygons("migSame House",
              style="kmeans",
              n=8,
              legend.hist = TRUE) +
  tm_layout(legend.outside = TRUE,
            title = "Same House in California PUMAs \n 2015-2019") 
LS0tDQp0aXRsZTogIkRFTSA3MDkzIEhXNyINCmF1dGhvcjogIkRhdmlkIFJvZHJpZ3VleiINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVkICVCLCAlWScpYCINCm91dHB1dDoNCiAgIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogICAgZmlnX2hlaWdodDogNw0KICAgIGZpZ193aWR0aDogNw0KICAgIHRvYzogeWVzDQogICAgdG9jX2Zsb2F0OiB5ZXMNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KGlwdW1zcikNCmRkaSA8LSByZWFkX2lwdW1zX2RkaSgiQzovVXNlcnMvZHJheXIvT25lRHJpdmUvRGVza3RvcC9ERU0gU3ByaW5nIDIwMjIvREVNIDcwOTMvSFc3L3VzYV8wMDAxMC54bWwiKQ0KZGF0YSA8LSByZWFkX2lwdW1zX21pY3JvKGRkaSkNCmRhdGE8LWhhdmVuOjp6YXBfbGFiZWxzKGRhdGEpIA0KbmFtZXMoZGF0YSk8LXRvbG93ZXIobmFtZXMoZGF0YSkpDQpgYGANCg0KIyMgTG9hZCBzb21lIG90aGVyIHBhY2thZ2VzDQpgYGB7ciwgbWVzc2FnZT1GQUxTRX0NCmxpYnJhcnkoc3VydmV5LCBxdWlldGx5ID0gVCkNCmxpYnJhcnkodGlkeXZlcnNlLCBxdWlldGx5ID0gVCkNCmxpYnJhcnkoY2FyLCBxdWlldGx5ID0gVCkNCmxpYnJhcnkoZ2dwbG90MiwgcXVpZXRseSA9IFQpDQpsaWJyYXJ5KHRpZ3JpcywgcXVpZXRseSA9IFQpDQpsaWJyYXJ5KGNsYXNzSW50LCBxdWlldGx5ID0gVCkNCmxpYnJhcnkodG1hcCwgcXVpZXRseSA9IFQpDQoNCmBgYA0KDQoNCiMjIyBEb3dubG9hZCBnZW9ncmFwaGljIGRhdGEgZm9yIFB1YmxpYyBVc2UgTWljcm9kYXRhIEFyZWFzDQpUaGUgUHVibGljIFVzZSBNaWNyb2RhdGEgQXJlYSBpcyB0aGUgbG93ZXN0IGxldmVsIG9mIGdlb2dyYXBoeSBpbiB0aGUgUFVNUyBkYXRhLiBUaGV5IGNvcnJlc3BvbmQgdG8gZ3Jlb2dyYXBoaWMgYXJlcyBvZiB+IDEwMCwwMDAgcGVvcGxlLiANCg0KYGBge3J9DQpvcHRpb25zKHRpZ3Jpc19jbGFzcyA9ICJzZiIpDQpwdW1hczwtcHVtYXMoc3RhdGUgPSAiQ0EiLA0KICAgICAgICAgICAgIHllYXIgPSAyMDE5LA0KICAgICAgICAgICAgIGNiID0gVCkNCg0KDQpwbG90KHB1bWFzWyJHRU9JRDEwIl0sDQogICAgIG1haW4gPSAiUHVibGljIFVzZSBNaWNyb2RhdGEgQXJlYXMgaW4gQ2FsaWZvcm5pYSIpDQoNCg0KbWFwdmlldzo6bWFwdmlldyhwdW1hcywgemNvbD0gIkdFT0lEMTAiKQ0KYGBgDQoNCg0KIyMgUHJlcGFyZSB2YXJpYWJsZXMNCg0KYGBge3J9DQoNCmRhdGEkcHd0IDwtIGRhdGEkcGVyd3QNCmRhdGEkaHd0IDwtIGRhdGEkaGh3dA0KDQojY2l0aXplbnNoaXANCmRhdGEkbWlnPC1SZWNvZGUoZGF0YSRtaWdyYXRlMSwgcmVjb2RlcyA9ICIxPSdTYW1lIEhvdXNlJzsgMjo0PSdtb3Zlcic7IDM6ND0nbm90Y2l0aXplbic7ZWxzZT1OQSAiKQ0KYGBgDQoNCg0KIyMgR2VuZXJhdGUgc3VydmV5IGRlc2lnbiBvYmplY3QNCkhlcmUgd2UgaWRlbnRpZnkgdGhlIHBlcnNvbiB3ZWlnaHRzIGFuZCB0aGUgc3VydmV5IGRlc2lnbiB2YXJpYWJsZXMuDQoNCmBgYHtyfQ0KZGVzPC1zdnlkZXNpZ24oaWRzID0gfmNsdXN0ZXIsDQogICAgICAgICAgICAgICBzdHJhdGEgPSB+IHN0cmF0YSwNCiAgICAgICAgICAgICAgIHdlaWdodHMgPSB+cHd0LA0KICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEpDQpgYGANCg0KDQojIyBwZXJmb3JtIHN1cnZleSBlc3RpbWF0aW9uIGZvciBQVU1Bcw0KDQpgYGB7cn0NCnB1bWFfZXN0X21pZzwtc3Z5YnkoZm9ybXVsYSA9IH5taWcsDQogICAgICAgICAgICAgICAgICAgIGJ5ID0gfnB1bWEsDQogICAgICAgICAgICAgICAgICAgIGRlc2lnbiA9IGRlcywNCiAgICAgICAgICAgICAgICAgICAgRlVOPXN2eW1lYW4sDQogICAgICAgICAgICAgICAgICAgIG5hLnJtID0gVFJVRSApDQoNCmBgYA0KDQoNCmBgYHtyfQ0KaGVhZChwdW1hX2VzdF9taWcpDQoNCmBgYA0KDQojIyBqb2luIHRvIGdlb2dyYXBoeQ0KDQpgYGB7cn0NCnB1bWFzJHB1bWE8LWFzLm51bWVyaWMocHVtYXMkUFVNQUNFMTApDQoNCmdlbzE8LWxlZnRfam9pbihwdW1hcywgcHVtYV9lc3RfbWlnLCBieT1jKCJwdW1hIj0gInB1bWEiKSkNCmhlYWQoZ2VvMSkNCg0KYGBgDQoNCiMjIE1hcCBlc3RpbWF0ZXMNCg0KIyMjIFNhbWUgSG91c2UgYnkgUFVNQQ0KYGBge3J9DQoNCnRtYXBfbW9kZSgidmlldyIpDQoNCmdlbzElPiUNCiAgdG1fc2hhcGUoKSsNCiAgdG1fcG9seWdvbnMoIm1pZ1NhbWUgSG91c2UiLA0KICAgICAgICAgICAgICBzdHlsZT0ia21lYW5zIiwNCiAgICAgICAgICAgICAgbj04LA0KICAgICAgICAgICAgICBsZWdlbmQuaGlzdCA9IFRSVUUpICsNCiAgdG1fbGF5b3V0KGxlZ2VuZC5vdXRzaWRlID0gVFJVRSwNCiAgICAgICAgICAgIHRpdGxlID0gIlNhbWUgSG91c2UgaW4gQ2FsaWZvcm5pYSBQVU1BcyBcbiAyMDE1LTIwMTkiKSANCg0KDQpgYGA=