4 Calculating SIMD
For the final calculation of the SIMD ranks we follow a few simple steps, see the script scripts/calculations/openSIMD.R
:
- load packages and data
- inverse domain rankings
- exponentially transform the inversed domain rankings
- combine transformed domain scores
- rank final SIMD scores
First, we load the packages and data from the previous domain rank calculations.
library(dplyr)
source("../openSIMD_analysis/scripts/utils/helpers.R")
domains <- read.csv("../openSIMD_analysis/results/domain_ranks.csv")
Then we invert the domain rankings (so that 1 = least deprived) and exponentially transform them, using expoTransform
. This step spreads out the scores at the deprived end of each domain, so that where an area is deprived in one domain, this deprivation won’t be cancelled out by a lack of deprivation in another domain.
invRank <- function(v) rank(-v)
exponential_domains <- domains %>%
mutate_at(vars(-data_zone), funs(invRank)) %>%
mutate_at(vars(-data_zone), funs(expoTransform))
We then combine the domain ranks using fixed weightings.
with(exponential_domains, {
simd_score <<-
.28 * income +
.28 * employment +
.14 * health +
.14 * education +
.09 * access +
.05 * crime +
.02 * housing
})
Finally, we rank the final SIMD score to get the SIMD rankings (1 = most deprived).
simd_rank <- rank(-simd_score)
SIMD and domain ranks are saved in results/domain_ranks.csv
and results/openSIMD_ranks.csv
.