hec_data <- get_cansim_sqlite("36-10-0101",auto_refresh = TRUE) %>%
collect_and_normalize(disconnect = TRUE)
census_households <- c("CA01","CA06","CA11","CA16","CA21") %>%
lapply(function(ds)
get_census(ds,regions=list(PR=c("48","59","24","35"))) %>%
mutate(Year=paste0("20",substr(ds,3,4)))) %>%
bind_rows() %>%
select(Name=`Region Name`,GeoUID,Year,Households,Dwellings) %>%
mutate(Name=gsub("| \\/.+$| \\(.+$","",Name)) %>%
group_by(Name) %>%
mutate(Change=(Households/lag(Households,order_by = Year))^(1/5))
t1ff <- get_cansim_sqlite("11-10-0012",auto_refresh = TRUE) %>%
filter(GEO %in% c("Ontario","Quebec","Alberta","British Columbia"),
`Age of older adult`=="Total all ages",
`Family income`=="All income groups",
`Family type` %in% c("Couple families","Lone-parent families","Persons not in census families")) %>%
collect_and_normalize(disconnect = TRUE) %>%
group_by(Year=REF_DATE,Name=GEO) %>%
summarize(Households=sum(val_norm),.groups="drop")
ef <- list("CA21"=c(fam="v_CA21_989",ind="v_CA21_1001"),
"CA16"=c(fam="v_CA16_4993",ind="v_CA16_5005"),
"CA11"=c(fam="v_CA11N_2455",ind="v_CA11N_2479"),
"CA06"=c(fam="v_CA06_1729",ind="v_CA06_1829"),
"CA01"=c(fam="v_CA01_1609",ind="v_CA01_1613"))
cf <- list("CA21"=c(fam="v_CA21_499",ind="v_CA21_531"),
"CA16"=c(fam="v_CA16_484",ind="v_CA16_501"),
"CA11"=c(fam="v_CA11F_110",ind="v_CA11F_148"),
"CA06"=c(fam="v_CA06_50",ind="v_CA06_86"),
"CA01"=c(fam="v_CA01_53",ind="v_CA01_84"))
census_families <- c("CA01","CA06","CA11","CA16","CA21") %>%
lapply(function(ds){
get_census(ds,regions=list(PR=c("48","59","24","35")),vectors=cf[[ds]]) %>%
mutate(Year=paste0("20",substr(ds,3,4)))
}) %>%
bind_rows() %>%
select(Name=`Region Name`,GeoUID,Year,Households,fam,ind) %>%
mutate(Name=gsub("| \\/.+$| \\(.+$","",Name)) %>%
mutate(Households=fam+ind) |>
group_by(Name) %>%
mutate(Change=(Households/lag(Households,order_by = Year))^(1/5)) |>
mutate(Source="Census (census families)")
economic_families <- c("CA01","CA06","CA11","CA16","CA21") %>%
lapply(function(ds){
get_census(ds,regions=list(PR=c("48","59","24","35")),vectors=ef[[ds]]) %>%
mutate(Year=paste0("20",substr(ds,3,4)))
}) %>%
bind_rows() %>%
select(Name=`Region Name`,GeoUID,Year,Households,fam,ind) %>%
mutate(Name=gsub("| \\/.+$| \\(.+$","",Name)) %>%
mutate(Households=fam+ind) |>
group_by(Name) %>%
mutate(Change=(Households/lag(Households,order_by = Year))^(1/5)) |>
mutate(Source="Census (economic families)")
pd <- bind_rows(hec_data %>%
filter(grepl(", households",`Socio-demographic characteristics`),
grepl("Alberta|British|Ontario|Quebec",`Socio-demographic characteristics`),
Quintile=="All quintiles") %>%
group_by(`Socio-demographic characteristics`) %>%
mutate(Change=val_norm/lag(val_norm,order_by = Date)) %>%
mutate(Year=strftime(Date,"%Y")) %>%
select(Name=`Socio-demographic characteristics`,Households=val_norm,Change,Year,Date) %>%
mutate(Name=gsub(", households","",Name),
Source="Household economic accounts"),
census_households %>%
mutate(Source="Census (households)",
Date=as.Date(paste0(Year,"-05-10"))),
t1ff %>% mutate(Source="T1FF (census families)",
Date=as.Date(paste0(Year,"-07-01"))),
census_families |> mutate(Date=as.Date(paste0(Year,"-05-10"))),
economic_families |> mutate(Date=as.Date(paste0(Year,"-05-10")))) |>
mutate(Source=factor(Source,levels=c("Census (households)","Household economic accounts",
"Census (economic families)","Census (census families)",
"T1FF (census families)"))) |>
mutate(Name=factor(Name,levels=c("Ontario","Quebec","British Columbia","Alberta")))
ggplot(pd,aes(x=Date,y=Households,colour=Name,
group=interaction(Name,Source),
shape=fct_rev(Source),linetype=fct_rev(Source))) +
geom_point() +
scale_y_continuous(labels=function(d)scales::comma(d,scale=10^-6,suffix="M")) +
scale_colour_manual(values=sanzo::quads$c252) +
geom_line() +
labs(title="Household and family unit estimates",
y="Number of households or family units",
x=NULL,
linetype="Source",
shape="Source",
caption="StatCan Census 2001-2021, Table 36-10-0101, 11-10-0012")