Learn R Programming

weightedScores (version 0.9.5.3)

weightMat: WEIGHT MATRICES FOR THE ESTIMATING EQUATIONS

Description

Weight matrices for the estimating equations.

Usage

weightMat(b,gam,rh,xdat,ydat,id,tvec,margmodel,corstr,link)
weightMat.ord(b,gam,rh,xdat,ydat,id,tvec,corstr,link)

Arguments

b

The regression coefficients.

gam

The uinivariate parameters that are not regression coefficients. That is the parameter \(\gamma\) of negative binomial distribution or the \(q\)-dimensional vector of the univariate cutpoints of ordinal model. \(\gamma\) is NULL for Poisson and binary regression.

rh

The vector of normal copula parameters.

xdat

\((\mathbf{x}_1 , \mathbf{x}_2 , \ldots , \mathbf{x}_n )^\top\), where the matrix \(\mathbf{x}_i,\,i=1,\ldots,n\) for a given unit will depend on the times of observation for that unit (\(j_i\)) and will have number of rows \(j_i\), each row corresponding to one of the \(j_i\) elements of \(y_i\) and \(p\) columns where \(p\) is the number of covariates including the unit first column to account for the intercept (except for ordinal regression where there is no intercept). This xdat matrix is of dimension \((N\times p),\) where \(N =\sum_{i=1}^n j_i\) is the total number of observations from all units.

ydat

\((y_1 , y_2 , \ldots , y_n )^\top\), where the reponse data vectors \(y_i, i=1,\ldots,n\) are of possibly different lengths for different units. In particular, we now have that \(y_i\) is (\(j_i \times 1\)), where \(j_i\) is the number of observations on unit \(i\). The total number of observations from all units is \(N =\sum_{i=1}^n j_i\). The ydat are the collection of data vectors \(y_i, i = 1,\ldots,n\) one from each unit which summarize all the data together in a single, long vector of length \(N\).

id

An index for individuals or clusters.

tvec

A vector with the time indicator of individuals or clusters.

margmodel

Indicates the marginal model. Choices are “poisson” for Poisson, “bernoulli” for Bernoulli, and “nb1” , “nb2” for the NB1 and NB2 parametrization of negative binomial in Cameron and Trivedi (1998).

corstr

Indicates the latent correlation structure of normal copula. Choices are “exch”, “ar”, and “unstr” for exchangeable, ar(1) and unstrucutred correlation structure, respectively.

link

The link function. Choices are “log” for the log link function, “logit” for the logit link function, and “probit” for the probit link function.

Value

A list containing the following components:

omega

The array with the \(\Omega_i,\ i=1,\ldots,n\) matrices.

delta

The array with the \(\Delta_i,\ i=1,\ldots,n\) matrices.

X

The array with the \(X_i,\ i=1,\ldots,n\) matrices.

Details

The fixed weight matrices \(W_{i,\rm working}\) based on a working discretized MVN, of the weighted scores equations in Nikoloulopoulos et al. (2011) $$ g_1= g_1(a)=\sum_{i=1}^n X_i^T\,W_{i,\rm working}^{-1}\, s_i(a)=0, $$ where \(W_{i,\rm working}^{-1}=\Delta_i\Omega_{i,\rm working}^{-1}= \Delta_i({\tilde a})\Omega_i({\tilde a},{\tilde R})^{-1}\) is based on the covariance matrix of \(s_i(a)\) computed from the fitted discretized MVN model with estimated parameters \({\tilde a}, {\tilde R}\).

Note that weightMat.ord is a variant of the code for ordinal (probit and logistic) regression.

References

Nikoloulopoulos, A.K., Joe, H. and Chaganty, N.R. (2011) Weighted scores method for regression models with dependent data. Biostatistics, 12, 653--665. 10.1093/biostatistics/kxr005.

Nikoloulopoulos, A.K. (2016) Correlation structure and variable selection in generalized estimating equations via composite likelihood information criteria. Statistics in Medicine, 35, 2377--2390. 10.1002/sim.6871.

Nikoloulopoulos, A.K. (2017) Weighted scores method for longitudinal ordinal data. Arxiv e-prints, <arXiv:1510.07376>. https://arxiv.org/abs/1510.07376.

See Also

wtsc, solvewtsc, godambe, wtsc.wrapper

Examples

Run this code
# NOT RUN {
################################################################################
#                            binary regression
################################################################################
################################################################################
#                      read and set up the data set
################################################################################
data(toenail)
xdat<-cbind(1,toenail$treat,toenail$time,toenail$treat*toenail$time)
# response
ydat<-toenail$y
#id
id<-toenail$id
#time
tvec<-toenail$time
################################################################################
#                      select the marginal model
################################################################################
margmodel="bernoulli"
link="probit"
################################################################################
#                      select the  correlation structure
################################################################################
corstr="ar"
################################################################################
#                      perform CL1 estimation
################################################################################
i.est<-iee(xdat,ydat,margmodel,link)
cat("\niest: IEE estimates\n")
print(c(i.est$reg,i.est$gam))
# est.rho<-cl1(b=i.est$reg,gam=i.est$gam,xdat,ydat,id,tvec,margmodel,corstr,link)
# cat("\nest.rho: CL1 estimates\n")
# print(est.rho$e)
# [1] 0.8941659
################################################################################
#                      obtain the fixed weight matrices
################################################################################
WtScMat<-weightMat(b=i.est$reg,gam=i.est$gam,rh=0.8941659,
xdat,ydat,id,tvec,margmodel,corstr,link)
################################################################################
#                         Ordinal regression 
################################################################################
################################################################################
#                      read and set up data set
################################################################################
# }
# NOT RUN {
data(arthritis)
nn=nrow(arthritis)
bas2<-bas3<-bas4<-bas5<-rep(0,nn)
bas2[arthritis$b==2]<-1
bas3[arthritis$b==3]<-1
bas4[arthritis$b==4]<-1
bas5[arthritis$b==5]<-1
t2<-t3<-rep(0,nn)
t2[arthritis$ti==3]<-1
t3[arthritis$ti==5]<-1
xdat=cbind(t2,t3,arthritis$trt,bas2,bas3,bas4,bas5,arthritis$age) 
ydat=arthritis$y
id<-arthritis$id
#time
tvec<-arthritis$time
################################################################################
#                      select the link
################################################################################
link="probit"
################################################################################
#                      select the  correlation structure
################################################################################
corstr="exch"
################################################################################
#                      perform CL1 estimation
################################################################################
i.est<-iee.ord(xdat,ydat,link)
cat("\niest: IEE estimates\n")
print(c(i.est$reg,i.est$gam))
est.rho<-cl1.ord(b=i.est$reg,gam=i.est$gam,xdat,ydat,id,tvec,corstr,link)
WtScMat<-weightMat.ord(b=i.est$reg,gam=i.est$gam,rh=est.rho$e,xdat,ydat,id,tvec,corstr,link)
# }

Run the code above in your browser using DataLab