Learn R Programming

netcoh (version 0.2)

rncregpath: Fits regression models with network cohesion effects for a sequence of cohesion levels.

Description

Fits models by rncreg for a sequence of lambda values.

Usage

rncregpath(A,lambdaseq,Y=NULL,X=NULL,dt=NULL,gamma=0.05, model=c("linear","logistic","cox"), max.iter=50,tol=1e-4, init=NULL, cv=NULL,cv.seed=999,low.dim=NULL,verbose=FALSE)

Arguments

A
An nxn symmetric adjacency matrix for the network.
lambdaseq
A vector of lambda values.
Y
An nx1 matrix of response, if the model to fit is linear or logistic. It will not be used if one fits Cox's model.
X
An nxp covariate matrix with each row being the covariates for one individual. If one want to fits a model without using any covariate, it can be empty.
dt
Only used to fit Cox's model. An nx2 data.frame such that the first column is the observed time while the second column is the event indicator which is 1 for truely observed events and 0 for censored events.
gamma
The amount of diagonal regularization added to graph Laplacian.
model
Can only be one of "linear", "logistic" or "cox".
max.iter
The maximum number of newton steps to iterate. Only used for logistic model or Cox's model.
tol
The tolerance level for convergence. Only used for logistic model or Cox's model.
init
The initial point for newton algoritm. It should be an (n+p)x1 matrix that stacks alpha and beta. Only used for logistic model or Cox's model. If not specified, zeros will be used.
cv
Number of folds for cross-validation. If unspecified, then no cross-validation will be done.
cv.seed
Random number generator seed for cross-validation.
low.dim
Only used for linear model. If the probelm is a low dimensional problem such that n>>p, then using low.dim=TRUE is potentially faster.
verbose
If TRUE, the log likelihood in each newton step will be printed. Only used for logistic model and Cox's model.

Value

models
A list of objects from rncReg class, each of which corresponds to a specific lambda value in lambdaseq.
cv.seq
The sequence of cross-validation loss corresponding to lambdaseq.
cv.sd
The sequence of corssivalidation standard deviation
cv.min.index
The index of model that corresponds to the one with miminum cv loss.
cv.1sd.index
The index of model that corresponds to the one selected by 1 sigma rule.

Details

The function repeatly calls rncreg for the values of lambda.

References

Tianxi Li, Elizaveta Levina and Ji Zhu. (2016) Regression with network cohesion, http://arxiv.org/pdf/1602.01192v1.pdf

See Also

rncReg,predict.rncReg

Examples

Run this code
set.seed(100)

A <- matrix(0,200,200)
A[1:100,1:100] <- 1
A[101:200,101:200] <- 1
diag(A) <- 0

alpha <- c(rep(1,100),rep(-1,100)) + rnorm(200)*0.5
A <- A[c(1:50,101:150,51:100,151:200),c(1:50,101:150,51:100,151:200)]
alpha <- alpha[c(1:50,101:150,51:100,151:200)]

beta <- rnorm(2)

X <- matrix(rnorm(400),ncol=2)

Y <- X

A1 <- A[1:100,1:100]
X1 <- X[1:100,]
Y1 <- matrix(Y[1:100],ncol=1)


## If one wants to regularize the Laplacian
## by using gamma > 0 in rncreg,
## we suggest use centered data.
#mean.x <- colMeans(X1)
#mean.y <- mean(Y1)
#Y1 <- Y1-mean.y
#X1 <- t(t(X1)-mean.x)
#Y <- Y-mean.y
#X <- t(t(X)-mean.x)



m.list <- rncregpath(A=A1,X=X1,Y=Y1,model="linear",
                     lambdaseq=exp(seq(0,log(200),length.out=20)),gamma=0,cv=5)
m.list$cv.seq
  

Run the code above in your browser using DataLab