Description Usage Arguments Value Author(s) References See Also Examples

View source: R/RCreliability.ex.R

This function corrects the bias in estimated regression coefficients due to classical additive measurement error (i.e., within-person variation) in logistic regressions under the main study/external reliability study design. The output includes naive and corrected estimators for the regression coefficients; for the variance estimates of the corrected estimators, the extra variation due to estimating the parameters in the measurement error model is ignored or taken into account.

1 | ```
RCreliability.ex(z.main, r, z.rep, W=NULL, Y)
``` |

`z.main` |
covariates measured with error in the main study, a n*p matrix, where n is the number of subjects in the main study and p is the number of covariates. |

`r` |
number of replicates in the reliability study, vector of length m, where m is the number of subjects in the reliability study. Note: For each subject, the covariates with error in the reliability study should have the same number of replicates. |

`z.rep` |
covariates measured with error in the reliability study, a list with p elements, each element in a form of a m*max(r) matrix; subjects with less observations than max(r) should also have max(r) columns with the unobserved elements filled with NA. |

`W` |
covariates without measurement errors, a n*q matrix, where q stands for the number of covariates without measurement errors. Default is NULL. |

`Y` |
response variable in the main study, vector of length n. Values should be 0 or 1 in this logistic regression setting. |

A list with 3 table of regression statistics.

`Naive estimates` |
Estimates of regression coefficients ignoring the measurement errors. |

`Corrected estimates` |
Regression calibration estimates without taking into account the extra variation due to estimating the parameters in the measurement error model. |

`Corrected estimates, taking into account the extra variation due to estimating the parameters in the measurement error model` |
Regression calibration estimates taking into account the extra variation due to estimating the parameters in the measurement error model. |

Yu Lu, Molin Wang

Carroll RJ, Ruppert D, Stefanski L, Crainiceanu CM. Measurement Error in Nonlinear Models: A Modern Perspective. 2nd ed. New York: Chapman & Hall/CRC; 2006

