-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdisability-analysis-examples.R
More file actions
107 lines (76 loc) · 2.87 KB
/
disability-analysis-examples.R
File metadata and controls
107 lines (76 loc) · 2.87 KB
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
98
99
100
# Set-up
library(tidyverse)
library(survey)
# Note: this is completely synthetic, outputs may not make sense
data <- read.csv('raw_data/example-disability-data.csv')
# Coding indicators
data <- data |>
mutate(primary_education = NA)
data <- data |>
mutate(primary_education = ifelse(age >= 15, 0, primary_education))
data <- data |>
mutate(primary_education = ifelse(primary_education %in% 0
& grade_completed %in% 16:45,
1, primary_education))
data <- data |>
mutate(primary_education = ifelse(age >= 15
& is.na(grade_completed),
0, primary_education))
# Coding categorical variables
data <- data |>
mutate(age_groups = case_when(
age >= 5 & age < 18 ~ "5 to 17",
age >= 18 & age < 50 ~ "18 to 49",
age >= 50 ~ "50+"
),
age_groups = factor(age_groups,
levels = c("5 to 17","18 to 49","50+")))
data <- data |>
mutate(disability = NA,
disability = ifelse(!is.na(seeing) & !is.na(hearing)
& !is.na(mobility) & !is.na(memory)
& !is.na(selfcare) & !is.na(communication)
& age >= 5, 0, disability),
disability = ifelse(disability %in% 0
& (seeing %in% 3:4
| hearing %in% 3:4
| mobility %in% 3:4
| memory %in% 3:4
| selfcare %in% 3:4
| communication %in% 3:4),
1, disability))
# Calculating absolute numbers
data |> count(disability)
data |> count(disability, age_groups)
data |> count(disability, age_groups, sex)
data |> count(disability, sex, wt = sweight)
# Estimating measures of prevalance
data |>
filter(!is.na(primary_education)) |>
count(primary_education) |>
mutate(prop = n/sum(n))
data |>
filter(!is.na(disability)) |>
count(disability) |>
mutate(prop = n/sum(n))
# Utilising the survey packag
design <- svydesign(ids = ~cluster, weights = ~sweight,
strata = ~strata, data = data)
svyciprop(~I(disability == 1), design, method = "logit", na.rm = TRUE)
# Stratifying measures of prevalance
data |>
filter(!is.na(disability), !is.na(age_groups)) |>
group_by(age_groups) |>
count(disability) |>
mutate(prop = n/sum(n))
data |>
filter(!is.na(disability),
!is.na(sex),
!is.na(primary_education)) |>
group_by(disability, sex) |>
count(primary_education) |>
mutate(prop = n/sum(n))
design <- svydesign(ids = ~cluster, weights = ~sweight,
strata = ~strata, data = data)
svyby(~I(primary_education == 1), ~sex + disability, design,
svyciprop, method = "logit", vartype = "ci", na.rm = TRUE)