-
Notifications
You must be signed in to change notification settings - Fork 0
/
AI_simulations.R
96 lines (80 loc) · 2.99 KB
/
AI_simulations.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
###############################################
# Simulation study using Algorithm I #
#---------------------------------------------#
# Investigating various scenarios #
# (see Section 4.1.1) #
###############################################
source("functions/algorithm_I.R")
source("functions/mc_simI_functions.R")
nsim = 1000
##################################################################################
#################
# Scenarios I.1 #
#################
thresholds = c(0,100,200,300,400,500)
n_sizes = c(100,300,500,800,1000)
coef_est = NULL
set.seed(30042007)
for(nn in n_sizes){
print(paste0('Sample size: ', nn))
pb = txtProgressBar(min = 0, max = length(thresholds), style = 3, width = 50, char = "=")
for(tt in 1:length(thresholds)){
result = mc.sim.algI(B = nsim, pi.compliance = 0, tau.rule = thresholds[tt],
n.size = nn, trunc = FALSE)
coef_est = rbind.data.frame(coef_est,result)
setTxtProgressBar(pb, tt)
}
close(pb)
}
save(coef_est, file='results/algorithmI/s1_coefs.Rdata')
# Check glm convergence
coef_est = repeat.nonconverged.fit(coef_est)
##################################################################################
#################
# Scenarios I.2 #
#################
thresholds = c(0,100,200,300,400,500)
trunc_vec = c(FALSE,TRUE,TRUE,TRUE)
perc_matrix = matrix(c(NA,NA,1,99,5,95,10,90), nrow=4, byrow=T)
coef_est = NULL
set.seed(30042007)
for(i in 1:length(trunc_vec)){
print(paste0('Weight truncation: ',perc_matrix[i,1],'-',perc_matrix[i,2]))
pb = txtProgressBar(min = 0, max = length(thresholds), style = 3, width = 50, char = "=")
for(tt in 1:length(thresholds)){
result = mc.sim.algI(B = nsim, pi.compliance = 0, tau.rule = thresholds[tt],
n.size = 1000, trunc = trunc_vec[i],
trunc.percentiles = as.vector(perc_matrix[i,]))
coef_est = rbind.data.frame(coef_est,result)
setTxtProgressBar(pb, tt)
}
close(pb)
}
save(coef_est, file='results/algorithmI/s2_coefs.Rdata')
# Check glm convergence
coef_est = repeat.nonconverged.fit(coef_est)
##################################################################################
#################
# Scenarios I.3 #
#################
thresholds = c(0,100,200,300,400,500)
pi_values = c(0.1,0.3,0.5,0.8,1)
coef_est = NULL
set.seed(30042007)
for(pp in pi_values){
print(paste0('Compliance threshold: ', pp))
pb = txtProgressBar(min = 0, max = length(thresholds), style = 3, width = 50, char = "=")
for(tt in 1:length(thresholds)){
for(i in c(FALSE,TRUE)){
result = mc.sim.algI(B = nsim, pi.compliance = pp, tau.rule = thresholds[tt],
n.size = 1000, trunc=i)
coef_est = rbind.data.frame(coef_est,result)
setTxtProgressBar(pb, tt)
}
}
close(pb)
}
save(coef_est, file='results/algorithmI/s3_coefs.Rdata')
# Check glm convergence
coef_est = repeat.nonconverged.fit(coef_est)
save(coef_est, file='results/algorithmI/s3_coefs_converged.Rdata')