Skip to content

Commit b135f87

Browse files
committedMar 24, 2020
Update the base_household_demographics.csv file with 125k household from
survey data Add the R file which did the data conversion
1 parent 5542330 commit b135f87

File tree

3 files changed

+66
-2
lines changed

3 files changed

+66
-2
lines changed
 

‎R/demographics.R

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
library( data.table)
2+
library( robUtils)
3+
4+
5+
all = list()
6+
for( idx in 2all:18 )
7+
{
8+
let = tolower( LETTERS[idx])
9+
10+
file = sprintf( "/Users/hinchr/Downloads/UKDA-6614-tab/tab/bhps_w%d/b%s_hhresp.tab", idx, let)
11+
d = fread( file )
12+
oldCols = c( "b%s_hid", "b%s_nch02_dv", "b%s_nch34_dv" , "b%s_nch511_dv" , "b%s_nch1215_dv")
13+
oldCols = sprintf( oldCols, let )
14+
cols = c( "hid", "c0_2", "c3_4", "c5_11", "c12_15")
15+
setnames( d, oldCols, cols )
16+
kids = utils.data.table.project(d, cols)
17+
kids[ , est_10_11 := rbinom( kids[,.N ], c5_11, 2/7)]
18+
19+
file = sprintf("/Users/hinchr/Downloads/UKDA-6614-tab/tab/bhps_w%d/b%s_indresp.tab", idx, let)
20+
d = fread( file )
21+
oldCols = c( "b%s_hid", "b%s_istrtdaty", "b%s_doby")
22+
oldCols = c( "pid", sprintf( oldCols, let ) )
23+
cols = c( "pid", "hid", "dint", "dob")
24+
setnames( d, oldCols, cols )
25+
adults = utils.data.table.project(d, cols)
26+
adults[ , age := dint - dob]
27+
adults[ ,age_group := ifelse( age < 80, sprintf( "a_%d_%d", 10 * floor( age / 10 ), 10 * floor( age / 10 ) +9), "a_80+" ) ][order(age)]
28+
adults = dcast.data.table( adults[ age<120], hid~ age_group, fun.aggregate = length, value.var = "age_group" )
29+
30+
comb = kids[ adults, on ="hid"]
31+
comb[ , a_10_19 := a_10_19 + est_10_11 ]
32+
comb[ , a_0_9 := c0_2 + c3_4 + c5_11 - est_10_11]
33+
combCols = c( "a_0_9", "a_10_19" ,"a_20_29", "a_30_39", "a_40_49" ,"a_50_59" ,"a_60_69" ,"a_70_79", "a_80+" )
34+
comb = utils.data.table.project( comb, combCols )
35+
all[[idx]] = comb;
36+
}
37+
all = rbindlist( all, use.names = TRUE);
38+
all[ , total := utils.data.table.rowSums(all)]
39+
large = all[ total > 6]
40+
all = all[ total <= 6]
41+
all = utils.data.table.project(all, combCols)
42+
43+
44+
for( idx in 1:large[,.N])
45+
{
46+
house = c()
47+
for( a in 1:9)
48+
{
49+
if( large[idx, get( combCols[a] )] > 0 )
50+
house = c( house, rep( combCols[a] , large[idx, get( combCols[a])]))
51+
}
52+
house = sample( house, 6);
53+
for( a in 1:9 )
54+
large[idx, a] = 0
55+
for( a in 1:6)
56+
large[idx, which( combCols == house[a])] = large[idx,get(house[a])] +1
57+
}
58+
large = utils.data.table.project(large, combCols)
59+
all = rbindlist( list( all, large), use.names = TRUE)
60+
fwrite( all, file ="baseline_household_demographics.csv")
61+
62+
63+

