##A trivial example-------------------------------------------------------
library(graphics)
onset<-sample(c(seq(1,10),rep(Inf,20)),size=500,replace=TRUE)
hh<-sample(seq(1,300),size=500,replace=TRUE)
chain<-household_transmission(onset_date = onset, household_index = hh,
followup_time = 10, iterations = 100)
community_attack_rate(SIRmcmc=chain)
secondary_attack_rate(household_size=3,SIRmcmc=chain)
##An example with household transmission---------------------------------
library(graphics)
data(hh.transmission)
set.seed(1)
iterations<-100
T<-30
delta<-c(0.1,0.6,0.8)
index<-0
##Find the MCMC estimates of alpha, beta, and gamma
chain<-household_transmission(
onset_date=hh.transmission$onset,
household_index=hh.transmission$household,
covariate=NULL,
followup_time=T,
iterations=iterations,
delta=delta,
prior=unifprior,
index=index
)
#Tabulate true type of transmission
hh_table<-table(
table(
is.finite(MCMC_date(hh.transmission$onset)),
hh.transmission$household)["TRUE",]
)
##Calculate the true SAR
truth_table<-table(hh.transmission$transmission)
truth<-unname(truth_table["Household"]/sum(hh_table[2:3]))
cat("\n\nTrue Value of SAR\n\n")
print(truth)
##Find point and 95% central creditable intervals for MCMC SAR
cat("\n\nMCMC Estimate of SAR\n\n")
secondary_attack_rate(household_size=2,SIRmcmc=chain)
days<-NULL
for(d in c(seq(1:5))){
days<-c(days,as.character(d))
a<-sum(table(tapply(X=hh.transmission$onset,INDEX=hh.transmission$household,FUN=diff))[days])
cat(
paste0(
"\n\n",
d,
" Day Counting Estimate of SAR\n\n"
)
)
##Find point and 95% confidence intervals for normal approx to SAR
print(
a/sum(hh_table[2:3])+c(p=0,LB=-1,UB=1) *
qnorm(p=0.975) *
sqrt(a*(hh_table[2]+hh_table[3]-a)/(hh_table[2]+hh_table[3])^3)
)
}
##An example with rate ratios----------------------------------------
if (FALSE) {
library(graphics)
data(hh.transmission.epsilon)
set.seed(1)
iterations<-100
T<-30
delta<-c(0.1,0.1,0.1,0.1)
index<-0
##Find the MCMC estimates of alpha, beta, gamma, and epsilon
chain<-household_transmission(
onset_date=hh.transmission.epsilon$onset,
household_index=hh.transmission.epsilon$household,
covariate=hh.transmission.epsilon$epsilon,
followup_time=T,
iterations=iterations,
delta=delta,
prior=unifprior,
index=index
)
##Find point and 95% central creditable intervals for MCMC SAR
cat("\n\nMCMC Estimate of SAR\n\n")
print(secondary_attack_rate(household_size=2,SIRmcmc=chain))
for(e in c(1,5)){
hh_table<-table(table(
is.finite(MCMC_date(hh.transmission.epsilon$onset)),
hh.transmission.epsilon$household,
hh.transmission.epsilon$epsilon)["TRUE",,as.character(e)])
##Tabulate true type of transmission
truth_table<-table(
hh.transmission.epsilon$transmission[which(
hh.transmission.epsilon$epsilon==e
)])
##Calculate the true SAR
truth<-unname(truth_table["Household"]/sum(hh_table[2:3]))
cat("\n\nTrue Value of SAR\n\n")
print(truth)
days<-NULL
for(d in c(seq(1:5))){
days<-c(days,as.character(d))
a<-sum(table(tapply(
X=hh.transmission.epsilon$onset[which(hh.transmission.epsilon$epsilon==e)],
INDEX=hh.transmission.epsilon$household[which(hh.transmission.epsilon$epsilon==e)],
FUN=diff))[days])
##Find point and 95% confidence intervals for normal approx to SAR
cat(paste0(
"\n\n",
d,
" Day Counting Estimate of SAR\n\n"
))
print(
a/sum(hh_table[2:3])+c(p=0,LB=-1,UB=1)
* qnorm(p=0.975)
* sqrt(a*(hh_table[2]+hh_table[3]-a)/(hh_table[2]+hh_table[3])^3)
)
}
}
}
Run the code above in your browser using DataLab