forked from britishredcrosssociety/covid-19-vulnerability
-
Notifications
You must be signed in to change notification settings - Fork 0
/
prep deprivation - England.r
97 lines (74 loc) · 4.49 KB
/
prep deprivation - England.r
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
##
## Create an index of multiple deprivation based on income, education, barriers to housing/services, and living environment
## - summarise these into wards by counting the proportion of a ward's LSOAs that are in the 20% most deprived in the country
## - for England only (at the moment)
##
## To do:
## - could include income deprivation affecting older people
## - population-weight the aggregated measures?
##
library(tidyverse)
library(httr)
library(readxl)
library(janitor)
library(Hmisc)
source("load lookup tables.r")
lsoa_ward = load_lookup_lsoa_ward(2017)
lsoa_lad = load_lookup_lsoa_msoa_lad()
lad_17_19 = read_csv("data/LAD 2017 to LAD 2019 codes.csv") # lookup of Local Authority codes from 2017 to 2019
###############################################################################
## Create an index of multiple deprivation for income, employment, barriers and environment
## - following instructions in Appendix C of https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/833947/IoD2019_Research_Report.pdf
##
# download transformed domain scores from https://www.gov.uk/government/statistics/english-indices-of-deprivation-2019 (File 9)
GET("https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/833994/File_9_-_IoD2019_Transformed_Scores.xlsx",
write_disk(tf <- tempfile(fileext = ".xlsx")))
imd_eng_scores = read_excel(tf, sheet = "IoD2019 Transformed Scores") # check the sheet name is still valid if you're updating the URL above
unlink(tf); rm(tf)
# create the mutiple deprivation index, using recommended weightings
# uncomment the commented lines to replicate the full IMD, to check this process works (it does)
imd_eng_covid = imd_eng_scores %>%
select(LSOA11CD = `LSOA code (2011)`, Income = `Income Score - exponentially transformed`, Employment = `Employment Score - exponentially transformed`
, Barriers = `Barriers Score - exponentially transformed`, Environment = `Living Environment Score - exponentially transformed`
# , Education = `Education Score - exponentially transformed`, Health = `Health Score - exponentially transformed`, Crime = `Crime Score - exponentially transformed`
) %>%
# rather than re-weight based on a subset of domains, the guidance says to set weighting for unused domains to zero, so we'll use the original weights here
mutate(imd_score = (Income * 22.5) + (Employment * 22.5) + (Barriers * 9.3) + (Environment * 9.3)
# + (Health * 13.5) + (Education * 13.5) + (Crime * 9.3)
) %>%
# calculate IMD rank
mutate(IMD_rank = nrow(imd_eng_scores) - rank(imd_score) + 1) %>% # need to reverse the scoring of R's ranking algorithm to get the same style of ranking as in IMD; add 1 to make it not zero-based
# calculate IMD decile
mutate(IMD_decile = as.integer(cut2(imd_eng_rank, g = 10)),
IMD_quintile = as.integer(cut2(imd_eng_rank, g = 5)))
write_csv(imd_eng_covid, "output/covid-deprivation-england-LSOA.csv")
###############################################################################
## Calculate proportion of the most-deprived LSOAs in each ward
##
imd_eng_covid_ward = imd_eng_covid %>%
left_join(lsoa_ward, by = "LSOA11CD") %>%
# label LSOAs by whether they're in top 20% most-deprived then summarise by this label
mutate(IMD_top20 = ifelse(IMD_decile <= 2, "Top20", "Other")) %>%
tabyl(WD17CD, IMD_top20) %>%
# calculate proportion of most deprived LSOAs
mutate(Prop_top20 = Top20 / (Top20 + Other)) %>%
# split into quintiles
mutate(Deprivation_q = as.integer(cut2(Prop_top20, g = 5))) %>%
select(-Other, -Top20)
write_csv(imd_eng_covid_ward, "output/covid-deprivation-england-ward.csv")
###############################################################################
## Calculate proportion of the most-deprived LSOAs in each Local Authority
##
imd_eng_covid_lad = imd_eng_covid %>%
left_join(lsoa_lad, by = "LSOA11CD") %>%
left_join(lad_17_19, by = "LAD17CD") %>%
# label LSOAs by whether they're in top 20% most-deprived then summarise by this label
mutate(IMD_top20 = ifelse(IMD_decile <= 2, "Top20", "Other")) %>%
tabyl(LAD19CD, IMD_top20) %>%
# calculate proportion of most deprived LSOAs
mutate(Prop_top20 = Top20 / (Top20 + Other)) %>%
# split into quintiles
mutate(Deprivation_q = as.integer(cut2(Prop_top20, g = 5))) %>%
select(-Other, -Top20)
write_csv(imd_eng_covid_lad, "output/covid-deprivation-england-LA.csv")
rm(imd_eng_scores, lsoa_ward, lsoa_lad, lad_17_19)