Commit b83f745d authored by Armin Rauschenberger's avatar Armin Rauschenberger

automation

parent bd9eda70
Package: starnet Package: starnet
Version: 0.0.5 Version: 0.0.6
Title: Stacked Elastic Net Title: Stacked Elastic Net
Description: Implements stacked elastic net regression (Rauschenberger 2020, <doi:10.1093/bioinformatics/btaa535>). The elastic net generalises ridge and lasso regularisation (Zou 2005, <doi:10.1111/j.1467-9868.2005.00503.x>). Instead of fixing or tuning the mixing parameter alpha, we combine multiple alpha by stacked generalisation (Wolpert 1992 <doi:10.1016/S0893-6080(05)80023-1>). Description: Implements stacked elastic net regression (Rauschenberger 2020, <doi:10.1093/bioinformatics/btaa535>). The elastic net generalises ridge and lasso regularisation (Zou 2005, <doi:10.1111/j.1467-9868.2005.00503.x>). Instead of fixing or tuning the mixing parameter alpha, we combine multiple alpha by stacked generalisation (Wolpert 1992 <doi:10.1016/S0893-6080(05)80023-1>).
Depends: R (>= 3.0.0) Depends: R (>= 3.0.0)
......
...@@ -83,11 +83,19 @@ ...@@ -83,11 +83,19 @@
#' for the base and meta learners, respectively. #' for the base and meta learners, respectively.
#' #'
#' @examples #' @examples
#' \dontshow{
#' if(!grepl('SunOS',Sys.info()['sysname'])){
#' set.seed(1) #' set.seed(1)
#' n <- 50; p <- 100 #' n <- 50; p <- 100
#' y <- rnorm(n=n) #' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p) #' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X,family="gaussian") #' object <- starnet(y=y,X=X,family="gaussian")}}
#' \donttest{
#' set.seed(1)
#' n <- 50; p <- 100
#' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X,family="gaussian")}
#' #'
starnet <- function(y,X,family="gaussian",nalpha=21,alpha=NULL,nfolds=10,foldid=NULL,type.measure="deviance",alpha.meta=1,penalty.factor=NULL,intercept=NULL,upper.limit=NULL,unit.sum=NULL,...){ starnet <- function(y,X,family="gaussian",nalpha=21,alpha=NULL,nfolds=10,foldid=NULL,type.measure="deviance",alpha.meta=1,penalty.factor=NULL,intercept=NULL,upper.limit=NULL,unit.sum=NULL,...){
...@@ -316,12 +324,21 @@ starnet <- function(y,X,family="gaussian",nalpha=21,alpha=NULL,nfolds=10,foldid= ...@@ -316,12 +324,21 @@ starnet <- function(y,X,family="gaussian",nalpha=21,alpha=NULL,nfolds=10,foldid=
#' and \code{none} (intercept-only model). #' and \code{none} (intercept-only model).
#' #'
#' @examples #' @examples
#' \dontshow{
#' if(!grepl('SunOS',Sys.info()['sysname'])){
#' set.seed(1)
#' n <- 50; p <- 100
#' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X)
#' y_hat <- predict(object,newx=X[c(1),,drop=FALSE])}}
#' \donttest{
#' set.seed(1) #' set.seed(1)
#' n <- 50; p <- 100 #' n <- 50; p <- 100
#' y <- rnorm(n=n) #' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p) #' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X) #' object <- starnet(y=y,X=X)
#' y_hat <- predict(object,newx=X[c(1),,drop=FALSE]) #' y_hat <- predict(object,newx=X[c(1),,drop=FALSE])}
#' #'
predict.starnet <- function(object,newx,type="response",nzero=NULL,...){ predict.starnet <- function(object,newx,type="response",nzero=NULL,...){
if(length(list(...))!=0){warning("Ignoring argument.",call.=FALSE)} if(length(list(...))!=0){warning("Ignoring argument.",call.=FALSE)}
...@@ -384,12 +401,21 @@ predict.starnet <- function(object,newx,type="response",nzero=NULL,...){ ...@@ -384,12 +401,21 @@ predict.starnet <- function(object,newx,type="response",nzero=NULL,...){
#' respectively. #' respectively.
#' #'
#' @examples #' @examples
#' \dontshow{
#' if(!grepl('SunOS',Sys.info()['sysname'])){
#' set.seed(1)
#' n <- 50; p <- 100
#' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X)
#' coef <- coef(object)}}
#' \donttest{
#' set.seed(1) #' set.seed(1)
#' n <- 50; p <- 100 #' n <- 50; p <- 100
#' y <- rnorm(n=n) #' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p) #' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X) #' object <- starnet(y=y,X=X)
#' coef <- coef(object) #' coef <- coef(object)}
#' #'
coef.starnet <- function(object,nzero=NULL,...){ coef.starnet <- function(object,nzero=NULL,...){
if(length(list(...))!=0){warning("Ignoring argument.",call.=FALSE)} if(length(list(...))!=0){warning("Ignoring argument.",call.=FALSE)}
...@@ -446,12 +472,21 @@ coef.starnet <- function(object,nzero=NULL,...){ ...@@ -446,12 +472,21 @@ coef.starnet <- function(object,nzero=NULL,...){
#' Vector containing intercept and slopes from the meta learner. #' Vector containing intercept and slopes from the meta learner.
#' #'
#' @examples #' @examples
#' \dontshow{
#' if(!grepl('SunOS',Sys.info()['sysname'])){
#' set.seed(1)
#' n <- 50; p <- 100
#' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X)
#' weights(object)}}
#' \donttest{
#' set.seed(1) #' set.seed(1)
#' n <- 50; p <- 100 #' n <- 50; p <- 100
#' y <- rnorm(n=n) #' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p) #' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X) #' object <- starnet(y=y,X=X)
#' weights(object) #' weights(object)}
#' #'
weights.starnet <- function(object,...){ weights.starnet <- function(object,...){
if(length(list(...))!=0){warning("Ignoring argument.",call.=FALSE)} if(length(list(...))!=0){warning("Ignoring argument.",call.=FALSE)}
...@@ -480,12 +515,21 @@ weights.starnet <- function(object,...){ ...@@ -480,12 +515,21 @@ weights.starnet <- function(object,...){
#' Prints "stacked gaussian/binomial/poisson elastic net". #' Prints "stacked gaussian/binomial/poisson elastic net".
#' #'
#' @examples #' @examples
#' \dontshow{
#' if(!grepl('SunOS',Sys.info()['sysname'])){
#' set.seed(1) #' set.seed(1)
#' n <- 50; p <- 100 #' n <- 50; p <- 100
#' y <- rnorm(n=n) #' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p) #' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X) #' object <- starnet(y=y,X=X)
#' print(object) #' print(object)}}
#' \donttest{
#' set.seed(1)
#' n <- 50; p <- 100
#' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' object <- starnet(y=y,X=X)
#' print(object)}
#' #'
print.starnet <- function(x,...){ print.starnet <- function(x,...){
cat(paste0("stacked \"",x$info$family,"\" elastic net"),"\n") cat(paste0("stacked \"",x$info$family,"\" elastic net"),"\n")
...@@ -533,12 +577,13 @@ print.starnet <- function(x,...){ ...@@ -533,12 +577,13 @@ print.starnet <- function(x,...){
#' with the maximum number of non-zero coefficients shown in the column name. #' with the maximum number of non-zero coefficients shown in the column name.
#' #'
#' @examples #' @examples
#' \dontshow{
#' if(!grepl('SunOS',Sys.info()['sysname'])){
#' set.seed(1) #' set.seed(1)
#' n <- 50; p <- 20 #' n <- 50; p <- 20
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p) #' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' y <- rnorm(n=n,mean=rowSums(X[,1:20])) #' y <- rnorm(n=n,mean=rowSums(X[,1:20]))
#' \dontshow{ #' loss <- cv.starnet(y=y,X=X,nfolds.ext=2,nfolds.int=3)}}
#' loss <- cv.starnet(y=y,X=X,nfolds.ext=2,nfolds.int=3)}
#' \donttest{ #' \donttest{
#' loss <- cv.starnet(y=y,X=X)} #' loss <- cv.starnet(y=y,X=X)}
#' #'
......
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
#' \email{armin.rauschenberger@uni.lu} #' \email{armin.rauschenberger@uni.lu}
#' #'
#' @examples #' @examples
#' \dontshow{
#' if(!grepl('SunOS',Sys.info()['sysname'])){
#' #--- data simulation --- #' #--- data simulation ---
#' n <- 50; p <- 100 #' n <- 50; p <- 100
#' y <- rnorm(n=n) #' y <- rnorm(n=n)
...@@ -48,13 +50,34 @@ ...@@ -48,13 +50,34 @@
#' #--- extract coefficients --- #' #--- extract coefficients ---
#' coef <- coef(object) #' coef <- coef(object)
#' # scalar "alpha": intercept #' # scalar "alpha": intercept
#' # vector "beta": slopes #' # vector "beta": slopes}}
#' #'
#' #--- model comparison ---
#' \donttest{ #' \donttest{
#' loss <- cv.starnet(y=y,X=X)} #' #--- data simulation ---
#' # cross-validated loss for different alpha, #' n <- 50; p <- 100
#' y <- rnorm(n=n)
#' X <- matrix(rnorm(n*p),nrow=n,ncol=p)
#' # n samples, p features
#'
#' #--- model fitting ---
#' object <- starnet(y=y,X=X)
#' # "base": one model for each alpha
#' # "meta": model for stacking them
#'
#' #--- make predictions ---
#' y_hat <- predict(object,newx=X)
#' # one column for each alpha,
#' # and for tuning and stacking #' # and for tuning and stacking
#' #'
#' #--- extract coefficients ---
#' coef <- coef(object)
#' # scalar "alpha": intercept
#' # vector "beta": slopes}}
#'
#' #--- model comparison ---
#' loss <- cv.starnet(y=y,X=X)
#' # cross-validated loss for different alpha,
#' # and for tuning and stacking}
#'
NULL NULL
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
<h1 data-toc-skip>Stacked Elastic Net</h1> <h1 data-toc-skip>Stacked Elastic Net</h1>
<h4 class="author">Armin Rauschenberger</h4> <h4 class="author">Armin Rauschenberger</h4>
<h4 class="date">04 November 2020</h4> <h4 class="date">24 November 2020</h4>
<small class="dont-index">Source: <a href="https://github.com/rauschenberger/starnet/blob/master/vignettes/script.Rmd"><code>vignettes/script.Rmd</code></a></small> <small class="dont-index">Source: <a href="https://github.com/rauschenberger/starnet/blob/master/vignettes/script.Rmd"><code>vignettes/script.Rmd</code></a></small>
<div class="hidden name"><code>script.Rmd</code></div> <div class="hidden name"><code>script.Rmd</code></div>
......
...@@ -5,5 +5,5 @@ articles: ...@@ -5,5 +5,5 @@ articles:
article: article.html article: article.html
script: script.html script: script.html
starnet: starnet.html starnet: starnet.html
last_built: 2020-11-04T14:04Z last_built: 2020-11-24T07:00Z
...@@ -159,12 +159,21 @@ containing the pooled intercept and the pooled slopes, ...@@ -159,12 +159,21 @@ containing the pooled intercept and the pooled slopes,
respectively.</p> respectively.</p>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2> <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>) <pre class="examples"><div class='input'><span class='co'># \dontshow{</span>
<span class='kw'>if</span>(!<span class='fu'><a href='https://rdrr.io/r/base/grep.html'>grepl</a></span>(<span class='st'>'SunOS'</span>,<span class='fu'><a href='https://rdrr.io/r/base/Sys.info.html'>Sys.info</a></span>()[<span class='st'>'sysname'</span>])){
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span> <span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>) <span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>) <span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>) <span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='no'>coef</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/coef.html'>coef</a></span>(<span class='no'>object</span>)</div></pre> <span class='no'>coef</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/coef.html'>coef</a></span>(<span class='no'>object</span>)}<span class='co'># }</span>
<span class='co'># \donttest{</span>
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='no'>coef</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/coef.html'>coef</a></span>(<span class='no'>object</span>)<span class='co'># }</span></div></pre>
</div> </div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top"> <nav id="toc" data-toggle="toc" class="sticky-top">
......
...@@ -251,12 +251,13 @@ stacked elastic net (<code>stack</code>), lasso, and lasso-like elastic net ...@@ -251,12 +251,13 @@ stacked elastic net (<code>stack</code>), lasso, and lasso-like elastic net
with the maximum number of non-zero coefficients shown in the column name.</p> with the maximum number of non-zero coefficients shown in the column name.</p>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2> <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>) <pre class="examples"><div class='input'><span class='co'># \dontshow{</span>
<span class='kw'>if</span>(!<span class='fu'><a href='https://rdrr.io/r/base/grep.html'>grepl</a></span>(<span class='st'>'SunOS'</span>,<span class='fu'><a href='https://rdrr.io/r/base/Sys.info.html'>Sys.info</a></span>()[<span class='st'>'sysname'</span>])){
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>20</span> <span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>20</span>
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>) <span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>mean</span><span class='kw'>=</span><span class='fu'><a href='https://rdrr.io/r/base/colSums.html'>rowSums</a></span>(<span class='no'>X</span>[,<span class='fl'>1</span>:<span class='fl'>20</span>])) <span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>mean</span><span class='kw'>=</span><span class='fu'><a href='https://rdrr.io/r/base/colSums.html'>rowSums</a></span>(<span class='no'>X</span>[,<span class='fl'>1</span>:<span class='fl'>20</span>]))
<span class='co'># \dontshow{</span> <span class='no'>loss</span> <span class='kw'>&lt;-</span> <span class='fu'>cv.starnet</span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>,<span class='kw'>nfolds.ext</span><span class='kw'>=</span><span class='fl'>2</span>,<span class='kw'>nfolds.int</span><span class='kw'>=</span><span class='fl'>3</span>)}<span class='co'># }</span></div><div class='img'><img src='cv.starnet-1.png' alt='' width='700' height='433' /></div><div class='input'><span class='co'># \donttest{</span>
<span class='no'>loss</span> <span class='kw'>&lt;-</span> <span class='fu'>cv.starnet</span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>,<span class='kw'>nfolds.ext</span><span class='kw'>=</span><span class='fl'>2</span>,<span class='kw'>nfolds.int</span><span class='kw'>=</span><span class='fl'>3</span>)<span class='co'># }</span></div><div class='img'><img src='cv.starnet-1.png' alt='' width='700' height='433' /></div><div class='input'><span class='co'># \donttest{</span>
<span class='no'>loss</span> <span class='kw'>&lt;-</span> <span class='fu'>cv.starnet</span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)<span class='co'># }</span></div><div class='img'><img src='cv.starnet-2.png' alt='' width='700' height='433' /></div><div class='input'> <span class='no'>loss</span> <span class='kw'>&lt;-</span> <span class='fu'>cv.starnet</span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)<span class='co'># }</span></div><div class='img'><img src='cv.starnet-2.png' alt='' width='700' height='433' /></div><div class='input'>
</div></pre> </div></pre>
</div> </div>
......
...@@ -172,12 +172,21 @@ and models in the columns. Included models are ...@@ -172,12 +172,21 @@ and models in the columns. Included models are
and <code>none</code> (intercept-only model).</p> and <code>none</code> (intercept-only model).</p>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2> <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>) <pre class="examples"><div class='input'><span class='co'># \dontshow{</span>
<span class='kw'>if</span>(!<span class='fu'><a href='https://rdrr.io/r/base/grep.html'>grepl</a></span>(<span class='st'>'SunOS'</span>,<span class='fu'><a href='https://rdrr.io/r/base/Sys.info.html'>Sys.info</a></span>()[<span class='st'>'sysname'</span>])){
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span> <span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>) <span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>) <span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>) <span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='no'>y_hat</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/predict.html'>predict</a></span>(<span class='no'>object</span>,<span class='kw'>newx</span><span class='kw'>=</span><span class='no'>X</span>[<span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span>(<span class='fl'>1</span>),,<span class='kw'>drop</span><span class='kw'>=</span><span class='fl'>FALSE</span>])</div></pre> <span class='no'>y_hat</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/predict.html'>predict</a></span>(<span class='no'>object</span>,<span class='kw'>newx</span><span class='kw'>=</span><span class='no'>X</span>[<span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span>(<span class='fl'>1</span>),,<span class='kw'>drop</span><span class='kw'>=</span><span class='fl'>FALSE</span>])}<span class='co'># }</span>
<span class='co'># \donttest{</span>
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='no'>y_hat</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/predict.html'>predict</a></span>(<span class='no'>object</span>,<span class='kw'>newx</span><span class='kw'>=</span><span class='no'>X</span>[<span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span>(<span class='fl'>1</span>),,<span class='kw'>drop</span><span class='kw'>=</span><span class='fl'>FALSE</span>])<span class='co'># }</span></div></pre>
</div> </div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top"> <nav id="toc" data-toggle="toc" class="sticky-top">
......
...@@ -150,12 +150,20 @@ ...@@ -150,12 +150,20 @@
<p>Prints "stacked gaussian/binomial/poisson elastic net".</p> <p>Prints "stacked gaussian/binomial/poisson elastic net".</p>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2> <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>) <pre class="examples"><div class='input'><span class='co'># \dontshow{</span>
<span class='kw'>if</span>(!<span class='fu'><a href='https://rdrr.io/r/base/grep.html'>grepl</a></span>(<span class='st'>'SunOS'</span>,<span class='fu'><a href='https://rdrr.io/r/base/Sys.info.html'>Sys.info</a></span>()[<span class='st'>'sysname'</span>])){
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span> <span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>) <span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>) <span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>) <span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span>(<span class='no'>object</span>)</div><div class='output co'>#&gt; stacked "gaussian" elastic net </div><div class='input'> <span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span>(<span class='no'>object</span>)}<span class='co'># }</span></div><div class='output co'>#&gt; stacked "gaussian" elastic net </div><div class='input'><span class='co'># \donttest{</span>
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span>(<span class='no'>object</span>)<span class='co'># }</span></div><div class='output co'>#&gt; stacked "gaussian" elastic net </div><div class='input'>
</div></pre> </div></pre>
</div> </div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
......
...@@ -154,34 +154,6 @@ doi: <a href='https://doi.org/10.1093/bioinformatics/btaa535'>10.1093/bioinforma ...@@ -154,34 +154,6 @@ doi: <a href='https://doi.org/10.1093/bioinformatics/btaa535'>10.1093/bioinforma
. .
<a href='mailto:armin.rauschenberger@uni.lu'>armin.rauschenberger@uni.lu</a></p> <a href='mailto:armin.rauschenberger@uni.lu'>armin.rauschenberger@uni.lu</a></p>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='co'>#--- data simulation ---</span>
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='co'># n samples, p features</span>
<span class='co'>#--- model fitting ---</span>
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='co'># "base": one model for each alpha</span>
<span class='co'># "meta": model for stacking them </span>
<span class='co'>#--- make predictions ---</span>
<span class='no'>y_hat</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/predict.html'>predict</a></span>(<span class='no'>object</span>,<span class='kw'>newx</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='co'># one column for each alpha,</span>
<span class='co'># and for tuning and stacking</span>
<span class='co'>#--- extract coefficients ---</span>
<span class='no'>coef</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/coef.html'>coef</a></span>(<span class='no'>object</span>)
<span class='co'># scalar "alpha": intercept</span>
<span class='co'># vector "beta": slopes</span>
<span class='co'>#--- model comparison ---</span>
<span class='co'># \donttest{</span>
<span class='no'>loss</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='cv.starnet.html'>cv.starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)<span class='co'># }</span></div><div class='img'><img src='starnet-package-1.png' alt='' width='700' height='433' /></div><div class='input'># cross-validated loss for different alpha,
# and for tuning and stacking
</div></pre>
</div> </div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top"> <nav id="toc" data-toggle="toc" class="sticky-top">
......
...@@ -240,11 +240,19 @@ doi: <a href='https://doi.org/10.1093/bioinformatics/btaa535'>10.1093/bioinforma ...@@ -240,11 +240,19 @@ doi: <a href='https://doi.org/10.1093/bioinformatics/btaa535'>10.1093/bioinforma
<a href='mailto:armin.rauschenberger@uni.lu'>armin.rauschenberger@uni.lu</a></p> <a href='mailto:armin.rauschenberger@uni.lu'>armin.rauschenberger@uni.lu</a></p>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2> <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>) <pre class="examples"><div class='input'><span class='co'># \dontshow{</span>
<span class='kw'>if</span>(!<span class='fu'><a href='https://rdrr.io/r/base/grep.html'>grepl</a></span>(<span class='st'>'SunOS'</span>,<span class='fu'><a href='https://rdrr.io/r/base/Sys.info.html'>Sys.info</a></span>()[<span class='st'>'sysname'</span>])){
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span> <span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>) <span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>) <span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'>starnet</span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>,<span class='kw'>family</span><span class='kw'>=</span><span class='st'>"gaussian"</span>)</div></pre> <span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'>starnet</span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>,<span class='kw'>family</span><span class='kw'>=</span><span class='st'>"gaussian"</span>)}<span class='co'># }</span>
<span class='co'># \donttest{</span>
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'>starnet</span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>,<span class='kw'>family</span><span class='kw'>=</span><span class='st'>"gaussian"</span>)<span class='co'># }</span></div></pre>
</div> </div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top"> <nav id="toc" data-toggle="toc" class="sticky-top">
......
...@@ -152,12 +152,27 @@ i.e. the weights for the base learners.</p> ...@@ -152,12 +152,27 @@ i.e. the weights for the base learners.</p>
<p>Vector containing intercept and slopes from the meta learner.</p> <p>Vector containing intercept and slopes from the meta learner.</p>
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2> <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>) <pre class="examples"><div class='input'><span class='co'># \dontshow{</span>
<span class='kw'>if</span>(!<span class='fu'><a href='https://rdrr.io/r/base/grep.html'>grepl</a></span>(<span class='st'>'SunOS'</span>,<span class='fu'><a href='https://rdrr.io/r/base/Sys.info.html'>Sys.info</a></span>()[<span class='st'>'sysname'</span>])){
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span> <span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>) <span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>) <span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>) <span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='fu'><a href='https://rdrr.io/r/stats/weights.html'>weights</a></span>(<span class='no'>object</span>)</div><div class='output co'>#&gt; (Intercept) V1 V2 V3 V4 V5 <span class='fu'><a href='https://rdrr.io/r/stats/weights.html'>weights</a></span>(<span class='no'>object</span>)}<span class='co'># }</span></div><div class='output co'>#&gt; (Intercept) V1 V2 V3 V4 V5
#&gt; 0.1004483 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
#&gt; V6 V7 V8 V9 V10 V11
#&gt; 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
#&gt; V12 V13 V14 V15 V16 V17
#&gt; 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
#&gt; V18 V19 V20 V21
#&gt; 0.0000000 0.0000000 0.0000000 0.0000000 </div><div class='input'><span class='co'># \donttest{</span>
<span class='fu'><a href='https://rdrr.io/r/base/Random.html'>set.seed</a></span>(<span class='fl'>1</span>)
<span class='no'>n</span> <span class='kw'>&lt;-</span> <span class='fl'>50</span>; <span class='no'>p</span> <span class='kw'>&lt;-</span> <span class='fl'>100</span>
<span class='no'>y</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='kw'>n</span><span class='kw'>=</span><span class='no'>n</span>)
<span class='no'>X</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='https://rdrr.io/r/base/matrix.html'>matrix</a></span>(<span class='fu'><a href='https://rdrr.io/r/stats/Normal.html'>rnorm</a></span>(<span class='no'>n</span>*<span class='no'>p</span>),<span class='kw'>nrow</span><span class='kw'>=</span><span class='no'>n</span>,<span class='kw'>ncol</span><span class='kw'>=</span><span class='no'>p</span>)
<span class='no'>object</span> <span class='kw'>&lt;-</span> <span class='fu'><a href='starnet.html'>starnet</a></span>(<span class='kw'>y</span><span class='kw'>=</span><span class='no'>y</span>,<span class='kw'>X</span><span class='kw'>=</span><span class='no'>X</span>)
<span class='fu'><a href='https://rdrr.io/r/stats/weights.html'>weights</a></span>(<span class='no'>object</span>)<span class='co'># }</span></div><div class='output co'>#&gt; (Intercept) V1 V2 V3 V4 V5
#&gt; 0.1004483 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 #&gt; 0.1004483 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
#&gt; V6 V7 V8 V9 V10 V11 #&gt; V6 V7 V8 V9 V10 V11
#&gt; 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 #&gt; 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
......
...@@ -24,11 +24,20 @@ Extracts pooled coefficients. ...@@ -24,11 +24,20 @@ Extracts pooled coefficients.
(The meta learners weights the coefficients from the base learners.) (The meta learners weights the coefficients from the base learners.)
} }
\examples{ \examples{
\dontshow{
if(!grepl('SunOS',Sys.info()['sysname'])){
set.seed(1) set.seed(1)
n <- 50; p <- 100 n <- 50; p <- 100
y <- rnorm(n=n) y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p) X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X) object <- starnet(y=y,X=X)
coef <- coef(object) coef <- coef(object)}}
\donttest{
set.seed(1)
n <- 50; p <- 100
y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X)
coef <- coef(object)}
} }
...@@ -98,12 +98,13 @@ with the maximum number of non-zero coefficients shown in the column name. ...@@ -98,12 +98,13 @@ with the maximum number of non-zero coefficients shown in the column name.
Compares stacked elastic net, tuned elastic net, ridge and lasso. Compares stacked elastic net, tuned elastic net, ridge and lasso.
} }
\examples{ \examples{
\dontshow{
if(!grepl('SunOS',Sys.info()['sysname'])){
set.seed(1) set.seed(1)
n <- 50; p <- 20 n <- 50; p <- 20
X <- matrix(rnorm(n*p),nrow=n,ncol=p) X <- matrix(rnorm(n*p),nrow=n,ncol=p)
y <- rnorm(n=n,mean=rowSums(X[,1:20])) y <- rnorm(n=n,mean=rowSums(X[,1:20]))
\dontshow{ loss <- cv.starnet(y=y,X=X,nfolds.ext=2,nfolds.int=3)}}
loss <- cv.starnet(y=y,X=X,nfolds.ext=2,nfolds.int=3)}
\donttest{ \donttest{
loss <- cv.starnet(y=y,X=X)} loss <- cv.starnet(y=y,X=X)}
......
...@@ -34,11 +34,20 @@ and \code{none} (intercept-only model). ...@@ -34,11 +34,20 @@ and \code{none} (intercept-only model).
Predicts outcome from features with stacked model. Predicts outcome from features with stacked model.
} }
\examples{ \examples{
\dontshow{
if(!grepl('SunOS',Sys.info()['sysname'])){
set.seed(1) set.seed(1)
n <- 50; p <- 100 n <- 50; p <- 100
y <- rnorm(n=n) y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p) X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X) object <- starnet(y=y,X=X)
y_hat <- predict(object,newx=X[c(1),,drop=FALSE]) y_hat <- predict(object,newx=X[c(1),,drop=FALSE])}}
\donttest{
set.seed(1)
n <- 50; p <- 100
y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X)
y_hat <- predict(object,newx=X[c(1),,drop=FALSE])}
} }
...@@ -18,11 +18,20 @@ Prints "stacked gaussian/binomial/poisson elastic net". ...@@ -18,11 +18,20 @@ Prints "stacked gaussian/binomial/poisson elastic net".
Prints object of class \link[starnet]{starnet}. Prints object of class \link[starnet]{starnet}.
} }
\examples{ \examples{
\dontshow{
if(!grepl('SunOS',Sys.info()['sysname'])){
set.seed(1) set.seed(1)
n <- 50; p <- 100 n <- 50; p <- 100
y <- rnorm(n=n) y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p) X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X) object <- starnet(y=y,X=X)
print(object) print(object)}}
\donttest{
set.seed(1)
n <- 50; p <- 100
y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X)
print(object)}
} }
...@@ -18,35 +18,6 @@ Type \code{library(starnet)} and then \code{?starnet} or ...@@ -18,35 +18,6 @@ Type \code{library(starnet)} and then \code{?starnet} or
See the vignette for further examples. See the vignette for further examples.
Type \code{vignette("starnet")} or \code{browseVignettes("starnet")} Type \code{vignette("starnet")} or \code{browseVignettes("starnet")}
to open the vignette. to open the vignette.
}
\examples{
#--- data simulation ---
n <- 50; p <- 100
y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p)
# n samples, p features
#--- model fitting ---
object <- starnet(y=y,X=X)
# "base": one model for each alpha
# "meta": model for stacking them
#--- make predictions ---
y_hat <- predict(object,newx=X)
# one column for each alpha,
# and for tuning and stacking
#--- extract coefficients ---
coef <- coef(object)
# scalar "alpha": intercept
# vector "beta": slopes
#--- model comparison ---
\donttest{
loss <- cv.starnet(y=y,X=X)}
# cross-validated loss for different alpha,
# and for tuning and stacking
} }
\references{ \references{
A Rauschenberger, E Glaab, and MA van de Wiel (2020). A Rauschenberger, E Glaab, and MA van de Wiel (2020).
......
...@@ -81,11 +81,19 @@ argument \code{nzero} in functions ...@@ -81,11 +81,19 @@ argument \code{nzero} in functions
\code{\link{coef}} and \code{\link{predict}}. \code{\link{coef}} and \code{\link{predict}}.
} }
\examples{ \examples{
\dontshow{
if(!grepl('SunOS',Sys.info()['sysname'])){
set.seed(1) set.seed(1)
n <- 50; p <- 100 n <- 50; p <- 100
y <- rnorm(n=n) y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p) X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X,family="gaussian") object <- starnet(y=y,X=X,family="gaussian")}}
\donttest{
set.seed(1)
n <- 50; p <- 100
y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X,family="gaussian")}
} }
\references{ \references{
......
...@@ -19,11 +19,20 @@ Extracts coefficients from the meta learner, ...@@ -19,11 +19,20 @@ Extracts coefficients from the meta learner,
i.e. the weights for the base learners. i.e. the weights for the base learners.
} }
\examples{ \examples{
\dontshow{
if(!grepl('SunOS',Sys.info()['sysname'])){
set.seed(1) set.seed(1)
n <- 50; p <- 100 n <- 50; p <- 100
y <- rnorm(n=n) y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p) X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X) object <- starnet(y=y,X=X)
weights(object) weights(object)}}
\donttest{
set.seed(1)
n <- 50; p <- 100
y <- rnorm(n=n)
X <- matrix(rnorm(n*p),nrow=n,ncol=p)
object <- starnet(y=y,X=X)
weights(object)}
} }
if(!grepl('SunOS',Sys.info()['sysname'])){
for(family in c("gaussian","binomial","poisson")){ for(family in c("gaussian","binomial","poisson")){
n <- 50; p <- 100 # was 30 and 50 n <- 50; p <- 100 # was 30 and 50
if(family=="cox"){ if(family=="cox"){
...@@ -225,3 +226,4 @@ if(FALSE){ ...@@ -225,3 +226,4 @@ if(FALSE){
glmnet::cv.glmnet(y=y,x=X,alpha=alpha,lambda=c(lambda,0.5*lambda),foldid=foldid,family="cox",grouped=grouped)$cvm[1] glmnet::cv.glmnet(y=y,x=X,alpha=alpha,lambda=c(lambda,0.5*lambda),foldid=foldid,family="cox",grouped=grouped)$cvm[1]
} }
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment