# 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

1 2 3 |

### 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. |

### Details

The function repeatly calls `rncreg`

for the values of lambda.

### Value

A list will be returned with the following slots:

`models` |
A list of objects from |

`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. |

### Author(s)

Tianxi Li, Elizaveta Levina, Ji Zhu

Maintainer: Tianxi Li tianxili@umich.edu

### 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

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 | ```
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
``` |