powerCalData: Calculate the power for testing delta=0 based on a dataset

Description Usage Arguments Value Author(s) References Examples

Description

Calculate the power for testing delta=0 based on a dataset.

Usage

1
2
3
4
5
powerCalData(
  nSubj, 
  triangle, 
  frame,
  alpha = 0.05)

Arguments

nSubj

integer. number of subjects to be generated. Assume each subject has two observations.

triangle

the difference of the expected value the the extended Mann-Whitney U statistics between two prediction rules, i.e., triangle = eta^{(1)}_c - eta^{(2)}_c

frame

A data frame with 5 columns: cid, subuid, status, score1, and score2. cid indicates cluster id; subuid indicates unit ID within a cluster; status=1 indicates an eye is progressed; status=0 indicates an eye is not progressed; score1 represents the score based on prediction rule 1. score2 represents the score based on prediction rule 2.

alpha

type I error rate

Value

A list with 11 elements.

power

the esstimated power

rho

rho=corr(H(Z_{ij}), H(Z_{k ell})) , where H=Phi^{-1} is the probit transformation.

rho11

rho_{11}=corr(H_{ij}^{(1)}, H_{i ell}^{(1)}) , where H=Phi^{-1} is the probit transformation.

rho22

rho_{22}=corr(H_{ij}^{(2)}, H_{i ell}^{(2)}) , where H=Phi^{-1} is the probit transformation.

rho12

rho_{12}=corr(H_{ij}^{(1)}, H_{i ell}^{(2)}) , where H=Phi^{-1} is the probit transformation.

p11

p_{11}=Pr(delta_{i1}=1 & delta_{i2}=1) , where delta_{ij}=1 if the j-th subunit of the i-th cluster has progressed.

p10

p_{10}=Pr(delta_{i1}=1 & delta_{i2}=0) , where delta_{ij}=1 if the j-th subunit of the i-th cluster has progressed.

p01

p_{01}=Pr(delta_{i1}=0 & delta_{i2}=1) , where delta_{ij}=1 if the j-th subunit of the i-th cluster has progressed.

p00

p_{00}=Pr(delta_{i1}=0 & delta_{i2}=0) , where delta_{ij}=1 if the j-th subunit of the i-th cluster has progressed.

mu1

mu_1=H(Y)-H(Y_c) is the difference between probit transformation H(Y) and probit-shift alternative H(Y_c) for the first prediction score, where Y is the prediction score of a randomly selected progressing subunit, and Y_c is the counterfactual random variable obtained if each subunit that had progressed actually had not progressed.

mu2

mu_2=H(Y)-H(Y_c) is the difference between probit transformation H(Y) and probit-shift alternative H(Y_c) for the second prediction score, where Y is the prediction score of a randomly selected progressing subunit, and Y_c is the counterfactual random variable obtained if each subunit that had progressed actually had not progressed.

Author(s)

Bernard Rosner <stbar@channing.harvard.edu>, Weiliang Qiu <Weiliang.Qiu@gmail.com>, Meiling Ting Lee <MLTLEE@umd.edu>

References

Rosner B, Qiu W, and Lee MLT. Assessing Discrimination of Risk Prediction Rules in a Clustered Data Setting. Lifetime Data Anal. 2013 Apr; 19(2): 242-256.

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
set.seed(1234567)

datFrame = genSimDataGLMEM(nSubj = 30, beta0 = -6, sd.beta0i = 1.58, 
                          beta1 = 1.58, beta2 = -3.95, beta3 = 3.15, beta4 = 2.06,
                          beta5 = 0.51, beta6 = 1.47, beta7 = 3.11, 
                          p.smkcur = 0.08, p.inieye31 = 0.44, p.inieye32 = 0.42,
                          p.inieye41 = 0.12, p.inieye42 = 0.11, sd.lncalorc = 0.33)

print(dim(datFrame))
print(datFrame[1:2,])

# prediction rule 1
tt1 = getScore(fmla = prog~smkcur+lncalorc+inieye3+inieye4+factor(rtotfat), 
  cidVar = "cid", subuidVar = "subuid", statusVar = "prog", 
  datFrame = datFrame, mycorstr = "exchangeable",
  verbose = FALSE)
myframe1=tt1$frame

print(dim(myframe1))
print(myframe1[1:3,])

####
# prediction rule 2
tt2 = getScore(fmla = prog~smkcur+lncalorc+inieye3+inieye4, 
  cidVar = "cid", subuidVar = "subuid", statusVar = "prog", 
  datFrame = datFrame, mycorstr = "exchangeable",
  verbose = FALSE)
myframe2=tt2$frame

print(dim(myframe2))
print(myframe2[1:3,])

# combine scores from two prediction rules
myframe12=myframe1[, c("cid", "subuid", "status")]
myframe12$score1=myframe1$score
myframe12$score2=myframe2$score
print(dim(myframe12))
print(myframe12[1:3,])


res = powerCalData(nSubj = 30, triangle = 0.05, frame=myframe12, alpha = 0.05)

print(res)

riskPredictClustData documentation built on May 1, 2019, 6:34 p.m.