########################################################################################################## ### R code for Simulation Studies----Dosage selection in Section 5.2 ### MA and MCDERMOTT Generalized Multiple Contrast Tests in Dose-Response Studies ### Table A1 in Appendix, Dosage selection of MCP-Mod, Tippett, Fisher and Inverse normal ### MSE and Bias of the MED estimator ### Using minimum raw p-value, AIC and model averaging to find the MED ### Only consider the narrower candidate set of models in Bretz et al (2005) ### R program written by Shiyang Ma at 2018-12-22 ########################################################################################################## ### Simulation studies were conducted using R studio version: 3.5.0 under Nemo, a Red Hat Linux server in the ### Department of Biostatistics and Computational Biology at University of Rochester Medical Center. ### Random numbers were generated using R package 'mvtnorm' version 1.0-8. ### Please note that different versions of R studio might generate slightly different simulation results since the ### R package 'mvtnorm' might have different version and thus have different random number generators even for the ### same seed. But the difference should be negligible (within simulation error). ########Using the same simulation setting at Bretz et al 2005 simulation studies ################## library("mvtnorm") d=c(0,0.05, 0.2, 0.6, 1) #Only consider 6 data generating dose-response shapes in the candidate set: #Emax, L-L, Linear, E1, Q1, Logistic #Emax mu1=0.2+0.7*d/(0.2+d) #Linear in log-dose mu2=0.2+0.6*log(5*d+1)/log(6) #Linear mu3=0.2+0.6*d #Exponential 1 mu4=0.183+0.017*exp(2*d*log(6)) #Quadratic 1 mu5=0.2+2.049*d-1.749*d^2 #Logistic mu6=0.193+0.607/(1+exp(10*log(3)*(0.4-d))) mu_gen=cbind(mu1,mu2,mu3,mu4,mu5,mu6) #Contrasts of 6 candidate models: contrast=function(mu){ (mu-mean(mu))/norm(mu-mean(mu),type='2') } c1=contrast(mu1) #Emax c2=contrast(mu2) #L-L c3=contrast(mu3) #Linear c4=contrast(mu4) #E1 c5=contrast(mu5) #Q1 c6=contrast(mu6) #logistic rho12=sum(c1*c2)/sqrt(sum(c1^2)*sum(c2^2)) rho13=sum(c1*c3)/sqrt(sum(c1^2)*sum(c3^2)) rho14=sum(c1*c4)/sqrt(sum(c1^2)*sum(c4^2)) rho15=sum(c1*c5)/sqrt(sum(c1^2)*sum(c5^2)) rho16=sum(c1*c6)/sqrt(sum(c1^2)*sum(c6^2)) rho23=sum(c2*c3)/sqrt(sum(c2^2)*sum(c3^2)) rho24=sum(c2*c4)/sqrt(sum(c2^2)*sum(c4^2)) rho25=sum(c2*c5)/sqrt(sum(c2^2)*sum(c5^2)) rho26=sum(c2*c6)/sqrt(sum(c2^2)*sum(c6^2)) rho34=sum(c3*c4)/sqrt(sum(c3^2)*sum(c4^2)) rho35=sum(c3*c5)/sqrt(sum(c3^2)*sum(c5^2)) rho36=sum(c3*c6)/sqrt(sum(c3^2)*sum(c6^2)) rho45=sum(c4*c5)/sqrt(sum(c4^2)*sum(c5^2)) rho46=sum(c4*c6)/sqrt(sum(c4^2)*sum(c6^2)) rho56=sum(c5*c6)/sqrt(sum(c5^2)*sum(c6^2)) Sigma=matrix(c(1,rho12, rho13,rho14,rho15, rho16, rho12, 1, rho23, rho24,rho25, rho26, rho13, rho23, 1, rho34, rho35, rho36, rho14, rho24, rho34, 1, rho45, rho46, rho15, rho25, rho35, rho45, 1, rho56, rho16, rho26, rho36, rho46, rho56, 1 ),nrow=6,ncol=6) ##Indicator for all 2^6-1=63 subset intersections of Closed Testing Procedure (CTP) Ind=matrix(0,nrow=6,ncol=63) #col1 of Ind Step1 combn(1:6,6) Ind[combn(1:6,6),1]=1 #col 2 to 7 of Ind Step2 choose(6, 5) for (i in 1:choose(6, 5)){ Ind[,(choose(6, 6)+1):(choose(6, 6)+choose(6, 5))][combn(1:6,5)[,i],i]=1 } #col 8 to 22 of Ind Step3 choose(6, 4) for (i in 1:choose(6, 4)){ Ind[,(choose(6, 6)+choose(6, 5)+1):(choose(6, 6)+choose(6, 5)+choose(6, 4))][combn(1:6,4)[,i],i]=1 } #col 23 to 42 of Ind Step4 choose(6, 3) for (i in 1:choose(6, 3)){ Ind[,(choose(6, 6)+choose(6, 5)+choose(6, 4)+1): (choose(6, 6)+choose(6, 5)+choose(6, 4)+choose(6, 3))][combn(1:6,3)[,i],i]=1 } #col 43 to 57 of Ind Step5 choose(6, 2) for (i in 1:choose(6, 2)){ Ind[,(choose(6, 6)+choose(6, 5)+choose(6, 4)+choose(6, 3)+1): (choose(6, 6)+choose(6, 5)+choose(6, 4)+choose(6, 3)+choose(6, 2))][combn(1:6,2)[,i],i]=1 } #col 58 to 63 of Ind Step6 choose(6, 1) for (i in 1:choose(6, 1)){ Ind[,(choose(6, 6)+choose(6, 5)+choose(6, 4)+choose(6, 3)+choose(6, 2)+1): (choose(6, 6)+choose(6, 5)+choose(6, 4)+choose(6, 3)+choose(6, 2)+choose(6, 1))][combn(1:6,1)[,i],i]=1 } ############################################################################################# #Write a dosage function to conduct dosage selection: dosage=function(nsim=10000, n=25, mu=mu_gen[,1], sigma=0.65){ set.seed(12345) ddf=n*5-5 d0=seq(0,1,by=0.005) gamma=0.1 #MED estimates for four procedures: MCP-Mod, Tippett, Fisher and inverse normal #and three different criteria: min p-value, AIC, model averaging MED_MCPMod_minp=rep(NA,nsim) MED_MCPMod_AIC=rep(NA,nsim) MED_MCPMod_ave=rep(NA,nsim) MED_T_minp=rep(NA,nsim) MED_T_AIC=rep(NA,nsim) MED_T_ave=rep(NA,nsim) MED_F_minp=rep(NA,nsim) MED_F_AIC=rep(NA,nsim) MED_F_ave=rep(NA,nsim) MED_N_minp=rep(NA,nsim) MED_N_AIC=rep(NA,nsim) MED_N_ave=rep(NA,nsim) #Candidate set candidate=c('Emax','L-L', 'Lin', 'E', 'Q', 'Logist') for (s in 1:nsim){ #generate data with 5 dose group, sigma=1.478 Y=rmvnorm(n,mean=mu,sigma = diag(sigma^2,nrow=5,ncol=5)) #Response resp=c(Y[,1], Y[,2],Y[,3], Y[,4],Y[,5]) dose=c(rep(0,n),rep(0.05,n),rep(0.2,n),rep(0.6,n),rep(1,n)) #Multiple contrast test ybar1=mean(resp[dose==0]) ybar2=mean(resp[dose==0.05]) ybar3=mean(resp[dose==0.2]) ybar4=mean(resp[dose==0.6]) ybar5=mean(resp[dose==1]) ybar=c(ybar1,ybar2,ybar3,ybar4,ybar5) #contrast estimate of 6 models ce1=sum(c1*ybar) ce2=sum(c2*ybar) ce3=sum(c3*ybar) ce4=sum(c4*ybar) ce5=sum(c5*ybar) ce6=sum(c6*ybar) ce=c(ce1,ce2,ce3,ce4,ce5,ce6) #T-value S2=(sum((resp[dose==0]-ybar1)^2)+sum((resp[dose==0.05]-ybar2)^2)+ sum((resp[dose==0.2]-ybar3)^2)+sum((resp[dose==0.6]-ybar4)^2)+ sum((resp[dose==1]-ybar5)^2))/ddf t1=ce1/sqrt(S2*sum(c1^2)/n) t2=ce2/sqrt(S2*sum(c2^2)/n) t3=ce3/sqrt(S2*sum(c3^2)/n) t4=ce4/sqrt(S2*sum(c4^2)/n) t5=ce5/sqrt(S2*sum(c5^2)/n) t6=ce6/sqrt(S2*sum(c6^2)/n) t=c(t1,t2,t3,t4,t5,t6) #Dependent p values p1=pt(t1,df=ddf,lower.tail = F) p2=pt(t2,df=ddf,lower.tail = F) p3=pt(t3,df=ddf,lower.tail = F) p4=pt(t4,df=ddf,lower.tail = F) p5=pt(t5,df=ddf,lower.tail = F) p6=pt(t6,df=ddf,lower.tail = F) p=c(p1,p2,p3,p4,p5,p6) #Fit all 6 models in the candidate set to see if they are successfully fitted or not #indicator of model successfully fit ind_fit=rep(T,length(candidate)) tryCatch(nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)), error=function(e) { ind_fit[1] <<- F }) tryCatch(lm(resp~log(5*dose+1)), error=function(e) { ind_fit[2]<<- F }) tryCatch(lm(resp~dose), error=function(e) { ind_fit[3]<<- F }) tryCatch(nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))), error=function(e) { ind_fit[4]<<-F }) d=dose d2=dose^2 tryCatch(lm(resp ~ d+d2), error=function(e) { ind_fit[5]<<-F }) tryCatch(nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta)), start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))), error=function(e) { ind_fit[6]<<-F }) #Models that are successfully fit model_fit=candidate[ind_fit] #Calculate AIC of models that are successfully fit AIC_Emax=NA AIC_LL=NA AIC_Lin=NA AIC_E=NA AIC_Q=NA AIC_Logist=NA if ('Emax' %in% model_fit ) { fit_Emax=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) AIC_Emax=AIC(fit_Emax) } if ('L-L' %in% model_fit) { #Lin-log fit_LL=lm(resp~log(5*dose+1)) AIC_LL=AIC(fit_LL) } if ('Lin' %in% model_fit) { fit_Lin=lm(resp~dose) AIC_Lin=AIC(fit_Lin) } if ('E' %in% model_fit) { fit_E=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) AIC_E=AIC(fit_E) } if ('Q' %in% model_fit) { d=dose d2=dose^2 fit_Q=lm(resp~d+d2) AIC_Q=AIC(fit_Q) } if ('Logist' %in% model_fit) { fit_Logist=nls(resp ~ E0+Emax/(1+exp( (ED50-dose)/delta)), start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) AIC_Logist=AIC(fit_Logist) } AIC=c(AIC_Emax, AIC_LL, AIC_Lin, AIC_E, AIC_Q, AIC_Logist) ########################################################################################################## #################################### MCP-Mod############################################################## ########################################################################################################## padj1_MCPMod=1-pmvt(lower=rep(-Inf,6),upper =rep(t1,6), corr=Sigma, df=ddf)[1] padj2_MCPMod=1-pmvt(lower=rep(-Inf,6),upper =rep(t2,6), corr=Sigma, df=ddf)[1] padj3_MCPMod=1-pmvt(lower=rep(-Inf,6),upper =rep(t3,6), corr=Sigma, df=ddf)[1] padj4_MCPMod=1-pmvt(lower=rep(-Inf,6),upper =rep(t4,6), corr=Sigma, df=ddf)[1] padj5_MCPMod=1-pmvt(lower=rep(-Inf,6),upper =rep(t5,6), corr=Sigma, df=ddf)[1] padj6_MCPMod=1-pmvt(lower=rep(-Inf,6),upper =rep(t6,6), corr=Sigma, df=ddf)[1] padj_MCPMod=c(padj1_MCPMod,padj2_MCPMod,padj3_MCPMod,padj4_MCPMod,padj5_MCPMod,padj6_MCPMod) if(min(padj_MCPMod)<0.05){ #There is a signal of dose-response relationship refer_MCPMod=candidate[padj_MCPMod<0.05] ################## min p ################## #Ordered reference sets-min p: refer_order_MCPMod_minp=refer_MCPMod[order(p[padj_MCPMod<0.05],decreasing =FALSE)] #Selece the model in reference set that has minimum p value model_sel_MCPMod_minp=refer_order_MCPMod_minp[1] model_use_MCPMod_minp=NA for (i in 1:length(refer_order_MCPMod_minp)){ fail_fit_Emax=F if (refer_order_MCPMod_minp[i]=='Emax') { #Emax tryCatch(nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)), error=function(e) { fail_fit_Emax <<- T }) if (fail_fit_Emax==F){ model_use_MCPMod_minp='Emax' } } fail_fit_LL=F if (refer_order_MCPMod_minp[i]=='L-L') { #Lin-log tryCatch(lm(resp~log(5*dose+1)), error=function(e) { fail_fit_LL <<- T }) if (fail_fit_LL==F){ model_use_MCPMod_minp='L-L' } } fail_fit_Lin=F if (refer_order_MCPMod_minp[i]=='Lin') { #linear tryCatch(lm(resp~dose), error=function(e) { fail_fit_Lin <<- T }) if (fail_fit_Lin==F){ model_use_MCPMod_minp='Lin' } } fail_fit_E=F if (refer_order_MCPMod_minp[i]=='E') { #Exp tryCatch(nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))), error=function(e) { fail_fit_E<<- T }) if (fail_fit_E==F){ model_use_MCPMod_minp='E' } } fail_fit_Q=F if (refer_order_MCPMod_minp[i]=='Q') { d=dose d2=dose^2 #Quadratic tryCatch(lm(resp~d+d2), error=function(e) { fail_fit_Q <<- T }) if (fail_fit_Q==F){ model_use_MCPMod_minp='Q' } } fail_fit_Logist=F if (refer_order_MCPMod_minp[i]=='Logist') { #Logistic tryCatch(nls(resp ~ E0+Emax/(1+exp( (ED50-dose)/delta )) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))), error=function(e) { fail_fit_Logist <<- T }) if (fail_fit_Logist==F){ model_use_MCPMod_minp='Logist' } } if (!is.na(model_use_MCPMod_minp)){ break } } if (is.na(model_use_MCPMod_minp)){ MED_MCPMod_minp[s]=NA }else{ if(model_use_MCPMod_minp=='Emax'){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_MCPMod_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_MCPMod_minp=='L-L'){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_MCPMod_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_MCPMod_minp=='Lin'){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_MCPMod_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_MCPMod_minp=='E'){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_MCPMod_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_MCPMod_minp=='Q'){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_MCPMod_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_MCPMod_minp=='Logist'){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_MCPMod_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } } ################## AIC ################## #Models in the reference set and are successfully fit refer_MCPMod_fit=refer_MCPMod[is.element(refer_MCPMod, model_fit)] refer_order_MCPMod_AIC=refer_MCPMod_fit[order(AIC[!is.na(AIC) & is.element(candidate, refer_MCPMod)],decreasing =FALSE)] model_use_MCPMod_AIC=refer_order_MCPMod_AIC[1] if (is.na(model_use_MCPMod_AIC)){ MED_MCPMod_AIC[s]=NA }else{ if(model_use_MCPMod_AIC=='Emax'){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_MCPMod_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_MCPMod_AIC=='L-L'){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_MCPMod_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_MCPMod_AIC=='Lin'){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_MCPMod_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_MCPMod_AIC=='E'){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_MCPMod_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_MCPMod_AIC=='Q'){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_MCPMod_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_MCPMod_AIC=='Logist'){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_MCPMod_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } } ################## Model average ################## MED_ave=rep(NA,6) if (length(refer_MCPMod_fit)==0){ MED_MCPMod_ave[s]=NA }else{ if('Emax' %in% refer_MCPMod_fit){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_ave[1]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('L-L' %in% refer_MCPMod_fit){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_ave[2]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if('Lin' %in% refer_MCPMod_fit){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_ave[3]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('E' %in% refer_MCPMod_fit){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_ave[4]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('Q' %in% refer_MCPMod_fit){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_ave[5]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('Logist' %in% refer_MCPMod_fit){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_ave[6]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } #prior weights pw=1/length(refer_MCPMod_fit) w=pw*exp(-AIC[!is.na(AIC) & is.element(candidate, refer_MCPMod)]/2)/sum(pw*exp(-AIC[!is.na(AIC) & is.element(candidate, refer_MCPMod)]/2)) MED_MCPMod_ave[s]=sum(MED_ave[!is.na(MED_ave)]*w) } } ########################################################################################################## #######################################Tippett ########################################################### ########################################################################################################## allp_T=rep(NA,63) allp_T[1]=min(padj_MCPMod) if(allp_T[1]<0.05){ #There is a signal of dose-response relationship #Closure adjusted p-value of Closed testing procedure for (i in 2:57) { t_ind=(Ind[,i]*c(1,2,3,4,5,6))[Ind[,i]*c(1,2,3,4,5,6)>0] tt=(t*Ind[,i])[Ind[,i]>0] Sigmaa=Sigma[t_ind,t_ind] allp_T[i]=1-pmvt(lower=rep(-Inf,sum(Ind[,i])),upper =rep(max(tt),sum(Ind[,i])), corr=Sigmaa, df=ddf)[1] } allp_T[58:63]=p p1_adj_T=max(allp_T[Ind[1,]==1]) p2_adj_T=max(allp_T[Ind[2,]==1]) p3_adj_T=max(allp_T[Ind[3,]==1]) p4_adj_T=max(allp_T[Ind[4,]==1]) p5_adj_T=max(allp_T[Ind[5,]==1]) p6_adj_T=max(allp_T[Ind[6,]==1]) p_adj_T=c(p1_adj_T,p2_adj_T,p3_adj_T,p4_adj_T,p5_adj_T,p6_adj_T) refer_T=candidate[p_adj_T<0.05] if (length(refer_T)!=0) { ######min p ###### #Ordered reference sets using raw p-value: refer_order_T_minp=refer_T[order(p[p_adj_T<0.05],decreasing =FALSE)] model_sel_T_minp=refer_order_T_minp[1] model_use_T_minp=NA for (i in 1:length(refer_order_T_minp)){ fail_fit_Emax=F if (refer_order_T_minp[i]=='Emax') { #Emax tryCatch(nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)), error=function(e) { fail_fit_Emax <<- T }) if (fail_fit_Emax==F){ model_use_T_minp='Emax' } } fail_fit_LL=F if (refer_order_T_minp[i]=='L-L') { #Lin-log tryCatch(lm(resp~log(5*dose+1)), error=function(e) { fail_fit_LL <<- T }) if (fail_fit_LL==F){ model_use_T_minp='L-L' } } fail_fit_Lin=F if (refer_order_T_minp[i]=='Lin') { #linear tryCatch(lm(resp~dose), error=function(e) { fail_fit_Lin <<- T }) if (fail_fit_Lin==F){ model_use_T_minp='Lin' } } fail_fit_E=F if (refer_order_T_minp[i]=='E') { #Exp tryCatch(nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))), error=function(e) { fail_fit_E<<- T }) if (fail_fit_E==F){ model_use_T_minp='E' } } fail_fit_Q=F if (refer_order_T_minp[i]=='Q') { #Quadratic d=dose d2=dose^2 #Quadratic tryCatch(lm(resp~d+d2), error=function(e) { fail_fit_Q <<- T }) if (fail_fit_Q==F){ model_use_T_minp='Q' } } fail_fit_Logist=F if (refer_order_T_minp[i]=='Logist') { #Logistic tryCatch(nls(resp ~ E0+Emax/(1+exp( (ED50-dose)/delta )) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))), error=function(e) { fail_fit_Logist <<- T }) if (fail_fit_Logist==F){ model_use_T_minp='Logist' } } if (!is.na(model_use_T_minp)){ break } } if (is.na(model_use_T_minp)){ MED_T_minp[s]=NA }else{ if(model_use_T_minp=='Emax'){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_T_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_T_minp=='L-L'){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_T_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_T_minp=='Lin'){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_T_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_T_minp=='E'){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_T_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_T_minp=='Q'){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_T_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_T_minp=='Logist'){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_T_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } } ######AIC ###### #Models in reference set and successfully fit refer_T_fit=refer_T[is.element(refer_T, model_fit)] refer_order_T_AIC=refer_T_fit[order(AIC[!is.na(AIC) & is.element(candidate, refer_T)],decreasing =FALSE)] model_use_T_AIC=refer_order_T_AIC[1] if (is.na(model_use_T_AIC)){ MED_T_AIC[s]=NA }else{ if(model_use_T_AIC=='Emax'){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_T_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_T_AIC=='L-L'){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_T_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_T_AIC=='Lin'){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_T_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_T_AIC=='E'){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_T_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_T_AIC=='Q'){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_T_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_T_AIC=='Logist'){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_T_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } } ####Model average#### MED_ave=rep(NA,6) if (length(refer_T_fit)==0){ MED_T_ave[s]=NA }else{ if('Emax' %in% refer_T_fit){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_ave[1]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('L-L' %in% refer_T_fit){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_ave[2]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('Lin' %in% refer_T_fit){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_ave[3]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('E' %in% refer_T_fit){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_ave[4]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if('Q' %in% refer_T_fit){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_ave[5]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if('Logist' %in% refer_T_fit){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_ave[6]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } #prior weights pw=1/length(refer_T_fit) w=pw*exp(-AIC[!is.na(AIC) & is.element(candidate, refer_T)]/2)/sum(pw*exp(-AIC[!is.na(AIC) & is.element(candidate, refer_T)]/2)) MED_T_ave[s]=sum(MED_ave[!is.na(MED_ave)]*w) } } } ########################################################################################################## #######################################Fisher ############################################################ ########################################################################################################## cov12_F=3.279*rho12+0.711*rho12^2+0.727/ddf+0.129*rho12/ddf-0.768*rho12^2/ddf cov13_F=3.279*rho13+0.711*rho13^2+0.727/ddf+0.129*rho13/ddf-0.768*rho13^2/ddf cov14_F=3.279*rho14+0.711*rho14^2+0.727/ddf+0.129*rho14/ddf-0.768*rho14^2/ddf cov15_F=3.279*rho15+0.711*rho15^2+0.727/ddf+0.129*rho15/ddf-0.768*rho15^2/ddf cov16_F=3.279*rho16+0.711*rho16^2+0.727/ddf+0.129*rho16/ddf-0.768*rho16^2/ddf cov23_F=3.279*rho23+0.711*rho23^2+0.727/ddf+0.129*rho23/ddf-0.768*rho23^2/ddf cov24_F=3.279*rho24+0.711*rho24^2+0.727/ddf+0.129*rho24/ddf-0.768*rho24^2/ddf cov25_F=3.279*rho25+0.711*rho25^2+0.727/ddf+0.129*rho25/ddf-0.768*rho25^2/ddf cov26_F=3.279*rho26+0.711*rho26^2+0.727/ddf+0.129*rho26/ddf-0.768*rho26^2/ddf cov34_F=3.279*rho34+0.711*rho34^2+0.727/ddf+0.129*rho34/ddf-0.768*rho34^2/ddf cov35_F=3.279*rho35+0.711*rho35^2+0.727/ddf+0.129*rho35/ddf-0.768*rho35^2/ddf cov36_F=3.279*rho36+0.711*rho36^2+0.727/ddf+0.129*rho36/ddf-0.768*rho36^2/ddf cov45_F=3.279*rho45+0.711*rho45^2+0.727/ddf+0.129*rho45/ddf-0.768*rho45^2/ddf cov46_F=3.279*rho46+0.711*rho46^2+0.727/ddf+0.129*rho46/ddf-0.768*rho46^2/ddf cov56_F=3.279*rho56+0.711*rho56^2+0.727/ddf+0.129*rho56/ddf-0.768*rho56^2/ddf #The mean and variance of the Fisher's statistic E=2*6 var=4*6+2*(cov12_F+cov13_F+cov14_F+cov15_F+cov16_F+ cov23_F+cov24_F+cov25_F+cov26_F+ cov34_F+cov35_F+cov36_F+ cov45_F+cov46_F+ cov56_F) #Degrees of freedom f f=2*E^2/var c=var/(2*E) phiFobs=-2*(log(p1)+log(p2)+log(p3)+log(p4)+log(p5)+log(p6)) if(pchisq(phiFobs/c,df=f,lower.tail =FALSE)<=0.05){ cov_F=matrix(0, nrow=6, ncol=6) cov_F[1,2]=cov12_F cov_F[1,3]=cov13_F cov_F[1,4]=cov14_F cov_F[1,5]=cov15_F cov_F[1,6]=cov16_F cov_F[2,3]=cov23_F cov_F[2,4]=cov24_F cov_F[2,5]=cov25_F cov_F[2,6]=cov26_F cov_F[3,4]=cov34_F cov_F[3,5]=cov35_F cov_F[3,6]=cov36_F cov_F[4,5]=cov45_F cov_F[4,6]=cov46_F cov_F[5,6]=cov56_F #Closure adjusted p-value of Fisher allp_F=rep(NA,63) for (i in 1:57) { p_ind=(Ind[,i]*c(1,2,3,4,5,6))[Ind[,i]*c(1,2,3,4,5,6)>0] psi_F_obs=-2*(sum(log((p*Ind[,i])[Ind[,i]>0]))) E=2*sum(Ind[,i]) sum=0 for (d in 1:dim(combn(p_ind,2))[2] ) { sum=sum+cov_F[combn(p_ind,2)[1,d],combn(p_ind,2)[2,d]] } sum var=4*sum(Ind[,i])+2*sum f=2*E^2/var c=var/(2*E) allp_F[i]= pchisq(psi_F_obs/c,df=f,lower.tail = FALSE) } allp_F[58:63]=p p1_adj_F=max(allp_F[Ind[1,]==1]) p2_adj_F=max(allp_F[Ind[2,]==1]) p3_adj_F=max(allp_F[Ind[3,]==1]) p4_adj_F=max(allp_F[Ind[4,]==1]) p5_adj_F=max(allp_F[Ind[5,]==1]) p6_adj_F=max(allp_F[Ind[6,]==1]) p_adj_F=c(p1_adj_F,p2_adj_F,p3_adj_F,p4_adj_F,p5_adj_F,p6_adj_F) refer_F=candidate[p_adj_F<=0.05] if (length(refer_F)!=0) { ###min p ### refer_order_F_minp=refer_F[order(p[p_adj_F<=0.05],decreasing =FALSE)] model_sel_F_minp=refer_order_F_minp[1] model_use_F_minp=NA for (i in 1:length(refer_order_F_minp)){ fail_fit_Emax=F if (refer_order_F_minp[i]=='Emax') { #Emax tryCatch(nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)), error=function(e) { fail_fit_Emax <<- T }) if (fail_fit_Emax==F){ model_use_F_minp='Emax' } } fail_fit_LL=F if (refer_order_F_minp[i]=='L-L') { #Lin-log tryCatch(lm(resp~log(5*dose+1)), error=function(e) { fail_fit_LL <<- T }) if (fail_fit_LL==F){ model_use_F_minp='L-L' } } fail_fit_Lin=F if (refer_order_F_minp[i]=='Lin') { #linear tryCatch(lm(resp~dose), error=function(e) { fail_fit_Lin <<- T }) if (fail_fit_Lin==F){ model_use_F_minp='Lin' } } fail_fit_E=F if (refer_order_F_minp[i]=='E') { #Exp tryCatch(nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))), error=function(e) { fail_fit_E<<- T }) if (fail_fit_E==F){ model_use_F_minp='E' } } fail_fit_Q=F if (refer_order_F_minp[i]=='Q') { #Quadratic d=dose d2=dose^2 #Quadratic tryCatch(lm(resp~d+d2), error=function(e) { fail_fit_Q <<- T }) if (fail_fit_Q==F){ model_use_F_minp='Q' } } fail_fit_Logist=F if (refer_order_F_minp[i]=='Logist') { #Logistic tryCatch(nls(resp ~ E0+Emax/(1+exp( (ED50-dose)/delta )) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))), error=function(e) { fail_fit_Logist <<- T }) if (fail_fit_Logist==F){ model_use_F_minp='Logist' } } if (!is.na(model_use_F_minp)){ break } } if (is.na(model_use_F_minp)){ MED_F_minp[s]=NA }else{ if(model_use_F_minp=='Emax'){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_F_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_F_minp=='L-L'){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_F_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_F_minp=='Lin'){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_F_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_F_minp=='E'){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_F_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_F_minp=='Q'){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_F_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_F_minp=='Logist'){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_F_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } } ### AIC ### refer_F_fit=refer_F[is.element(refer_F, model_fit)] refer_order_F_AIC=refer_F_fit[order(AIC[!is.na(AIC) & is.element(candidate, refer_F)],decreasing =FALSE)] model_use_F_AIC=refer_order_F_AIC[1] if (is.na(model_use_F_AIC)){ MED_F_AIC[s]=NA }else{ if(model_use_F_AIC=='Emax'){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_F_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_F_AIC=='L-L'){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_F_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_F_AIC=='Lin'){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_F_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_F_AIC=='E'){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_F_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_F_AIC=='Q'){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_F_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_F_AIC=='Logist'){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_F_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } } ##### Model average ##### MED_ave=rep(NA,6) if (length(refer_F_fit)==0){ MED_F_ave[s]=NA }else{ if('Emax' %in% refer_F_fit){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_ave[1]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('L-L' %in% refer_F_fit){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_ave[2]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if('Lin' %in% refer_F_fit){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_ave[3]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('E' %in% refer_F_fit){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_ave[4]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if('Q' %in% refer_F_fit){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_ave[5]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if('Logist' %in% refer_F_fit){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_ave[6]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } #prior weights pw=1/length(refer_F_fit) w=pw*exp(-AIC[!is.na(AIC) & is.element(candidate, refer_F)]/2)/sum(pw*exp(-AIC[!is.na(AIC) & is.element(candidate, refer_F)]/2)) MED_F_ave[s]=sum(MED_ave[!is.na(MED_ave)]*w) } } } ########################################################################################################## ######################################Inverse normal ##################################################### ########################################################################################################## cov12_N=rho12+0.00019*rho12^3-0.02378*rho12/ddf+0.01891*rho12^3/ddf cov13_N=rho13+0.00019*rho13^3-0.02378*rho13/ddf+0.01891*rho13^3/ddf cov14_N=rho14+0.00019*rho14^3-0.02378*rho14/ddf+0.01891*rho14^3/ddf cov15_N=rho15+0.00019*rho15^3-0.02378*rho15/ddf+0.01891*rho15^3/ddf cov16_N=rho16+0.00019*rho16^3-0.02378*rho16/ddf+0.01891*rho16^3/ddf cov23_N=rho23+0.00019*rho23^3-0.02378*rho23/ddf+0.01891*rho23^3/ddf cov24_N=rho24+0.00019*rho24^3-0.02378*rho24/ddf+0.01891*rho24^3/ddf cov25_N=rho25+0.00019*rho25^3-0.02378*rho25/ddf+0.01891*rho25^3/ddf cov26_N=rho26+0.00019*rho26^3-0.02378*rho26/ddf+0.01891*rho26^3/ddf cov34_N=rho34+0.00019*rho34^3-0.02378*rho34/ddf+0.01891*rho34^3/ddf cov35_N=rho35+0.00019*rho35^3-0.02378*rho35/ddf+0.01891*rho35^3/ddf cov36_N=rho36+0.00019*rho36^3-0.02378*rho36/ddf+0.01891*rho36^3/ddf cov45_N=rho45+0.00019*rho45^3-0.02378*rho45/ddf+0.01891*rho45^3/ddf cov46_N=rho46+0.00019*rho46^3-0.02378*rho46/ddf+0.01891*rho46^3/ddf cov56_N=rho56+0.00019*rho56^3-0.02378*rho56/ddf+0.01891*rho56^3/ddf pvalue_N=pnorm(1/sqrt(6)*(-qnorm(p1)-qnorm(p2)-qnorm(p3)-qnorm(p4)-qnorm(p5)-qnorm(p6)),mean=0, sd=sqrt(1+2/6*(cov12_N+cov13_N+cov14_N+cov15_N+cov16_N+ cov23_N+cov24_N+cov25_N+cov26_N+ cov34_N+cov35_N+cov36_N+ cov45_N+cov46_N+ cov56_N) ),lower.tail = FALSE) if(pvalue_N<=0.05){ cov_N=matrix(0, nrow=6, ncol=6) cov_N[1,2]=cov12_N cov_N[1,3]=cov13_N cov_N[1,4]=cov14_N cov_N[1,5]=cov15_N cov_N[1,6]=cov16_N cov_N[2,3]=cov23_N cov_N[2,4]=cov24_N cov_N[2,5]=cov25_N cov_N[2,6]=cov26_N cov_N[3,4]=cov34_N cov_N[3,5]=cov35_N cov_N[3,6]=cov36_N cov_N[4,5]=cov45_N cov_N[4,6]=cov46_N cov_N[5,6]=cov56_N #Closure adjusted p-value of Inverse normal allp_N=rep(NA,63) for (i in 1:57) { p_ind=(Ind[,i]*c(1,2,3,4,5,6))[Ind[,i]*c(1,2,3,4,5,6)>0] psi_N_obs=1/sqrt(sum(Ind[,i]))*sum(-qnorm((p*Ind[,i])[Ind[,i]>0])) sum=0 for (d in 1:dim(combn(p_ind,2))[2] ) { sum=sum+cov_N[combn(p_ind,2)[1,d],combn(p_ind,2)[2,d]] } sum var=1+2/sum(Ind[,i])*sum allp_N[i]= pnorm(psi_N_obs,mean=0,sd=sqrt(var), lower.tail = FALSE) } allp_N[58:63]=p p1_adj_N=max(allp_N[Ind[1,]==1]) p2_adj_N=max(allp_N[Ind[2,]==1]) p3_adj_N=max(allp_N[Ind[3,]==1]) p4_adj_N=max(allp_N[Ind[4,]==1]) p5_adj_N=max(allp_N[Ind[5,]==1]) p6_adj_N=max(allp_N[Ind[6,]==1]) p_adj_N=c(p1_adj_N,p2_adj_N,p3_adj_N,p4_adj_N,p5_adj_N,p6_adj_N) refer_N=candidate[p_adj_N<=0.05] if (length(refer_N)!=0) { ### min p ### refer_order_N_minp=refer_N[order(p[p_adj_N<=0.05],decreasing =FALSE)] model_sel_N_minp=refer_order_N_minp[1] model_use_N_minp=NA for (i in 1:length(refer_order_N_minp)){ fail_fit_Emax=F if (refer_order_N_minp[i]=='Emax') { #Emax tryCatch(nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)), error=function(e) { fail_fit_Emax <<- T }) if (fail_fit_Emax==F){ model_use_N_minp='Emax' } } fail_fit_LL=F if (refer_order_N_minp[i]=='L-L') { #Lin-log tryCatch(lm(resp~log(5*dose+1)), error=function(e) { fail_fit_LL <<- T }) if (fail_fit_LL==F){ model_use_N_minp='L-L' } } fail_fit_Lin=F if (refer_order_N_minp[i]=='Lin') { #linear tryCatch(lm(resp~dose), error=function(e) { fail_fit_Lin <<- T }) if (fail_fit_Lin==F){ model_use_N_minp='Lin' } } fail_fit_E=F if (refer_order_N_minp[i]=='E') { #Exp tryCatch(nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))), error=function(e) { fail_fit_E<<- T }) if (fail_fit_E==F){ model_use_N_minp='E' } } fail_fit_Q=F if (refer_order_N_minp[i]=='Q') { #Quadratic d=dose d2=dose^2 #Quadratic tryCatch(lm(resp~d+d2), error=function(e) { fail_fit_Q <<- T }) if (fail_fit_Q==F){ model_use_N_minp='Q' } } fail_fit_Logist=F if (refer_order_N_minp[i]=='Logist') { #Logistic tryCatch(nls(resp ~ E0+Emax/(1+exp( (ED50-dose)/delta )) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))), error=function(e) { fail_fit_Logist <<- T }) if (fail_fit_Logist==F){ model_use_N_minp='Logist' } } if (!is.na(model_use_N_minp)){ break } } if (is.na(model_use_N_minp)){ MED_N_minp[s]=NA }else{ if(model_use_N_minp=='Emax'){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_N_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_N_minp=='L-L'){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_N_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_N_minp=='Lin'){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_N_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_N_minp=='E'){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_N_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_N_minp=='Q'){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_N_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_N_minp=='Logist'){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_N_minp[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } } ### AIC ### refer_N_fit=refer_N[is.element(refer_N, model_fit)] refer_order_N_AIC=refer_N_fit[order(AIC[!is.na(AIC) & is.element(candidate, refer_N)],decreasing =FALSE)] model_use_N_AIC=refer_order_N_AIC[1] if (is.na(model_use_N_AIC)){ MED_N_AIC[s]=NA }else{ if(model_use_N_AIC=='Emax'){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_N_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_N_AIC=='L-L'){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_N_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_N_AIC=='Lin'){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_N_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_N_AIC=='E'){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_N_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if(model_use_N_AIC=='Q'){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_N_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if(model_use_N_AIC=='Logist'){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_N_AIC[s]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } } #### Model average #### MED_ave=rep(NA,6) if (length(refer_N_fit)==0){ MED_N_ave[s]=NA }else{ if('Emax' %in% refer_N_fit){ m1=nls(resp ~ E0+Emax*dose/(ED50+dose), start = list(E0 = 0.2, Emax=0.7, ED50=0.2)) predict=coef(m1)[1]+coef(m1)[2]*dose/(dose+coef(m1)[3]) ss1=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose/(dose+coef(m1)[3]), -coef(m1)[2]*dose/(dose+coef(m1)[3])^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]/(d0[i]+coef(m1)[3]), -coef(m1)[2]*d0[i]/(d0[i]+coef(m1)[3])^2) se[i]=ss1*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m1)[1]+coef(m1)[2]*d0/(d0+coef(m1)[3]) pd1=coef(m1)[1]+coef(m1)[2]*0/(0+coef(m1)[3]) MED_ave[1]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('L-L' %in% refer_N_fit){ m2=lm(resp~log(5*dose+1)) predict=coef(m2)[1]+coef(m2)[2]*log(5*dose+1) ss2=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,5*n),log(5*dose+1)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, log(5*d0[i]+1)) se[i]=ss2*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)- se*qt(1-gamma, n*5-2) Ud=coef(m2)[1]+coef(m2)[2]*log(5*d0+1)+ se*qt(1-gamma, n*5-2) pd=coef(m2)[1]+coef(m2)[2]*log(5*d0+1) pd1=coef(m2)[1]+coef(m2)[2]*log(5*0+1) MED_ave[2]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('Lin' %in% refer_N_fit){ m3=lm(resp~dose) predict=coef(m3)[1]+coef(m3)[2]*dose ss3=sqrt(sum((predict-resp)^2)/(5*n-2)) V=cbind(rep(1,n*5),dose) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i]) se[i]=ss3*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld= coef(m3)[1]+coef(m3)[2]*d0- se*qt(1-gamma, n*5-2) Ud=coef(m3)[1]+coef(m3)[2]*d0+ se*qt(1-gamma, n*5-2) pd=coef(m3)[1]+coef(m3)[2]*d0 pd1=coef(m3)[1]+coef(m3)[2]*0 MED_ave[3]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('E' %in% refer_N_fit){ m4=nls(resp ~ E0+E1*exp(dose/delta), start = list(E0 = 0.183, E1 = 0.017, delta=1/(2*log(6)))) predict=coef(m4)[1]+coef(m4)[2]*exp(dose/coef(m4)[3]) ss4=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),exp(dose/coef(m4)[3]), -coef(m4)[2]*dose*exp(dose/coef(m4)[3])/(coef(m4)[3])^2 ) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, exp(d0[i]/coef(m4)[3]), -coef(m4)[2]*d0[i]*exp(d0[i]/coef(m4)[3])/(coef(m4)[3])^2) se[i]=ss4*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])- se*qt(1-gamma, n*5-3) Ud=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3])+ se*qt(1-gamma, n*5-3) pd=coef(m4)[1]+coef(m4)[2]*exp(d0/coef(m4)[3]) pd1=coef(m4)[1]+coef(m4)[2]*exp(0/coef(m4)[3]) MED_ave[4]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } if('Q' %in% refer_N_fit){ d=dose d2=dose^2 m5=lm(resp~d+d2) predict=coef(m5)[1]+coef(m5)[2]*dose+coef(m5)[3]*dose^2 ss5=sqrt(sum((predict-resp)^2)/(5*n-3)) V=cbind(rep(1,5*n),dose,dose^2) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, d0[i], d0[i]^2) se[i]=ss5*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2- se*qt(1-gamma, n*5-3) Ud=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2+ se*qt(1-gamma, n*5-3) pd=coef(m5)[1]+coef(m5)[2]*d0+coef(m5)[3]*d0^2 pd1=coef(m5)[1]+coef(m5)[2]*0+coef(m5)[3]*0^2 MED_ave[5]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))])} if('Logist' %in% refer_N_fit){ m6=nls(resp ~ E0+Emax/(1+exp((ED50-dose)/delta) ) , start = list(E0 = 0.193, Emax = 0.607, ED50 = 0.4, delta=1/(10*log(3)))) predict=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4] )) ss6=sqrt(sum((predict-resp)^2)/(5*n-4)) V=cbind(rep(1,5*n),1/(1+exp( (coef(m6)[3]-dose)/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-dose)/coef(m6)[4])*(coef(m6)[3]-dose)/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-dose)/coef(m6)[4]))^2)) se=rep(NA,length(d0)) for (i in 1:length(d0)){ v0=c(1, 1/(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4])), -coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])/(coef(m6)[4]*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2) , coef(m6)[2]*exp((coef(m6)[3]-d0[i])/coef(m6)[4])*(coef(m6)[3]-d0[i])/(coef(m6)[4]^2*(1+exp( (coef(m6)[3]-d0[i])/coef(m6)[4]))^2)) se[i]=ss6*sqrt(t(v0)%*%solve(t(V)%*%V, tol=1e-24)%*%v0) } Ld=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))- se*qt(1-gamma, n*5-4) Ud=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] ))+ se*qt(1-gamma, n*5-4) pd=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-d0)/coef(m6)[4] )) pd1=coef(m6)[1]+coef(m6)[2]/(1+exp( (coef(m6)[3]-0)/coef(m6)[4] )) MED_ave[6]=min(d0[(Ld>pd1) & (pd>(pd1+0.4))]) } #prior weights pw=1/length(refer_N_fit) w=pw*exp(-AIC[!is.na(AIC) & is.element(candidate, refer_N)]/2)/sum(pw*exp(-AIC[!is.na(AIC) & is.element(candidate, refer_N)]/2)) MED_N_ave[s]=sum(MED_ave[!is.na(MED_ave)]*w) } } } }#End of simulation MED=as.matrix(cbind(MED_MCPMod_minp, MED_T_minp, MED_F_minp, MED_N_minp, MED_MCPMod_AIC, MED_T_AIC, MED_F_AIC, MED_N_AIC, MED_MCPMod_ave, MED_T_ave, MED_F_ave, MED_N_ave)) return(MED) }#End of dosage function ######################################################################### ### Conduct the simulation studies ### Total running time: 22 hours ######################################################################### start_time <- Sys.time() n25g1_dosage=dosage(nsim=10000, n=25, mu=mu_gen[,1], sigma=0.65) saveRDS(n25g1_dosage, file="n25g1_dosage.Rds") n25g2_dosage=dosage(nsim=10000, n=25, mu=mu_gen[,2], sigma=0.65) saveRDS(n25g2_dosage, file="n25g2_dosage.Rds") n25g3_dosage=dosage(nsim=10000, n=25, mu=mu_gen[,3], sigma=0.65) saveRDS(n25g3_dosage, file="n25g3_dosage.Rds") n25g4_dosage=dosage(nsim=10000, n=25, mu=mu_gen[,4], sigma=0.65) saveRDS(n25g4_dosage, file="n25g4_dosage.Rds") n25g5_dosage=dosage(nsim=10000, n=25, mu=mu_gen[,5], sigma=0.65) saveRDS(n25g5_dosage, file="n25g5_dosage.Rds") n25g6_dosage=dosage(nsim=10000, n=25, mu=mu_gen[,6], sigma=0.65) n150g1_dosage=dosage(nsim=10000, n=150, mu=mu_gen[,1], sigma=0.65) saveRDS(n150g1_dosage, file="n150g1_dosage.Rds") n150g2_dosage=dosage(nsim=10000, n=150, mu=mu_gen[,2], sigma=0.65) saveRDS(n150g2_dosage, file="n150g2_dosage.Rds") n150g3_dosage=dosage(nsim=10000, n=150, mu=mu_gen[,3], sigma=0.65) saveRDS(n150g3_dosage, file="n150g3_dosage.Rds") n150g4_dosage=dosage(nsim=10000, n=150, mu=mu_gen[,4], sigma=0.65) saveRDS(n150g4_dosage, file="n150g4_dosage.Rds") n150g5_dosage=dosage(nsim=10000, n=150, mu=mu_gen[,5], sigma=0.65) saveRDS(n150g5_dosage, file="n150g5_dosage.Rds") n150g6_dosage=dosage(nsim=10000, n=150, mu=mu_gen[,6], sigma=0.65) saveRDS(n150g6_dosage, file="n150g6_dosage.Rds") end_time <- Sys.time() end_time - start_time #Time difference of 22.09639 hours ########################################################################################### ########################################################################################### ### Generate Table 4: MSE and Bias of the MED of 4 procedures under different criteria ### sample sizes (n=25 and 150) ########################################################################################### ########################################################################################### n25g1_dosage=readRDS(file="n25g1_dosage.Rds") n25g2_dosage=readRDS(file="n25g2_dosage.Rds") n25g3_dosage=readRDS(file="n25g3_dosage.Rds") n25g4_dosage=readRDS(file="n25g4_dosage.Rds") n25g5_dosage=readRDS(file="n25g5_dosage.Rds") n25g6_dosage=readRDS(file="n25g6_dosage.Rds") n150g1_dosage=readRDS(file="n150g1_dosage.Rds") n150g2_dosage=readRDS(file="n150g2_dosage.Rds") n150g3_dosage=readRDS(file="n150g3_dosage.Rds") n150g4_dosage=readRDS(file="n150g4_dosage.Rds") n150g5_dosage=readRDS(file="n150g5_dosage.Rds") n150g6_dosage=readRDS(file="n150g6_dosage.Rds") #######################Target dose###################################### ###the dosage produces an improvement of delta=0.4 over placebo ######################################e################################# d_tar_emax=0.8/3 d_tar_LL=(exp(2/3*log(6))-1)/5 d_tar_Lin=0.4/0.6 d_tar_exp=log((0.4+0.017)/0.017)/(2*log(6)) d_tar_quad=(2.049-sqrt(2.049^2-4*1.749*0.4))/(2*1.749) a=0.607/(1+exp(4*log(3)))+0.4 d_tar_logist=0.4-log(0.607/a-1)/(10*log(3)) d_tar_mod=c(d_tar_emax,d_tar_LL, d_tar_Lin, d_tar_exp, d_tar_quad,d_tar_logist) ######################n=25 g1######################### n25g1_MCPMod_minp=n25g1_dosage[,"MED_MCPMod_minp"] n25g1_T_minp=n25g1_dosage[,"MED_T_minp"] n25g1_F_minp=n25g1_dosage[,"MED_F_minp"] n25g1_N_minp=n25g1_dosage[,"MED_N_minp"] n25g1_MCPMod_AIC=n25g1_dosage[,"MED_MCPMod_AIC"] n25g1_T_AIC=n25g1_dosage[,"MED_T_AIC"] n25g1_F_AIC=n25g1_dosage[,"MED_F_AIC"] n25g1_N_AIC=n25g1_dosage[,"MED_N_AIC"] n25g1_MCPMod_ave=n25g1_dosage[,"MED_MCPMod_ave"] n25g1_T_ave=n25g1_dosage[,"MED_T_ave"] n25g1_F_ave=n25g1_dosage[,"MED_F_ave"] n25g1_N_ave=n25g1_dosage[,"MED_N_ave"] n25g1_MCPMod_minp_MED=n25g1_MCPMod_minp[n25g1_MCPMod_minp!=Inf & !is.na(n25g1_MCPMod_minp) & n25g1_MCPMod_minp!=0] n25g1_T_minp_MED=n25g1_T_minp[n25g1_T_minp!=Inf & !is.na(n25g1_T_minp) & n25g1_T_minp!=0] n25g1_F_minp_MED=n25g1_F_minp[n25g1_F_minp!=Inf & !is.na(n25g1_F_minp) & n25g1_F_minp!=0] n25g1_N_minp_MED=n25g1_N_minp[n25g1_N_minp!=Inf & !is.na(n25g1_N_minp) & n25g1_N_minp!=0] n25g1_MCPMod_AIC_MED=n25g1_MCPMod_AIC[n25g1_MCPMod_AIC!=Inf & !is.na(n25g1_MCPMod_AIC) & n25g1_MCPMod_AIC!=0] n25g1_T_AIC_MED=n25g1_T_AIC[n25g1_T_AIC!=Inf & !is.na(n25g1_T_AIC) & n25g1_T_AIC!=0] n25g1_F_AIC_MED=n25g1_F_AIC[n25g1_F_AIC!=Inf & !is.na(n25g1_F_AIC) & n25g1_F_AIC!=0] n25g1_N_AIC_MED=n25g1_N_AIC[n25g1_N_AIC!=Inf & !is.na(n25g1_N_AIC) & n25g1_N_AIC!=0] n25g1_MCPMod_ave_MED=n25g1_MCPMod_ave[n25g1_MCPMod_ave!=Inf & !is.na(n25g1_MCPMod_ave) & n25g1_MCPMod_ave!=0] n25g1_T_ave_MED=n25g1_T_ave[n25g1_T_ave!=Inf & !is.na(n25g1_T_ave) & n25g1_T_ave!=0] n25g1_F_ave_MED=n25g1_F_ave[n25g1_F_ave!=Inf & !is.na(n25g1_F_ave) & n25g1_F_ave!=0] n25g1_N_ave_MED=n25g1_N_ave[n25g1_N_ave!=Inf & !is.na(n25g1_N_ave) & n25g1_N_ave!=0] ### minp ### #MSE round(c(mean((n25g1_MCPMod_minp_MED-d_tar_mod[1])^2), mean((n25g1_T_minp_MED-d_tar_mod[1])^2), mean((n25g1_F_minp_MED-d_tar_mod[1])^2), mean((n25g1_N_minp_MED-d_tar_mod[1])^2)),digits=3) #Bias round(c(mean((n25g1_MCPMod_minp_MED-d_tar_mod[1])), mean((n25g1_T_minp_MED-d_tar_mod[1])), mean((n25g1_F_minp_MED-d_tar_mod[1])), mean((n25g1_N_minp_MED-d_tar_mod[1]))),digits=3) ### AIC ### #MSE round(c(mean((n25g1_MCPMod_AIC_MED-d_tar_mod[1])^2), mean((n25g1_T_AIC_MED-d_tar_mod[1])^2), mean((n25g1_F_AIC_MED-d_tar_mod[1])^2), mean((n25g1_N_AIC_MED-d_tar_mod[1])^2)),digits=3) #Bias round(c(mean((n25g1_MCPMod_AIC_MED-d_tar_mod[1])), mean((n25g1_T_AIC_MED-d_tar_mod[1])), mean((n25g1_F_AIC_MED-d_tar_mod[1])), mean((n25g1_N_AIC_MED-d_tar_mod[1]))),digits=3) ### ave ### #MSE round(c(mean((n25g1_MCPMod_ave_MED-d_tar_mod[1])^2), mean((n25g1_T_ave_MED-d_tar_mod[1])^2), mean((n25g1_F_ave_MED-d_tar_mod[1])^2), mean((n25g1_N_ave_MED-d_tar_mod[1])^2)),digits=3) #Bias round(c(mean((n25g1_MCPMod_ave_MED-d_tar_mod[1])), mean((n25g1_T_ave_MED-d_tar_mod[1])), mean((n25g1_F_ave_MED-d_tar_mod[1])), mean((n25g1_N_ave_MED-d_tar_mod[1]))),digits=3) ######################n=25 g2######################### n25g2_MCPMod_minp=n25g2_dosage[,"MED_MCPMod_minp"] n25g2_T_minp=n25g2_dosage[,"MED_T_minp"] n25g2_F_minp=n25g2_dosage[,"MED_F_minp"] n25g2_N_minp=n25g2_dosage[,"MED_N_minp"] n25g2_MCPMod_AIC=n25g2_dosage[,"MED_MCPMod_AIC"] n25g2_T_AIC=n25g2_dosage[,"MED_T_AIC"] n25g2_F_AIC=n25g2_dosage[,"MED_F_AIC"] n25g2_N_AIC=n25g2_dosage[,"MED_N_AIC"] n25g2_MCPMod_ave=n25g2_dosage[,"MED_MCPMod_ave"] n25g2_T_ave=n25g2_dosage[,"MED_T_ave"] n25g2_F_ave=n25g2_dosage[,"MED_F_ave"] n25g2_N_ave=n25g2_dosage[,"MED_N_ave"] n25g2_MCPMod_minp_MED=n25g2_MCPMod_minp[n25g2_MCPMod_minp!=Inf & !is.na(n25g2_MCPMod_minp) & n25g2_MCPMod_minp!=0] n25g2_T_minp_MED=n25g2_T_minp[n25g2_T_minp!=Inf & !is.na(n25g2_T_minp) & n25g2_T_minp!=0] n25g2_F_minp_MED=n25g2_F_minp[n25g2_F_minp!=Inf & !is.na(n25g2_F_minp) & n25g2_F_minp!=0] n25g2_N_minp_MED=n25g2_N_minp[n25g2_N_minp!=Inf & !is.na(n25g2_N_minp) & n25g2_N_minp!=0] n25g2_MCPMod_AIC_MED=n25g2_MCPMod_AIC[n25g2_MCPMod_AIC!=Inf & !is.na(n25g2_MCPMod_AIC) & n25g2_MCPMod_AIC!=0] n25g2_T_AIC_MED=n25g2_T_AIC[n25g2_T_AIC!=Inf & !is.na(n25g2_T_AIC) & n25g2_T_AIC!=0] n25g2_F_AIC_MED=n25g2_F_AIC[n25g2_F_AIC!=Inf & !is.na(n25g2_F_AIC) & n25g2_F_AIC!=0] n25g2_N_AIC_MED=n25g2_N_AIC[n25g2_N_AIC!=Inf & !is.na(n25g2_N_AIC) & n25g2_N_AIC!=0] n25g2_MCPMod_ave_MED=n25g2_MCPMod_ave[n25g2_MCPMod_ave!=Inf & !is.na(n25g2_MCPMod_ave) & n25g2_MCPMod_ave!=0] n25g2_T_ave_MED=n25g2_T_ave[n25g2_T_ave!=Inf & !is.na(n25g2_T_ave) & n25g2_T_ave!=0] n25g2_F_ave_MED=n25g2_F_ave[n25g2_F_ave!=Inf & !is.na(n25g2_F_ave) & n25g2_F_ave!=0] n25g2_N_ave_MED=n25g2_N_ave[n25g2_N_ave!=Inf & !is.na(n25g2_N_ave) & n25g2_N_ave!=0] ### minp ### #MSE round(c(mean((n25g2_MCPMod_minp_MED-d_tar_mod[2])^2), mean((n25g2_T_minp_MED-d_tar_mod[2])^2), mean((n25g2_F_minp_MED-d_tar_mod[2])^2), mean((n25g2_N_minp_MED-d_tar_mod[2])^2)),digits=3) #Bias round(c(mean((n25g2_MCPMod_minp_MED-d_tar_mod[2])), mean((n25g2_T_minp_MED-d_tar_mod[2])), mean((n25g2_F_minp_MED-d_tar_mod[2])), mean((n25g2_N_minp_MED-d_tar_mod[2]))),digits=3) ### AIC ### #MSE round(c(mean((n25g2_MCPMod_AIC_MED-d_tar_mod[2])^2), mean((n25g2_T_AIC_MED-d_tar_mod[2])^2), mean((n25g2_F_AIC_MED-d_tar_mod[2])^2), mean((n25g2_N_AIC_MED-d_tar_mod[2])^2)),digits=3) #Bias round(c(mean((n25g2_MCPMod_AIC_MED-d_tar_mod[2])), mean((n25g2_T_AIC_MED-d_tar_mod[2])), mean((n25g2_F_AIC_MED-d_tar_mod[2])), mean((n25g2_N_AIC_MED-d_tar_mod[2]))),digits=3) ### ave ### #MSE round(c(mean((n25g2_MCPMod_ave_MED-d_tar_mod[2])^2), mean((n25g2_T_ave_MED-d_tar_mod[2])^2), mean((n25g2_F_ave_MED-d_tar_mod[2])^2), mean((n25g2_N_ave_MED-d_tar_mod[2])^2)),digits=3) #Bias round(c(mean((n25g2_MCPMod_ave_MED-d_tar_mod[2])), mean((n25g2_T_ave_MED-d_tar_mod[2])), mean((n25g2_F_ave_MED-d_tar_mod[2])), mean((n25g2_N_ave_MED-d_tar_mod[2]))),digits=3) ######################n=25 g3######################### n25g3_MCPMod_minp=n25g3_dosage[,"MED_MCPMod_minp"] n25g3_T_minp=n25g3_dosage[,"MED_T_minp"] n25g3_F_minp=n25g3_dosage[,"MED_F_minp"] n25g3_N_minp=n25g3_dosage[,"MED_N_minp"] n25g3_MCPMod_AIC=n25g3_dosage[,"MED_MCPMod_AIC"] n25g3_T_AIC=n25g3_dosage[,"MED_T_AIC"] n25g3_F_AIC=n25g3_dosage[,"MED_F_AIC"] n25g3_N_AIC=n25g3_dosage[,"MED_N_AIC"] n25g3_MCPMod_ave=n25g3_dosage[,"MED_MCPMod_ave"] n25g3_T_ave=n25g3_dosage[,"MED_T_ave"] n25g3_F_ave=n25g3_dosage[,"MED_F_ave"] n25g3_N_ave=n25g3_dosage[,"MED_N_ave"] n25g3_MCPMod_minp_MED=n25g3_MCPMod_minp[n25g3_MCPMod_minp!=Inf & !is.na(n25g3_MCPMod_minp) & n25g3_MCPMod_minp!=0] n25g3_T_minp_MED=n25g3_T_minp[n25g3_T_minp!=Inf & !is.na(n25g3_T_minp) & n25g3_T_minp!=0] n25g3_F_minp_MED=n25g3_F_minp[n25g3_F_minp!=Inf & !is.na(n25g3_F_minp) & n25g3_F_minp!=0] n25g3_N_minp_MED=n25g3_N_minp[n25g3_N_minp!=Inf & !is.na(n25g3_N_minp) & n25g3_N_minp!=0] n25g3_MCPMod_AIC_MED=n25g3_MCPMod_AIC[n25g3_MCPMod_AIC!=Inf & !is.na(n25g3_MCPMod_AIC) & n25g3_MCPMod_AIC!=0] n25g3_T_AIC_MED=n25g3_T_AIC[n25g3_T_AIC!=Inf & !is.na(n25g3_T_AIC) & n25g3_T_AIC!=0] n25g3_F_AIC_MED=n25g3_F_AIC[n25g3_F_AIC!=Inf & !is.na(n25g3_F_AIC) & n25g3_F_AIC!=0] n25g3_N_AIC_MED=n25g3_N_AIC[n25g3_N_AIC!=Inf & !is.na(n25g3_N_AIC) & n25g3_N_AIC!=0] n25g3_MCPMod_ave_MED=n25g3_MCPMod_ave[n25g3_MCPMod_ave!=Inf & !is.na(n25g3_MCPMod_ave) & n25g3_MCPMod_ave!=0] n25g3_T_ave_MED=n25g3_T_ave[n25g3_T_ave!=Inf & !is.na(n25g3_T_ave) & n25g3_T_ave!=0] n25g3_F_ave_MED=n25g3_F_ave[n25g3_F_ave!=Inf & !is.na(n25g3_F_ave) & n25g3_F_ave!=0] n25g3_N_ave_MED=n25g3_N_ave[n25g3_N_ave!=Inf & !is.na(n25g3_N_ave) & n25g3_N_ave!=0] ### minp ### #MSE round(c(mean((n25g3_MCPMod_minp_MED-d_tar_mod[3])^2), mean((n25g3_T_minp_MED-d_tar_mod[3])^2), mean((n25g3_F_minp_MED-d_tar_mod[3])^2), mean((n25g3_N_minp_MED-d_tar_mod[3])^2)),digits=3) #Bias round(c(mean((n25g3_MCPMod_minp_MED-d_tar_mod[3])), mean((n25g3_T_minp_MED-d_tar_mod[3])), mean((n25g3_F_minp_MED-d_tar_mod[3])), mean((n25g3_N_minp_MED-d_tar_mod[3]))),digits=3) ### AIC ### #MSE round(c(mean((n25g3_MCPMod_AIC_MED-d_tar_mod[3])^2), mean((n25g3_T_AIC_MED-d_tar_mod[3])^2), mean((n25g3_F_AIC_MED-d_tar_mod[3])^2), mean((n25g3_N_AIC_MED-d_tar_mod[3])^2)),digits=3) #Bias round(c(mean((n25g3_MCPMod_AIC_MED-d_tar_mod[3])), mean((n25g3_T_AIC_MED-d_tar_mod[3])), mean((n25g3_F_AIC_MED-d_tar_mod[3])), mean((n25g3_N_AIC_MED-d_tar_mod[3]))),digits=3) ### ave ### #MSE round(c(mean((n25g3_MCPMod_ave_MED-d_tar_mod[3])^2), mean((n25g3_T_ave_MED-d_tar_mod[3])^2), mean((n25g3_F_ave_MED-d_tar_mod[3])^2), mean((n25g3_N_ave_MED-d_tar_mod[3])^2)),digits=3) #Bias round(c(mean((n25g3_MCPMod_ave_MED-d_tar_mod[3])), mean((n25g3_T_ave_MED-d_tar_mod[3])), mean((n25g3_F_ave_MED-d_tar_mod[3])), mean((n25g3_N_ave_MED-d_tar_mod[3]))),digits=3) ######################n=25 g4######################### n25g4_MCPMod_minp=n25g4_dosage[,"MED_MCPMod_minp"] n25g4_T_minp=n25g4_dosage[,"MED_T_minp"] n25g4_F_minp=n25g4_dosage[,"MED_F_minp"] n25g4_N_minp=n25g4_dosage[,"MED_N_minp"] n25g4_MCPMod_AIC=n25g4_dosage[,"MED_MCPMod_AIC"] n25g4_T_AIC=n25g4_dosage[,"MED_T_AIC"] n25g4_F_AIC=n25g4_dosage[,"MED_F_AIC"] n25g4_N_AIC=n25g4_dosage[,"MED_N_AIC"] n25g4_MCPMod_ave=n25g4_dosage[,"MED_MCPMod_ave"] n25g4_T_ave=n25g4_dosage[,"MED_T_ave"] n25g4_F_ave=n25g4_dosage[,"MED_F_ave"] n25g4_N_ave=n25g4_dosage[,"MED_N_ave"] n25g4_MCPMod_minp_MED=n25g4_MCPMod_minp[n25g4_MCPMod_minp!=Inf & !is.na(n25g4_MCPMod_minp) & n25g4_MCPMod_minp!=0] n25g4_T_minp_MED=n25g4_T_minp[n25g4_T_minp!=Inf & !is.na(n25g4_T_minp) & n25g4_T_minp!=0] n25g4_F_minp_MED=n25g4_F_minp[n25g4_F_minp!=Inf & !is.na(n25g4_F_minp) & n25g4_F_minp!=0] n25g4_N_minp_MED=n25g4_N_minp[n25g4_N_minp!=Inf & !is.na(n25g4_N_minp) & n25g4_N_minp!=0] n25g4_MCPMod_AIC_MED=n25g4_MCPMod_AIC[n25g4_MCPMod_AIC!=Inf & !is.na(n25g4_MCPMod_AIC) & n25g4_MCPMod_AIC!=0] n25g4_T_AIC_MED=n25g4_T_AIC[n25g4_T_AIC!=Inf & !is.na(n25g4_T_AIC) & n25g4_T_AIC!=0] n25g4_F_AIC_MED=n25g4_F_AIC[n25g4_F_AIC!=Inf & !is.na(n25g4_F_AIC) & n25g4_F_AIC!=0] n25g4_N_AIC_MED=n25g4_N_AIC[n25g4_N_AIC!=Inf & !is.na(n25g4_N_AIC) & n25g4_N_AIC!=0] n25g4_MCPMod_ave_MED=n25g4_MCPMod_ave[n25g4_MCPMod_ave!=Inf & !is.na(n25g4_MCPMod_ave) & n25g4_MCPMod_ave!=0] n25g4_T_ave_MED=n25g4_T_ave[n25g4_T_ave!=Inf & !is.na(n25g4_T_ave) & n25g4_T_ave!=0] n25g4_F_ave_MED=n25g4_F_ave[n25g4_F_ave!=Inf & !is.na(n25g4_F_ave) & n25g4_F_ave!=0] n25g4_N_ave_MED=n25g4_N_ave[n25g4_N_ave!=Inf & !is.na(n25g4_N_ave) & n25g4_N_ave!=0] ### minp ### #MSE round(c(mean((n25g4_MCPMod_minp_MED-d_tar_mod[4])^2), mean((n25g4_T_minp_MED-d_tar_mod[4])^2), mean((n25g4_F_minp_MED-d_tar_mod[4])^2), mean((n25g4_N_minp_MED-d_tar_mod[4])^2)),digits=3) #Bias round(c(mean((n25g4_MCPMod_minp_MED-d_tar_mod[4])), mean((n25g4_T_minp_MED-d_tar_mod[4])), mean((n25g4_F_minp_MED-d_tar_mod[4])), mean((n25g4_N_minp_MED-d_tar_mod[4]))),digits=3) ### AIC ### #MSE round(c(mean((n25g4_MCPMod_AIC_MED-d_tar_mod[4])^2), mean((n25g4_T_AIC_MED-d_tar_mod[4])^2), mean((n25g4_F_AIC_MED-d_tar_mod[4])^2), mean((n25g4_N_AIC_MED-d_tar_mod[4])^2)),digits=3) #Bias round(c(mean((n25g4_MCPMod_AIC_MED-d_tar_mod[4])), mean((n25g4_T_AIC_MED-d_tar_mod[4])), mean((n25g4_F_AIC_MED-d_tar_mod[4])), mean((n25g4_N_AIC_MED-d_tar_mod[4]))),digits=3) ### ave ### #MSE round(c(mean((n25g4_MCPMod_ave_MED-d_tar_mod[4])^2), mean((n25g4_T_ave_MED-d_tar_mod[4])^2), mean((n25g4_F_ave_MED-d_tar_mod[4])^2), mean((n25g4_N_ave_MED-d_tar_mod[4])^2)),digits=3) #Bias round(c(mean((n25g4_MCPMod_ave_MED-d_tar_mod[4])), mean((n25g4_T_ave_MED-d_tar_mod[4])), mean((n25g4_F_ave_MED-d_tar_mod[4])), mean((n25g4_N_ave_MED-d_tar_mod[4]))),digits=3) ######################n=25 g5######################### n25g5_MCPMod_minp=n25g5_dosage[,"MED_MCPMod_minp"] n25g5_T_minp=n25g5_dosage[,"MED_T_minp"] n25g5_F_minp=n25g5_dosage[,"MED_F_minp"] n25g5_N_minp=n25g5_dosage[,"MED_N_minp"] n25g5_MCPMod_AIC=n25g5_dosage[,"MED_MCPMod_AIC"] n25g5_T_AIC=n25g5_dosage[,"MED_T_AIC"] n25g5_F_AIC=n25g5_dosage[,"MED_F_AIC"] n25g5_N_AIC=n25g5_dosage[,"MED_N_AIC"] n25g5_MCPMod_ave=n25g5_dosage[,"MED_MCPMod_ave"] n25g5_T_ave=n25g5_dosage[,"MED_T_ave"] n25g5_F_ave=n25g5_dosage[,"MED_F_ave"] n25g5_N_ave=n25g5_dosage[,"MED_N_ave"] n25g5_MCPMod_minp_MED=n25g5_MCPMod_minp[n25g5_MCPMod_minp!=Inf & !is.na(n25g5_MCPMod_minp) & n25g5_MCPMod_minp!=0] n25g5_T_minp_MED=n25g5_T_minp[n25g5_T_minp!=Inf & !is.na(n25g5_T_minp) & n25g5_T_minp!=0] n25g5_F_minp_MED=n25g5_F_minp[n25g5_F_minp!=Inf & !is.na(n25g5_F_minp) & n25g5_F_minp!=0] n25g5_N_minp_MED=n25g5_N_minp[n25g5_N_minp!=Inf & !is.na(n25g5_N_minp) & n25g5_N_minp!=0] n25g5_MCPMod_AIC_MED=n25g5_MCPMod_AIC[n25g5_MCPMod_AIC!=Inf & !is.na(n25g5_MCPMod_AIC) & n25g5_MCPMod_AIC!=0] n25g5_T_AIC_MED=n25g5_T_AIC[n25g5_T_AIC!=Inf & !is.na(n25g5_T_AIC) & n25g5_T_AIC!=0] n25g5_F_AIC_MED=n25g5_F_AIC[n25g5_F_AIC!=Inf & !is.na(n25g5_F_AIC) & n25g5_F_AIC!=0] n25g5_N_AIC_MED=n25g5_N_AIC[n25g5_N_AIC!=Inf & !is.na(n25g5_N_AIC) & n25g5_N_AIC!=0] n25g5_MCPMod_ave_MED=n25g5_MCPMod_ave[n25g5_MCPMod_ave!=Inf & !is.na(n25g5_MCPMod_ave) & n25g5_MCPMod_ave!=0] n25g5_T_ave_MED=n25g5_T_ave[n25g5_T_ave!=Inf & !is.na(n25g5_T_ave) & n25g5_T_ave!=0] n25g5_F_ave_MED=n25g5_F_ave[n25g5_F_ave!=Inf & !is.na(n25g5_F_ave) & n25g5_F_ave!=0] n25g5_N_ave_MED=n25g5_N_ave[n25g5_N_ave!=Inf & !is.na(n25g5_N_ave) & n25g5_N_ave!=0] ### minp ### #MSE round(c(mean((n25g5_MCPMod_minp_MED-d_tar_mod[5])^2), mean((n25g5_T_minp_MED-d_tar_mod[5])^2), mean((n25g5_F_minp_MED-d_tar_mod[5])^2), mean((n25g5_N_minp_MED-d_tar_mod[5])^2)),digits=3) #Bias round(c(mean((n25g5_MCPMod_minp_MED-d_tar_mod[5])), mean((n25g5_T_minp_MED-d_tar_mod[5])), mean((n25g5_F_minp_MED-d_tar_mod[5])), mean((n25g5_N_minp_MED-d_tar_mod[5]))),digits=3) ### AIC ### #MSE round(c(mean((n25g5_MCPMod_AIC_MED-d_tar_mod[5])^2), mean((n25g5_T_AIC_MED-d_tar_mod[5])^2), mean((n25g5_F_AIC_MED-d_tar_mod[5])^2), mean((n25g5_N_AIC_MED-d_tar_mod[5])^2)),digits=3) #Bias round(c(mean((n25g5_MCPMod_AIC_MED-d_tar_mod[5])), mean((n25g5_T_AIC_MED-d_tar_mod[5])), mean((n25g5_F_AIC_MED-d_tar_mod[5])), mean((n25g5_N_AIC_MED-d_tar_mod[5]))),digits=3) ### ave ### #MSE round(c(mean((n25g5_MCPMod_ave_MED-d_tar_mod[5])^2), mean((n25g5_T_ave_MED-d_tar_mod[5])^2), mean((n25g5_F_ave_MED-d_tar_mod[5])^2), mean((n25g5_N_ave_MED-d_tar_mod[5])^2)),digits=3) #Bias round(c(mean((n25g5_MCPMod_ave_MED-d_tar_mod[5])), mean((n25g5_T_ave_MED-d_tar_mod[5])), mean((n25g5_F_ave_MED-d_tar_mod[5])), mean((n25g5_N_ave_MED-d_tar_mod[5]))),digits=3) ######################n=25 g6######################### n25g6_MCPMod_minp=n25g6_dosage[,"MED_MCPMod_minp"] n25g6_T_minp=n25g6_dosage[,"MED_T_minp"] n25g6_F_minp=n25g6_dosage[,"MED_F_minp"] n25g6_N_minp=n25g6_dosage[,"MED_N_minp"] n25g6_MCPMod_AIC=n25g6_dosage[,"MED_MCPMod_AIC"] n25g6_T_AIC=n25g6_dosage[,"MED_T_AIC"] n25g6_F_AIC=n25g6_dosage[,"MED_F_AIC"] n25g6_N_AIC=n25g6_dosage[,"MED_N_AIC"] n25g6_MCPMod_ave=n25g6_dosage[,"MED_MCPMod_ave"] n25g6_T_ave=n25g6_dosage[,"MED_T_ave"] n25g6_F_ave=n25g6_dosage[,"MED_F_ave"] n25g6_N_ave=n25g6_dosage[,"MED_N_ave"] n25g6_MCPMod_minp_MED=n25g6_MCPMod_minp[n25g6_MCPMod_minp!=Inf & !is.na(n25g6_MCPMod_minp) & n25g6_MCPMod_minp!=0] n25g6_T_minp_MED=n25g6_T_minp[n25g6_T_minp!=Inf & !is.na(n25g6_T_minp) & n25g6_T_minp!=0] n25g6_F_minp_MED=n25g6_F_minp[n25g6_F_minp!=Inf & !is.na(n25g6_F_minp) & n25g6_F_minp!=0] n25g6_N_minp_MED=n25g6_N_minp[n25g6_N_minp!=Inf & !is.na(n25g6_N_minp) & n25g6_N_minp!=0] n25g6_MCPMod_AIC_MED=n25g6_MCPMod_AIC[n25g6_MCPMod_AIC!=Inf & !is.na(n25g6_MCPMod_AIC) & n25g6_MCPMod_AIC!=0] n25g6_T_AIC_MED=n25g6_T_AIC[n25g6_T_AIC!=Inf & !is.na(n25g6_T_AIC) & n25g6_T_AIC!=0] n25g6_F_AIC_MED=n25g6_F_AIC[n25g6_F_AIC!=Inf & !is.na(n25g6_F_AIC) & n25g6_F_AIC!=0] n25g6_N_AIC_MED=n25g6_N_AIC[n25g6_N_AIC!=Inf & !is.na(n25g6_N_AIC) & n25g6_N_AIC!=0] n25g6_MCPMod_ave_MED=n25g6_MCPMod_ave[n25g6_MCPMod_ave!=Inf & !is.na(n25g6_MCPMod_ave) & n25g6_MCPMod_ave!=0] n25g6_T_ave_MED=n25g6_T_ave[n25g6_T_ave!=Inf & !is.na(n25g6_T_ave) & n25g6_T_ave!=0] n25g6_F_ave_MED=n25g6_F_ave[n25g6_F_ave!=Inf & !is.na(n25g6_F_ave) & n25g6_F_ave!=0] n25g6_N_ave_MED=n25g6_N_ave[n25g6_N_ave!=Inf & !is.na(n25g6_N_ave) & n25g6_N_ave!=0] ### minp ### #MSE round(c(mean((n25g6_MCPMod_minp_MED-d_tar_mod[6])^2), mean((n25g6_T_minp_MED-d_tar_mod[6])^2), mean((n25g6_F_minp_MED-d_tar_mod[6])^2), mean((n25g6_N_minp_MED-d_tar_mod[6])^2)),digits=3) #Bias round(c(mean((n25g6_MCPMod_minp_MED-d_tar_mod[6])), mean((n25g6_T_minp_MED-d_tar_mod[6])), mean((n25g6_F_minp_MED-d_tar_mod[6])), mean((n25g6_N_minp_MED-d_tar_mod[6]))),digits=3) ### AIC ### #MSE round(c(mean((n25g6_MCPMod_AIC_MED-d_tar_mod[6])^2), mean((n25g6_T_AIC_MED-d_tar_mod[6])^2), mean((n25g6_F_AIC_MED-d_tar_mod[6])^2), mean((n25g6_N_AIC_MED-d_tar_mod[6])^2)),digits=3) #Bias round(c(mean((n25g6_MCPMod_AIC_MED-d_tar_mod[6])), mean((n25g6_T_AIC_MED-d_tar_mod[6])), mean((n25g6_F_AIC_MED-d_tar_mod[6])), mean((n25g6_N_AIC_MED-d_tar_mod[6]))),digits=3) ### ave ### #MSE round(c(mean((n25g6_MCPMod_ave_MED-d_tar_mod[6])^2), mean((n25g6_T_ave_MED-d_tar_mod[6])^2), mean((n25g6_F_ave_MED-d_tar_mod[6])^2), mean((n25g6_N_ave_MED-d_tar_mod[6])^2)),digits=3) #Bias round(c(mean((n25g6_MCPMod_ave_MED-d_tar_mod[6])), mean((n25g6_T_ave_MED-d_tar_mod[6])), mean((n25g6_F_ave_MED-d_tar_mod[6])), mean((n25g6_N_ave_MED-d_tar_mod[6]))),digits=3) ######################n=150 g1######################### n150g1_MCPMod_minp=n150g1_dosage[,"MED_MCPMod_minp"] n150g1_T_minp=n150g1_dosage[,"MED_T_minp"] n150g1_F_minp=n150g1_dosage[,"MED_F_minp"] n150g1_N_minp=n150g1_dosage[,"MED_N_minp"] n150g1_MCPMod_AIC=n150g1_dosage[,"MED_MCPMod_AIC"] n150g1_T_AIC=n150g1_dosage[,"MED_T_AIC"] n150g1_F_AIC=n150g1_dosage[,"MED_F_AIC"] n150g1_N_AIC=n150g1_dosage[,"MED_N_AIC"] n150g1_MCPMod_ave=n150g1_dosage[,"MED_MCPMod_ave"] n150g1_T_ave=n150g1_dosage[,"MED_T_ave"] n150g1_F_ave=n150g1_dosage[,"MED_F_ave"] n150g1_N_ave=n150g1_dosage[,"MED_N_ave"] n150g1_MCPMod_minp_MED=n150g1_MCPMod_minp[n150g1_MCPMod_minp!=Inf & !is.na(n150g1_MCPMod_minp) & n150g1_MCPMod_minp!=0] n150g1_T_minp_MED=n150g1_T_minp[n150g1_T_minp!=Inf & !is.na(n150g1_T_minp) & n150g1_T_minp!=0] n150g1_F_minp_MED=n150g1_F_minp[n150g1_F_minp!=Inf & !is.na(n150g1_F_minp) & n150g1_F_minp!=0] n150g1_N_minp_MED=n150g1_N_minp[n150g1_N_minp!=Inf & !is.na(n150g1_N_minp) & n150g1_N_minp!=0] n150g1_MCPMod_AIC_MED=n150g1_MCPMod_AIC[n150g1_MCPMod_AIC!=Inf & !is.na(n150g1_MCPMod_AIC) & n150g1_MCPMod_AIC!=0] n150g1_T_AIC_MED=n150g1_T_AIC[n150g1_T_AIC!=Inf & !is.na(n150g1_T_AIC) & n150g1_T_AIC!=0] n150g1_F_AIC_MED=n150g1_F_AIC[n150g1_F_AIC!=Inf & !is.na(n150g1_F_AIC) & n150g1_F_AIC!=0] n150g1_N_AIC_MED=n150g1_N_AIC[n150g1_N_AIC!=Inf & !is.na(n150g1_N_AIC) & n150g1_N_AIC!=0] n150g1_MCPMod_ave_MED=n150g1_MCPMod_ave[n150g1_MCPMod_ave!=Inf & !is.na(n150g1_MCPMod_ave) & n150g1_MCPMod_ave!=0] n150g1_T_ave_MED=n150g1_T_ave[n150g1_T_ave!=Inf & !is.na(n150g1_T_ave) & n150g1_T_ave!=0] n150g1_F_ave_MED=n150g1_F_ave[n150g1_F_ave!=Inf & !is.na(n150g1_F_ave) & n150g1_F_ave!=0] n150g1_N_ave_MED=n150g1_N_ave[n150g1_N_ave!=Inf & !is.na(n150g1_N_ave) & n150g1_N_ave!=0] ### minp ### #MSE round(c(mean((n150g1_MCPMod_minp_MED-d_tar_mod[1])^2), mean((n150g1_T_minp_MED-d_tar_mod[1])^2), mean((n150g1_F_minp_MED-d_tar_mod[1])^2), mean((n150g1_N_minp_MED-d_tar_mod[1])^2)),digits=3) #Bias round(c(mean((n150g1_MCPMod_minp_MED-d_tar_mod[1])), mean((n150g1_T_minp_MED-d_tar_mod[1])), mean((n150g1_F_minp_MED-d_tar_mod[1])), mean((n150g1_N_minp_MED-d_tar_mod[1]))),digits=3) ### AIC ### #MSE round(c(mean((n150g1_MCPMod_AIC_MED-d_tar_mod[1])^2), mean((n150g1_T_AIC_MED-d_tar_mod[1])^2), mean((n150g1_F_AIC_MED-d_tar_mod[1])^2), mean((n150g1_N_AIC_MED-d_tar_mod[1])^2)),digits=3) #Bias round(c(mean((n150g1_MCPMod_AIC_MED-d_tar_mod[1])), mean((n150g1_T_AIC_MED-d_tar_mod[1])), mean((n150g1_F_AIC_MED-d_tar_mod[1])), mean((n150g1_N_AIC_MED-d_tar_mod[1]))),digits=3) ### ave ### #MSE round(c(mean((n150g1_MCPMod_ave_MED-d_tar_mod[1])^2), mean((n150g1_T_ave_MED-d_tar_mod[1])^2), mean((n150g1_F_ave_MED-d_tar_mod[1])^2), mean((n150g1_N_ave_MED-d_tar_mod[1])^2)),digits=3) #Bias round(c(mean((n150g1_MCPMod_ave_MED-d_tar_mod[1])), mean((n150g1_T_ave_MED-d_tar_mod[1])), mean((n150g1_F_ave_MED-d_tar_mod[1])), mean((n150g1_N_ave_MED-d_tar_mod[1]))),digits=3) ######################n=150 g2######################### n150g2_MCPMod_minp=n150g2_dosage[,"MED_MCPMod_minp"] n150g2_T_minp=n150g2_dosage[,"MED_T_minp"] n150g2_F_minp=n150g2_dosage[,"MED_F_minp"] n150g2_N_minp=n150g2_dosage[,"MED_N_minp"] n150g2_MCPMod_AIC=n150g2_dosage[,"MED_MCPMod_AIC"] n150g2_T_AIC=n150g2_dosage[,"MED_T_AIC"] n150g2_F_AIC=n150g2_dosage[,"MED_F_AIC"] n150g2_N_AIC=n150g2_dosage[,"MED_N_AIC"] n150g2_MCPMod_ave=n150g2_dosage[,"MED_MCPMod_ave"] n150g2_T_ave=n150g2_dosage[,"MED_T_ave"] n150g2_F_ave=n150g2_dosage[,"MED_F_ave"] n150g2_N_ave=n150g2_dosage[,"MED_N_ave"] n150g2_MCPMod_minp_MED=n150g2_MCPMod_minp[n150g2_MCPMod_minp!=Inf & !is.na(n150g2_MCPMod_minp) & n150g2_MCPMod_minp!=0] n150g2_T_minp_MED=n150g2_T_minp[n150g2_T_minp!=Inf & !is.na(n150g2_T_minp) & n150g2_T_minp!=0] n150g2_F_minp_MED=n150g2_F_minp[n150g2_F_minp!=Inf & !is.na(n150g2_F_minp) & n150g2_F_minp!=0] n150g2_N_minp_MED=n150g2_N_minp[n150g2_N_minp!=Inf & !is.na(n150g2_N_minp) & n150g2_N_minp!=0] n150g2_MCPMod_AIC_MED=n150g2_MCPMod_AIC[n150g2_MCPMod_AIC!=Inf & !is.na(n150g2_MCPMod_AIC) & n150g2_MCPMod_AIC!=0] n150g2_T_AIC_MED=n150g2_T_AIC[n150g2_T_AIC!=Inf & !is.na(n150g2_T_AIC) & n150g2_T_AIC!=0] n150g2_F_AIC_MED=n150g2_F_AIC[n150g2_F_AIC!=Inf & !is.na(n150g2_F_AIC) & n150g2_F_AIC!=0] n150g2_N_AIC_MED=n150g2_N_AIC[n150g2_N_AIC!=Inf & !is.na(n150g2_N_AIC) & n150g2_N_AIC!=0] n150g2_MCPMod_ave_MED=n150g2_MCPMod_ave[n150g2_MCPMod_ave!=Inf & !is.na(n150g2_MCPMod_ave) & n150g2_MCPMod_ave!=0] n150g2_T_ave_MED=n150g2_T_ave[n150g2_T_ave!=Inf & !is.na(n150g2_T_ave) & n150g2_T_ave!=0] n150g2_F_ave_MED=n150g2_F_ave[n150g2_F_ave!=Inf & !is.na(n150g2_F_ave) & n150g2_F_ave!=0] n150g2_N_ave_MED=n150g2_N_ave[n150g2_N_ave!=Inf & !is.na(n150g2_N_ave) & n150g2_N_ave!=0] ### minp ### #MSE round(c(mean((n150g2_MCPMod_minp_MED-d_tar_mod[2])^2), mean((n150g2_T_minp_MED-d_tar_mod[2])^2), mean((n150g2_F_minp_MED-d_tar_mod[2])^2), mean((n150g2_N_minp_MED-d_tar_mod[2])^2)),digits=3) #Bias round(c(mean((n150g2_MCPMod_minp_MED-d_tar_mod[2])), mean((n150g2_T_minp_MED-d_tar_mod[2])), mean((n150g2_F_minp_MED-d_tar_mod[2])), mean((n150g2_N_minp_MED-d_tar_mod[2]))),digits=3) ### AIC ### #MSE round(c(mean((n150g2_MCPMod_AIC_MED-d_tar_mod[2])^2), mean((n150g2_T_AIC_MED-d_tar_mod[2])^2), mean((n150g2_F_AIC_MED-d_tar_mod[2])^2), mean((n150g2_N_AIC_MED-d_tar_mod[2])^2)),digits=3) #Bias round(c(mean((n150g2_MCPMod_AIC_MED-d_tar_mod[2])), mean((n150g2_T_AIC_MED-d_tar_mod[2])), mean((n150g2_F_AIC_MED-d_tar_mod[2])), mean((n150g2_N_AIC_MED-d_tar_mod[2]))),digits=3) ### ave ### #MSE round(c(mean((n150g2_MCPMod_ave_MED-d_tar_mod[2])^2), mean((n150g2_T_ave_MED-d_tar_mod[2])^2), mean((n150g2_F_ave_MED-d_tar_mod[2])^2), mean((n150g2_N_ave_MED-d_tar_mod[2])^2)),digits=3) #Bias round(c(mean((n150g2_MCPMod_ave_MED-d_tar_mod[2])), mean((n150g2_T_ave_MED-d_tar_mod[2])), mean((n150g2_F_ave_MED-d_tar_mod[2])), mean((n150g2_N_ave_MED-d_tar_mod[2]))),digits=3) ######################n=150 g3######################### n150g3_MCPMod_minp=n150g3_dosage[,"MED_MCPMod_minp"] n150g3_T_minp=n150g3_dosage[,"MED_T_minp"] n150g3_F_minp=n150g3_dosage[,"MED_F_minp"] n150g3_N_minp=n150g3_dosage[,"MED_N_minp"] n150g3_MCPMod_AIC=n150g3_dosage[,"MED_MCPMod_AIC"] n150g3_T_AIC=n150g3_dosage[,"MED_T_AIC"] n150g3_F_AIC=n150g3_dosage[,"MED_F_AIC"] n150g3_N_AIC=n150g3_dosage[,"MED_N_AIC"] n150g3_MCPMod_ave=n150g3_dosage[,"MED_MCPMod_ave"] n150g3_T_ave=n150g3_dosage[,"MED_T_ave"] n150g3_F_ave=n150g3_dosage[,"MED_F_ave"] n150g3_N_ave=n150g3_dosage[,"MED_N_ave"] n150g3_MCPMod_minp_MED=n150g3_MCPMod_minp[n150g3_MCPMod_minp!=Inf & !is.na(n150g3_MCPMod_minp) & n150g3_MCPMod_minp!=0] n150g3_T_minp_MED=n150g3_T_minp[n150g3_T_minp!=Inf & !is.na(n150g3_T_minp) & n150g3_T_minp!=0] n150g3_F_minp_MED=n150g3_F_minp[n150g3_F_minp!=Inf & !is.na(n150g3_F_minp) & n150g3_F_minp!=0] n150g3_N_minp_MED=n150g3_N_minp[n150g3_N_minp!=Inf & !is.na(n150g3_N_minp) & n150g3_N_minp!=0] n150g3_MCPMod_AIC_MED=n150g3_MCPMod_AIC[n150g3_MCPMod_AIC!=Inf & !is.na(n150g3_MCPMod_AIC) & n150g3_MCPMod_AIC!=0] n150g3_T_AIC_MED=n150g3_T_AIC[n150g3_T_AIC!=Inf & !is.na(n150g3_T_AIC) & n150g3_T_AIC!=0] n150g3_F_AIC_MED=n150g3_F_AIC[n150g3_F_AIC!=Inf & !is.na(n150g3_F_AIC) & n150g3_F_AIC!=0] n150g3_N_AIC_MED=n150g3_N_AIC[n150g3_N_AIC!=Inf & !is.na(n150g3_N_AIC) & n150g3_N_AIC!=0] n150g3_MCPMod_ave_MED=n150g3_MCPMod_ave[n150g3_MCPMod_ave!=Inf & !is.na(n150g3_MCPMod_ave) & n150g3_MCPMod_ave!=0] n150g3_T_ave_MED=n150g3_T_ave[n150g3_T_ave!=Inf & !is.na(n150g3_T_ave) & n150g3_T_ave!=0] n150g3_F_ave_MED=n150g3_F_ave[n150g3_F_ave!=Inf & !is.na(n150g3_F_ave) & n150g3_F_ave!=0] n150g3_N_ave_MED=n150g3_N_ave[n150g3_N_ave!=Inf & !is.na(n150g3_N_ave) & n150g3_N_ave!=0] ### minp ### #MSE round(c(mean((n150g3_MCPMod_minp_MED-d_tar_mod[3])^2), mean((n150g3_T_minp_MED-d_tar_mod[3])^2), mean((n150g3_F_minp_MED-d_tar_mod[3])^2), mean((n150g3_N_minp_MED-d_tar_mod[3])^2)),digits=3) #Bias round(c(mean((n150g3_MCPMod_minp_MED-d_tar_mod[3])), mean((n150g3_T_minp_MED-d_tar_mod[3])), mean((n150g3_F_minp_MED-d_tar_mod[3])), mean((n150g3_N_minp_MED-d_tar_mod[3]))),digits=3) ### AIC ### #MSE round(c(mean((n150g3_MCPMod_AIC_MED-d_tar_mod[3])^2), mean((n150g3_T_AIC_MED-d_tar_mod[3])^2), mean((n150g3_F_AIC_MED-d_tar_mod[3])^2), mean((n150g3_N_AIC_MED-d_tar_mod[3])^2)),digits=3) #Bias round(c(mean((n150g3_MCPMod_AIC_MED-d_tar_mod[3])), mean((n150g3_T_AIC_MED-d_tar_mod[3])), mean((n150g3_F_AIC_MED-d_tar_mod[3])), mean((n150g3_N_AIC_MED-d_tar_mod[3]))),digits=3) ### ave ### #MSE round(c(mean((n150g3_MCPMod_ave_MED-d_tar_mod[3])^2), mean((n150g3_T_ave_MED-d_tar_mod[3])^2), mean((n150g3_F_ave_MED-d_tar_mod[3])^2), mean((n150g3_N_ave_MED-d_tar_mod[3])^2)),digits=3) #Bias round(c(mean((n150g3_MCPMod_ave_MED-d_tar_mod[3])), mean((n150g3_T_ave_MED-d_tar_mod[3])), mean((n150g3_F_ave_MED-d_tar_mod[3])), mean((n150g3_N_ave_MED-d_tar_mod[3]))),digits=3) ######################n=150 g4######################### n150g4_MCPMod_minp=n150g4_dosage[,"MED_MCPMod_minp"] n150g4_T_minp=n150g4_dosage[,"MED_T_minp"] n150g4_F_minp=n150g4_dosage[,"MED_F_minp"] n150g4_N_minp=n150g4_dosage[,"MED_N_minp"] n150g4_MCPMod_AIC=n150g4_dosage[,"MED_MCPMod_AIC"] n150g4_T_AIC=n150g4_dosage[,"MED_T_AIC"] n150g4_F_AIC=n150g4_dosage[,"MED_F_AIC"] n150g4_N_AIC=n150g4_dosage[,"MED_N_AIC"] n150g4_MCPMod_ave=n150g4_dosage[,"MED_MCPMod_ave"] n150g4_T_ave=n150g4_dosage[,"MED_T_ave"] n150g4_F_ave=n150g4_dosage[,"MED_F_ave"] n150g4_N_ave=n150g4_dosage[,"MED_N_ave"] n150g4_MCPMod_minp_MED=n150g4_MCPMod_minp[n150g4_MCPMod_minp!=Inf & !is.na(n150g4_MCPMod_minp) & n150g4_MCPMod_minp!=0] n150g4_T_minp_MED=n150g4_T_minp[n150g4_T_minp!=Inf & !is.na(n150g4_T_minp) & n150g4_T_minp!=0] n150g4_F_minp_MED=n150g4_F_minp[n150g4_F_minp!=Inf & !is.na(n150g4_F_minp) & n150g4_F_minp!=0] n150g4_N_minp_MED=n150g4_N_minp[n150g4_N_minp!=Inf & !is.na(n150g4_N_minp) & n150g4_N_minp!=0] n150g4_MCPMod_AIC_MED=n150g4_MCPMod_AIC[n150g4_MCPMod_AIC!=Inf & !is.na(n150g4_MCPMod_AIC) & n150g4_MCPMod_AIC!=0] n150g4_T_AIC_MED=n150g4_T_AIC[n150g4_T_AIC!=Inf & !is.na(n150g4_T_AIC) & n150g4_T_AIC!=0] n150g4_F_AIC_MED=n150g4_F_AIC[n150g4_F_AIC!=Inf & !is.na(n150g4_F_AIC) & n150g4_F_AIC!=0] n150g4_N_AIC_MED=n150g4_N_AIC[n150g4_N_AIC!=Inf & !is.na(n150g4_N_AIC) & n150g4_N_AIC!=0] n150g4_MCPMod_ave_MED=n150g4_MCPMod_ave[n150g4_MCPMod_ave!=Inf & !is.na(n150g4_MCPMod_ave) & n150g4_MCPMod_ave!=0] n150g4_T_ave_MED=n150g4_T_ave[n150g4_T_ave!=Inf & !is.na(n150g4_T_ave) & n150g4_T_ave!=0] n150g4_F_ave_MED=n150g4_F_ave[n150g4_F_ave!=Inf & !is.na(n150g4_F_ave) & n150g4_F_ave!=0] n150g4_N_ave_MED=n150g4_N_ave[n150g4_N_ave!=Inf & !is.na(n150g4_N_ave) & n150g4_N_ave!=0] ### minp ### #MSE round(c(mean((n150g4_MCPMod_minp_MED-d_tar_mod[4])^2), mean((n150g4_T_minp_MED-d_tar_mod[4])^2), mean((n150g4_F_minp_MED-d_tar_mod[4])^2), mean((n150g4_N_minp_MED-d_tar_mod[4])^2)),digits=3) #Bias round(c(mean((n150g4_MCPMod_minp_MED-d_tar_mod[4])), mean((n150g4_T_minp_MED-d_tar_mod[4])), mean((n150g4_F_minp_MED-d_tar_mod[4])), mean((n150g4_N_minp_MED-d_tar_mod[4]))),digits=3) ### AIC ### #MSE round(c(mean((n150g4_MCPMod_AIC_MED-d_tar_mod[4])^2), mean((n150g4_T_AIC_MED-d_tar_mod[4])^2), mean((n150g4_F_AIC_MED-d_tar_mod[4])^2), mean((n150g4_N_AIC_MED-d_tar_mod[4])^2)),digits=3) #Bias round(c(mean((n150g4_MCPMod_AIC_MED-d_tar_mod[4])), mean((n150g4_T_AIC_MED-d_tar_mod[4])), mean((n150g4_F_AIC_MED-d_tar_mod[4])), mean((n150g4_N_AIC_MED-d_tar_mod[4]))),digits=3) ### ave ### #MSE round(c(mean((n150g4_MCPMod_ave_MED-d_tar_mod[4])^2), mean((n150g4_T_ave_MED-d_tar_mod[4])^2), mean((n150g4_F_ave_MED-d_tar_mod[4])^2), mean((n150g4_N_ave_MED-d_tar_mod[4])^2)),digits=3) #Bias round(c(mean((n150g4_MCPMod_ave_MED-d_tar_mod[4])), mean((n150g4_T_ave_MED-d_tar_mod[4])), mean((n150g4_F_ave_MED-d_tar_mod[4])), mean((n150g4_N_ave_MED-d_tar_mod[4]))),digits=3) ######################n=150 g5######################### n150g5_MCPMod_minp=n150g5_dosage[,"MED_MCPMod_minp"] n150g5_T_minp=n150g5_dosage[,"MED_T_minp"] n150g5_F_minp=n150g5_dosage[,"MED_F_minp"] n150g5_N_minp=n150g5_dosage[,"MED_N_minp"] n150g5_MCPMod_AIC=n150g5_dosage[,"MED_MCPMod_AIC"] n150g5_T_AIC=n150g5_dosage[,"MED_T_AIC"] n150g5_F_AIC=n150g5_dosage[,"MED_F_AIC"] n150g5_N_AIC=n150g5_dosage[,"MED_N_AIC"] n150g5_MCPMod_ave=n150g5_dosage[,"MED_MCPMod_ave"] n150g5_T_ave=n150g5_dosage[,"MED_T_ave"] n150g5_F_ave=n150g5_dosage[,"MED_F_ave"] n150g5_N_ave=n150g5_dosage[,"MED_N_ave"] n150g5_MCPMod_minp_MED=n150g5_MCPMod_minp[n150g5_MCPMod_minp!=Inf & !is.na(n150g5_MCPMod_minp) & n150g5_MCPMod_minp!=0] n150g5_T_minp_MED=n150g5_T_minp[n150g5_T_minp!=Inf & !is.na(n150g5_T_minp) & n150g5_T_minp!=0] n150g5_F_minp_MED=n150g5_F_minp[n150g5_F_minp!=Inf & !is.na(n150g5_F_minp) & n150g5_F_minp!=0] n150g5_N_minp_MED=n150g5_N_minp[n150g5_N_minp!=Inf & !is.na(n150g5_N_minp) & n150g5_N_minp!=0] n150g5_MCPMod_AIC_MED=n150g5_MCPMod_AIC[n150g5_MCPMod_AIC!=Inf & !is.na(n150g5_MCPMod_AIC) & n150g5_MCPMod_AIC!=0] n150g5_T_AIC_MED=n150g5_T_AIC[n150g5_T_AIC!=Inf & !is.na(n150g5_T_AIC) & n150g5_T_AIC!=0] n150g5_F_AIC_MED=n150g5_F_AIC[n150g5_F_AIC!=Inf & !is.na(n150g5_F_AIC) & n150g5_F_AIC!=0] n150g5_N_AIC_MED=n150g5_N_AIC[n150g5_N_AIC!=Inf & !is.na(n150g5_N_AIC) & n150g5_N_AIC!=0] n150g5_MCPMod_ave_MED=n150g5_MCPMod_ave[n150g5_MCPMod_ave!=Inf & !is.na(n150g5_MCPMod_ave) & n150g5_MCPMod_ave!=0] n150g5_T_ave_MED=n150g5_T_ave[n150g5_T_ave!=Inf & !is.na(n150g5_T_ave) & n150g5_T_ave!=0] n150g5_F_ave_MED=n150g5_F_ave[n150g5_F_ave!=Inf & !is.na(n150g5_F_ave) & n150g5_F_ave!=0] n150g5_N_ave_MED=n150g5_N_ave[n150g5_N_ave!=Inf & !is.na(n150g5_N_ave) & n150g5_N_ave!=0] ### minp ### #MSE round(c(mean((n150g5_MCPMod_minp_MED-d_tar_mod[5])^2), mean((n150g5_T_minp_MED-d_tar_mod[5])^2), mean((n150g5_F_minp_MED-d_tar_mod[5])^2), mean((n150g5_N_minp_MED-d_tar_mod[5])^2)),digits=3) #Bias round(c(mean((n150g5_MCPMod_minp_MED-d_tar_mod[5])), mean((n150g5_T_minp_MED-d_tar_mod[5])), mean((n150g5_F_minp_MED-d_tar_mod[5])), mean((n150g5_N_minp_MED-d_tar_mod[5]))),digits=3) ### AIC ### #MSE round(c(mean((n150g5_MCPMod_AIC_MED-d_tar_mod[5])^2), mean((n150g5_T_AIC_MED-d_tar_mod[5])^2), mean((n150g5_F_AIC_MED-d_tar_mod[5])^2), mean((n150g5_N_AIC_MED-d_tar_mod[5])^2)),digits=3) #Bias round(c(mean((n150g5_MCPMod_AIC_MED-d_tar_mod[5])), mean((n150g5_T_AIC_MED-d_tar_mod[5])), mean((n150g5_F_AIC_MED-d_tar_mod[5])), mean((n150g5_N_AIC_MED-d_tar_mod[5]))),digits=3) ### ave ### #MSE round(c(mean((n150g5_MCPMod_ave_MED-d_tar_mod[5])^2), mean((n150g5_T_ave_MED-d_tar_mod[5])^2), mean((n150g5_F_ave_MED-d_tar_mod[5])^2), mean((n150g5_N_ave_MED-d_tar_mod[5])^2)),digits=3) #Bias round(c(mean((n150g5_MCPMod_ave_MED-d_tar_mod[5])), mean((n150g5_T_ave_MED-d_tar_mod[5])), mean((n150g5_F_ave_MED-d_tar_mod[5])), mean((n150g5_N_ave_MED-d_tar_mod[5]))),digits=3) ######################n=150 g6######################### n150g6_MCPMod_minp=n150g6_dosage[,"MED_MCPMod_minp"] n150g6_T_minp=n150g6_dosage[,"MED_T_minp"] n150g6_F_minp=n150g6_dosage[,"MED_F_minp"] n150g6_N_minp=n150g6_dosage[,"MED_N_minp"] n150g6_MCPMod_AIC=n150g6_dosage[,"MED_MCPMod_AIC"] n150g6_T_AIC=n150g6_dosage[,"MED_T_AIC"] n150g6_F_AIC=n150g6_dosage[,"MED_F_AIC"] n150g6_N_AIC=n150g6_dosage[,"MED_N_AIC"] n150g6_MCPMod_ave=n150g6_dosage[,"MED_MCPMod_ave"] n150g6_T_ave=n150g6_dosage[,"MED_T_ave"] n150g6_F_ave=n150g6_dosage[,"MED_F_ave"] n150g6_N_ave=n150g6_dosage[,"MED_N_ave"] n150g6_MCPMod_minp_MED=n150g6_MCPMod_minp[n150g6_MCPMod_minp!=Inf & !is.na(n150g6_MCPMod_minp) & n150g6_MCPMod_minp!=0] n150g6_T_minp_MED=n150g6_T_minp[n150g6_T_minp!=Inf & !is.na(n150g6_T_minp) & n150g6_T_minp!=0] n150g6_F_minp_MED=n150g6_F_minp[n150g6_F_minp!=Inf & !is.na(n150g6_F_minp) & n150g6_F_minp!=0] n150g6_N_minp_MED=n150g6_N_minp[n150g6_N_minp!=Inf & !is.na(n150g6_N_minp) & n150g6_N_minp!=0] n150g6_MCPMod_AIC_MED=n150g6_MCPMod_AIC[n150g6_MCPMod_AIC!=Inf & !is.na(n150g6_MCPMod_AIC) & n150g6_MCPMod_AIC!=0] n150g6_T_AIC_MED=n150g6_T_AIC[n150g6_T_AIC!=Inf & !is.na(n150g6_T_AIC) & n150g6_T_AIC!=0] n150g6_F_AIC_MED=n150g6_F_AIC[n150g6_F_AIC!=Inf & !is.na(n150g6_F_AIC) & n150g6_F_AIC!=0] n150g6_N_AIC_MED=n150g6_N_AIC[n150g6_N_AIC!=Inf & !is.na(n150g6_N_AIC) & n150g6_N_AIC!=0] n150g6_MCPMod_ave_MED=n150g6_MCPMod_ave[n150g6_MCPMod_ave!=Inf & !is.na(n150g6_MCPMod_ave) & n150g6_MCPMod_ave!=0] n150g6_T_ave_MED=n150g6_T_ave[n150g6_T_ave!=Inf & !is.na(n150g6_T_ave) & n150g6_T_ave!=0] n150g6_F_ave_MED=n150g6_F_ave[n150g6_F_ave!=Inf & !is.na(n150g6_F_ave) & n150g6_F_ave!=0] n150g6_N_ave_MED=n150g6_N_ave[n150g6_N_ave!=Inf & !is.na(n150g6_N_ave) & n150g6_N_ave!=0] ### minp ### #MSE round(c(mean((n150g6_MCPMod_minp_MED-d_tar_mod[6])^2), mean((n150g6_T_minp_MED-d_tar_mod[6])^2), mean((n150g6_F_minp_MED-d_tar_mod[6])^2), mean((n150g6_N_minp_MED-d_tar_mod[6])^2)),digits=3) #Bias round(c(mean((n150g6_MCPMod_minp_MED-d_tar_mod[6])), mean((n150g6_T_minp_MED-d_tar_mod[6])), mean((n150g6_F_minp_MED-d_tar_mod[6])), mean((n150g6_N_minp_MED-d_tar_mod[6]))),digits=3) ### AIC ### #MSE round(c(mean((n150g6_MCPMod_AIC_MED-d_tar_mod[6])^2), mean((n150g6_T_AIC_MED-d_tar_mod[6])^2), mean((n150g6_F_AIC_MED-d_tar_mod[6])^2), mean((n150g6_N_AIC_MED-d_tar_mod[6])^2)),digits=3) #Bias round(c(mean((n150g6_MCPMod_AIC_MED-d_tar_mod[6])), mean((n150g6_T_AIC_MED-d_tar_mod[6])), mean((n150g6_F_AIC_MED-d_tar_mod[6])), mean((n150g6_N_AIC_MED-d_tar_mod[6]))),digits=3) ### ave ### #MSE round(c(mean((n150g6_MCPMod_ave_MED-d_tar_mod[6])^2), mean((n150g6_T_ave_MED-d_tar_mod[6])^2), mean((n150g6_F_ave_MED-d_tar_mod[6])^2), mean((n150g6_N_ave_MED-d_tar_mod[6])^2)),digits=3) #Bias round(c(mean((n150g6_MCPMod_ave_MED-d_tar_mod[6])), mean((n150g6_T_ave_MED-d_tar_mod[6])), mean((n150g6_F_ave_MED-d_tar_mod[6])), mean((n150g6_N_ave_MED-d_tar_mod[6]))),digits=3)