‎tests/data/baseline_parameters.csv

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
rng_seed,param_id,n_total,mean_work_interactions_child,mean_work_interactions_adult,mean_work_interactions_elderly,daily_fraction_work,mean_random_interactions_child,mean_random_interactions_adult,mean_random_interactions_elderly,child_network_adults,elderly_network_adults,days_of_interactions,end_time,n_seed_infection,mean_infectious_period,sd_infectious_period,infectious_rate,mean_time_to_symptoms,sd_time_to_symptoms,mean_time_to_hospital,mean_time_to_critical,mean_time_to_recover,sd_time_to_recover,mean_time_to_death,sd_time_to_death,fraction_asymptomatic,asymptomatic_infectious_factor,mean_asymptomatic_to_recovery,sd_asymptomatic_to_recovery,household_size_1,household_size_2,household_size_3,household_size_4,household_size_5,household_size_6,population_child,population_adult,population_elderly,population_0_9,population_10_19,population_20_29,population_30_39,population_40_49,population_50_59,population_60_69,population_70_79,population_80,seasonal_flu_rate,relative_susceptibility_0_9,relative_susceptibility_10_19,relative_susceptibility_20_29,relative_susceptibility_30_39,relative_susceptibility_40_49,relative_susceptibility_50_59,relative_susceptibility_60_69,relative_susceptibility_70_79,relative_susceptibility_80,relative_transmission_household,relative_transmission_workplace,relative_transmission_random,hospitalised_fraction_0_9,hospitalised_fraction_10_19,hospitalised_fraction_20_29,hospitalised_fraction_30_39,hospitalised_fraction_40_49,hospitalised_fraction_50_59,hospitalised_fraction_60_69,hospitalised_fraction_70_79,hospitalised_fraction_80,critical_fraction_0_9,critical_fraction_10_19,critical_fraction_20_29,critical_fraction_30_39,critical_fraction_40_49,critical_fraction_50_59,critical_fraction_60_69,critical_fraction_70_79,critical_fraction_80,fatality_fraction_0_9,fatality_fraction_10_19,fatality_fraction_20_29,fatality_fraction_30_39,fatality_fraction_40_49,fatality_fraction_50_59,fatality_fraction_60_69,fatality_fraction_70_79,fatality_fraction_80,quarantine_length_self,quarantine_length_traced,quarantine_length_positive,quarantine_dropout_self,quarantine_dropout_traced,quarantine_dropout_positive,test_on_symptoms,test_on_traced,quarantine_on_traced,traceable_interaction_fraction,tracing_network_depth,allow_clinical_diagnosis,quarantine_household_on_positive,quarantine_household_on_symptoms,quarantine_household_on_traced,quarantine_household_contacts_on_positive,quarantined_daily_interactions,quarantine_days,hospitalised_daily_interactions,test_insensitive_period,test_order_wait,test_result_wait,sys_write_individual,sys_write_timeseries,self_quarantine_fraction,app_users_fraction,app_turn_on_time,social_distancing_work_network_multiplier,social_distancing_random_network_multiplier,social_distancing_house_interaction_multiplier,social_distancing_time_on,social_distancing_time_off,N_REFERENCE_HOUSEHOLDS
2-
1,1,100000,10,7,3,0.5,2,4,3,0.2,0.2,10,250,50,6.0,2.0,2.5,5.5,2.5,1.6,1.5,12.0,5.0,12.0,5.0,0.2,0.25,15.0,5.0,8197.0,9609.0,4287.0,3881.0,1254.0,597.0,14.05,40.22,10.04,8052552,7528144,8711750,8835591,8715439,8968055,7069544,5487167,3281955,0.005,0.1,0.1,0.48,1.11,1.02,1.74,2.34,2.03,2.24,2.0,1.0,1.0,0.001,0.003,0.012,0.032,0.045,0.102,0.166,0.243,0.273,0.05,0.05,0.05,0.05,0.063,0.122,0.274,0.432,0.709,0.33,0.25,0.5,0.5,0.5,0.69,0.65,0.88,1.0,14,14,14,0.01,0.01,0.01,1,1,1,0.8,1,1,1,1,1,1,0,5,0,3,1,1,0,1,0.8,0.85,75,0.2,0.2,3.0,50,75,50
2+
1,1,100000,10,7,3,0.5,2,4,3,0.2,0.2,10,250,50,6.0,2.0,2.5,5.5,2.5,1.6,1.5,12.0,5.0,12.0,5.0,0.2,0.25,15.0,5.0,8197.0,9609.0,4287.0,3881.0,1254.0,597.0,14.05,40.22,10.04,8052552,7528144,8711750,8835591,8715439,8968055,7069544,5487167,3281955,0.005,0.1,0.1,0.48,1.11,1.02,1.74,2.34,2.03,2.24,2.0,1.0,1.0,0.001,0.003,0.012,0.032,0.045,0.102,0.166,0.243,0.273,0.05,0.05,0.05,0.05,0.063,0.122,0.274,0.432,0.709,0.33,0.25,0.5,0.5,0.5,0.69,0.65,0.88,1.0,14,14,14,0.01,0.01,0.01,1,1,1,0.8,1,1,1,1,1,1,0,5,0,3,1,1,0,1,0.8,0.85,75,0.2,0.2,3.0,50,75,125455

‎tests/data/baseline_parameters_transpose.csv

+2-1
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,5 @@ social_distancing_work_network_multiplier 0.2
118118
social_distancing_random_network_multiplier 0.2
119119
social_distancing_house_interaction_multiplier 3.0
120120
social_distancing_time_on 50
121-
social_distancing_time_off 75
121+
social_distancing_time_off 75
122+
N_REFERENCE_HOUSEHOLDS 125455

0 commit comments

Comments
 (0)
Please sign in to comment.