RCreliability.in function

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | ```
library(RCreliability)
library(mgcv)
# Regression on only one covariates measured with error
x<-rnorm(3000,0,1)
#ICC=0.7 generate z
z.main <- matrix(x[1:1500]+rnorm(1500,0,sqrt(0.4)))
r<-c(rep(3,700),rep(4,800))
z.rep<-list(rbind(cbind(x[1501:2200]+rnorm(700,0,sqrt(0.4)),
x[1501:2200]+rnorm(700,0,sqrt(0.4)),
x[1501:2200]+rnorm(700,0,sqrt(0.4)),NA),
cbind(x[2201:3000]+rnorm(800,0,sqrt(0.4)),
x[2201:3000]+rnorm(800,0,sqrt(0.4)),
x[2201:3000]+rnorm(800,0,sqrt(0.4)),
x[2201:3000]+rnorm(800,0,sqrt(0.4)))))
#prevalence about 0.105
p<-exp(-2.2+log(1.5)*x[1:1500])/
(1+exp(-2.2+log(1.5)*x[1:1500]))
Y<-sapply(p,function(x) rbinom(1,1,x))
fit1 <- RCreliability.ex(z.main,r,z.rep,W=NULL,Y)
fit1
# Regression on one covariates measured with error and one confounder
x<-rnorm(3000,0,1)
#ICC=0.7 generate z
z.main <- matrix(x[1:1500]+rnorm(1500,0,sqrt(0.4)))
r<-c(rep(3,700),rep(4,800))
z.rep<-list(rbind(cbind(x[1501:2200]+rnorm(700,0,sqrt(0.4)),
x[1501:2200]+rnorm(700,0,sqrt(0.4)),
x[1501:2200]+rnorm(700,0,sqrt(0.4)),NA),
cbind(x[2201:3000]+rnorm(800,0,sqrt(0.4)),
x[2201:3000]+rnorm(800,0,sqrt(0.4)),
x[2201:3000]+rnorm(800,0,sqrt(0.4)),
x[2201:3000]+rnorm(800,0,sqrt(0.4)))))
W<-matrix(sapply(x[1:1500], function(t){if(t>median(x)) {return(rbinom(1,1,0.5))}
if(t<=median(x)){return(rbinom(1,1,0.3))}}))
#prevalence about 0.103
p<-exp(-2.4+log(1.5)*x[1:1500]+log(1.5)*W)/
(1+exp(-2.4+log(1.5)*x[1:1500]+log(1.5)*W))
Y<-sapply(p,function(x) rbinom(1,1,x))
fit2<-RCreliability.ex(z.main,r,z.rep,W=W,Y)
fit2
# Regression on two covariates measured with error and no confounder
x<-rmvn(3000,c(0,0),matrix(c(1,0.3,0.3,1),nrow=2))
#ICC=0.7 generate z
z.main = x[1:1500,1:2]+rnorm(1500,0,sqrt(0.4))
r<-c(rep(2,500),rep(3,400),rep(4,600))
z.rep<-list(rbind(cbind(x[1501:2000,1]+rnorm(500,0,sqrt(0.4)),
x[1501:2000,1]+rnorm(500,0,sqrt(0.4)),NA,NA),
cbind(x[2001:2400,1]+rnorm(400,0,sqrt(0.4)),
x[2001:2400,1]+rnorm(400,0,sqrt(0.4)),
x[2001:2400,1]+rnorm(400,0,sqrt(0.4)),NA),
cbind(x[2401:3000,1]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,1]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,1]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,1]+rnorm(600,0,sqrt(0.4)))),
rbind(cbind(x[1501:2000,2]+rnorm(500,0,sqrt(0.4)),
x[1501:2000,2]+rnorm(500,0,sqrt(0.4)),NA,NA),
cbind(x[2001:2400,2]+rnorm(400,0,sqrt(0.4)),
x[2001:2400,2]+rnorm(400,0,sqrt(0.4)),
x[2001:2400,2]+rnorm(400,0,sqrt(0.4)),NA),
cbind(x[2401:3000,2]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,2]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,2]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,2]+rnorm(600,0,sqrt(0.4)))))
#prevalence about 0.105
p<-exp(-2.3+log(1.5)*rowSums(x[1:1500,]))/
(1+exp(-2.3+log(1.5)*rowSums(x[1:1500,])))
Y<-sapply(p,function(x) rbinom(1,1,x))
fit3<-RCreliability.ex(z.main,r,z.rep,W=NULL,Y)
fit3
# Regression on two covariates measured with error and two confounders
x<-rmvn(3000,c(0,0,0),matrix(c(1,0.3,0.2,0.3,1,0.5,0.2,0.5,1),nrow=3))
w2<-sapply(x[,1], function(t){if(t>median(x[,1])) {return(rbinom(1,1,0.5))}
if(t<=median(x[,1])){return(rbinom(1,1,0.3))}})
#ICC=0.7 generate z
r<-c(rep(2,500),rep(3,400),rep(4,600))
W<-cbind(x[1:1500,3],w2[1:1500])
z.main = x[1:1500,1:2]+rnorm(1500,0,sqrt(0.4))
z.rep<-list(rbind(cbind(x[1501:2000,1]+rnorm(500,0,sqrt(0.4)),
x[1501:2000,1]+rnorm(500,0,sqrt(0.4)),NA,NA),
cbind(x[2001:2400,1]+rnorm(400,0,sqrt(0.4)),
x[2001:2400,1]+rnorm(400,0,sqrt(0.4)),
x[2001:2400,1]+rnorm(400,0,sqrt(0.4)),NA),
cbind(x[2401:3000,1]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,1]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,1]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,1]+rnorm(600,0,sqrt(0.4)))),
rbind(cbind(x[1501:2000,2]+rnorm(500,0,sqrt(0.4)),
x[1501:2000,2]+rnorm(500,0,sqrt(0.4)),NA,NA),
cbind(x[2001:2400,2]+rnorm(400,0,sqrt(0.4)),
x[2001:2400,2]+rnorm(400,0,sqrt(0.4)),
x[2001:2400,2]+rnorm(400,0,sqrt(0.4)),NA),
cbind(x[2401:3000,2]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,2]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,2]+rnorm(600,0,sqrt(0.4)),
x[2401:3000,2]+rnorm(600,0,sqrt(0.4)))))
#prevalence about 0.105
p<-exp(-2.7+log(1.5)*rowSums(x[1:1500,1:3])+log(1.5)*w2[1:1500])/
(1+exp(-2.7+log(1.5)*rowSums(x[1:1500,1:3])+log(1.5)*w2[1:1500]))
Y<-sapply(p,function(x) rbinom(1,1,x))[1:1500]
fit4<-RCreliability.ex(z.main,r,z.rep,W=W,Y)
fit4
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.