RCreliability.in: RCreliability.in

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

View source: R/RCreliability.in.R

Description

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 partially or fully replicated 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.

Usage

1
RCreliability.in(r, z, W=NULL, Y)

Arguments

r

number of replicates in the reliability study, vector of length n, where n 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

covariates measured with error in the reliability study, a list with p elements, each element in a form of a n*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.

Value

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.

Author(s)

Yu Lu, Molin Wang

References

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

See Also

RCreliability.ex function

Examples

  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
library(RCreliability)
library(mgcv)

# Regression on only one covariates measured with error
x<-rnorm(3000,0,1)
#ICC=0.7 generate z
r<-c(rep(1,1500),rep(3,700),rep(4,800))
z<-list(rbind(cbind(x[1:1500]+rnorm(1500,0,sqrt(0.4)),NA,NA,NA),
              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=0.105
p<-exp(-2.2+log(1.5)*x)/(1+exp(-2.2+log(1.5)*x))
Y<-sapply(p,function(x) rbinom(1,1,x))
fit1 <- RCreliability.in(r,z,W=NULL,Y)
fit1

# Regression on one covariates measured with error and one confounder
x<-rnorm(3000,0,1)
#ICC=0.7 generate z
r<-c(rep(1,1500),rep(3,700),rep(4,800))
z<-list(rbind(cbind(x[1:1500]+rnorm(1500,0,sqrt(0.4)),NA,NA,NA),
              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<-sapply(x, 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.104
p<-exp(-2.4+log(1.5)*x+log(1.5)*W)/(1+exp(-2.4+log(1.5)*x+log(1.5)*W))
Y<-sapply(p,function(x) rbinom(1,1,x))
fit2<-RCreliability.in(r,z,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
r<-c(rep(1,1500),rep(2,500),rep(3,400),rep(4,600))
z<-list(rbind(cbind(x[1:1500,1]+rnorm(1500,0,sqrt(0.4)),NA,NA,NA),
              cbind(x[1501:1500,1]+rnorm(500,0,sqrt(0.4)),
              x[1501:1500,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[1:1500,2]+rnorm(1500,0,sqrt(0.4)),NA,NA,NA),
              cbind(x[1501:1500,2]+rnorm(500,0,sqrt(0.4)),
              x[1501:1500,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+exp(-2.3+log(1.5)*rowSums(x)))
Y<-sapply(p,function(x) rbinom(1,1,x))
fit3<-RCreliability.in(r,z, 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(1,1500),rep(2,500),rep(3,400),rep(4,600))
W<-cbind(x[,3],w2)
z<-list(rbind(cbind(x[1:1500,1]+rnorm(1500,0,sqrt(0.4)),NA,NA,NA),
              cbind(x[1501:1500,1]+rnorm(500,0,sqrt(0.4)),
              x[1501:1500,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[1:1500,2]+rnorm(1500,0,sqrt(0.4)),NA,NA,NA),
              cbind(x[1501:1500,2]+rnorm(500,0,sqrt(0.4)),
              x[1501:1500,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.104
p<-exp(-2.65+log(1.5)*rowSums(x[,1:3])+log(1.5)*w2)/
(1+exp(-2.65+log(1.5)*rowSums(x[,1:3])+log(1.5)*w2))
Y<-sapply(p,function(x) rbinom(1,1,x))
fit4<-RCreliability.in(r,z,W=W,Y)
fit4

RCreliability documentation built on Dec. 10, 2021, 5:10 p.m.