Skip to content

Commit

Permalink
version 0.1-2
Browse files Browse the repository at this point in the history
  • Loading branch information
Walter K Kremers authored and cran-robot committed Feb 18, 2023
1 parent c5f0566 commit ab40897
Show file tree
Hide file tree
Showing 48 changed files with 1,253 additions and 696 deletions.
14 changes: 7 additions & 7 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Title: Relaxed Lasso Model for Data Which Might Have Long Run Times
Using 'glmnet'
Package: glmnetr
Version: 0.1-1
Date: 2022-12-10
Version: 0.1-2
Date: 2023-02-18
Depends: R (>= 3.4.0)
Suggests: R.rsp
VignetteBuilder: R.rsp
Imports: glmnet, survival, Matrix
Imports: glmnet, survival, Matrix, rpart
ByteCompile: Yes
Authors@R: c(person(c("Walter", "K"), "Kremers",
role=c("aut", "cre"),
Expand All @@ -15,14 +15,14 @@ Authors@R: c(person(c("Walter", "K"), "Kremers",
Author: Walter K Kremers [aut, cre] (<https://orcid.org/0000-0001-5714-3473>)
Maintainer: Walter K Kremers <kremers.walter@mayo.edu>
Description:
For some datasets, for example when the design matrix is not of full rank, 'glmnet' may have very long run times when fitting the relaxed lasso model, in particular when fitting a Cox based model, making it difficult to get solutions either from glmnet() or cv.glmnet(). In this package, 'glmnetr', we provide a workaround and solve for the non penalized relaxed model where gamma=0 for model structures analogue to R functions like glm() or coxph() of the survival package. If you are not fitting relaxed lasso models, or if you are able to get convergence using 'glmnet', then this package may not be of much benefit to you. Note, while this package may allow one to fit relaxed lasso models that have difficulties converging using 'glmnet', this package does not afford the full function and versatility of 'glmnet'.
For some datasets, for example when the design matrix is not of full rank, 'glmnet' may have very long run times when fitting the relaxed lasso model, in particular when fitting a Cox based model, making it difficult to get solutions either from glmnet() or cv.glmnet(). In this package, 'glmnetr', we provide a workaround and solve for the non penalized relaxed model where gamma=0 for model structures analogue to 'R' functions like glm() or coxph() of the 'survival' package. If you are not fitting relaxed lasso models, or if you are able to get convergence using 'glmnet', then this package may not be of much benefit to you. Note, while this package may allow one to fit relaxed lasso models that have difficulties converging using 'glmnet', this package does not afford the full function and versatility of 'glmnet'.
In addition to fitting the relaxed lasso model this package also includes the function cv.glmnetr() to perform a cross validation to identify hyper-parameters for a lasso fit, much like the cv.glmnet() function of the 'glmnet' package. Additionally, the package includes the function nested.glmnetr() to perform a nested cross validation to assess the fit of a cross validated derived lasso model fit. If though you are fitting not a relaxed lasso model but an elastic-net model, then the R-packages 'nestedcv' <https://cran.r-project.org/package=nestedcv>, 'glmnetSE' <https://cran.r-project.org/package=glmnetSE> or others may provide greater functionality when performing a nested CV.
As with the 'glmnet' package, this package passes most relevant output to the output object and tabular and graphical summaries can be generated using the summary and plot functions. Use of the 'glmnetr' has many similarities to the 'glmnet' package and it is recommended that the user of 'glmnetr' first become familiar with the 'glmnet' package <https://cran.r-project.org/package=glmnet>, with the "An Introduction to 'glmnet'" and "The Relaxed Lasso" being especially helpful in this regard.
License: GPL-3
NeedsCompilation: no
Copyright: Mayo Foundation for Medical Education and Research
RoxygenNote: 7.2.2
RoxygenNote: 7.2.3
Encoding: UTF-8
Packaged: 2022-12-14 04:55:24 UTC; KREMERS
Packaged: 2023-02-18 18:15:34 UTC; kremers
Repository: CRAN
Date/Publication: 2022-12-14 12:10:02 UTC
Date/Publication: 2023-02-18 18:40:02 UTC
93 changes: 47 additions & 46 deletions MD5
Original file line number Diff line number Diff line change
@@ -1,46 +1,47 @@
b0449858e65c8715025b6e1d85deea10 *DESCRIPTION
2a76af39933b57cbdbc0cf13ac10cff7 *NAMESPACE
5c46759bfc58d26c720cd915d6cbd8c3 *R/aicreg_221210.R
7e6e50b2e8d2b7d2cda36453e10fa350 *R/cv.glmnetr_221210.R
e8c3bd2e17ef03c645776f9a162a1412 *R/cv.stepreg_221210.R
8cea1c89d17d588d693b55dd6bef6a1e *R/nested.glmnetr_221210.R
a4c5b1ae7e3250afb05963affacf3d48 *R/plot.cv.glmnetr_221210.R
d1fa231910e74d66e015b5e7f756d941 *R/stepreg_221210.R
f4687bfaaa216fefb0e6cc1e15a6761f *R/summary.cv.glmnetr_221210.R
8dd59260970752d3ab7a2cf2eb1061ee *R/summary.nested.glmnetr_221210.R
f5d149cab5f8ce4d60cf1646f104a8c1 *build/vignette.rds
3e2fa930b4a5fa9cae38a9031452b001 *inst/doc/Using_glmnetr_221210.pdf
21f21b35db3650c28c96a2a3d81e6229 *inst/doc/Using_glmnetr_221210.pdf.asis
0f391666e2c999322e290f2b6eff039a *inst/doc/Using_stepreg_221210.pdf
11d2a2dbc54b3dc80a7e6389c7d5a9eb *inst/doc/Using_stepreg_221210.pdf.asis
6ca50f4d9614426d53d8120d4c027c5f *man/aicreg.Rd
17c182f1e5a4c37139874e346c117b9b *man/best.preds.Rd
485b50a94c4291cb27e9ce22f28dc527 *man/cox.sat.dev.Rd
a7f947deebcd5a1b8944d07530b17255 *man/cv.glmnetr.Rd
d84018224c03d0bd3c9cdc8962d73312 *man/cv.stepreg.Rd
7742477f221e66885b215f2ab966ff17 *man/difftime1.Rd
2119bad8b8f02a9f8b3b72cec7e79c0c *man/difftime2.Rd
a71175d4ec61e43c3e41bcfd18e0171d *man/getlamgam.Rd
3929c4c86970c3f066f3c6fbd4d7fdd9 *man/glmnetr.Rd
3636b0461e2f3b8e02c77015bc130bf2 *man/glmnetr.compcv.Rd
58eee208132d1ebfa6b33e6cac29030f *man/glmnetr.compcv0.Rd
df2f5e039d39825329273852c43d1927 *man/glmnetr.simdata.Rd
51c9b247c287611b6bffd687e43ba75e *man/glmnetr_devratio.Rd
393e08556131f6403eeac6aca2dfe86a *man/glmnetrll_1fold.Rd
a597569ce9ae9bea632361f8f086d9ec *man/nested.glmnetr.Rd
d142c711b4d4f9d48e565c07e79a6016 *man/plot.cv.glmnetr.Rd
836056de9e509b3f2b90465de92cc446 *man/plot.glmnetr.Rd
9da56afccdcbf0b2a3cf60546e8f38bf *man/plot.nested.glmnetr.Rd
f9a3f3171c8b3f819b23f0a931ac9507 *man/predict.cv.glmnetr.Rd
e7dbc6b99f8a8b405643cd65850537f4 *man/predict.glmnetr.Rd
57b0e6eec57cd481aed126bb449299ce *man/predict.nested.glmnetr.Rd
983cbd56398dd0b9ba9bff45df8c702b *man/preds_1.Rd
3893835b9edf7599e904e038bd20ae8c *man/stepreg.Rd
e956b8609acd1d2f510b76e75219e229 *man/summary.cv.glmnetr.Rd
0475a3e17a2fe9bafbe59266ab5312c6 *man/summary.cv.stepreg.Rd
78d37f69662be66ed5b915d2947b6cc9 *man/summary.nested.glmnetr.Rd
5a785a4600b976e27b14fa878207ad73 *man/summary.stepreg.Rd
b6e4c057355f8987468a0526ff7a18d1 *vignettes/Using_glmnetr_221210.Rmd
21f21b35db3650c28c96a2a3d81e6229 *vignettes/Using_glmnetr_221210.pdf.asis
c3c30a39b346cf887dd894ee83484796 *vignettes/Using_stepreg_221210.Rmd
11d2a2dbc54b3dc80a7e6389c7d5a9eb *vignettes/Using_stepreg_221210.pdf.asis
a4a00c64df92a716efeec3fe6d48a9e0 *DESCRIPTION
13a210ac8573d708a1a06ac68ca897d9 *NAMESPACE
ad6ff0bd32b7abb263e529e8e07b34a0 *R/aicreg_230218.R
89cffa5bf0fca5b5a4b2dae15549cce2 *R/cv.glmnetr_230218.R
934f013fbad6f6348ae5a6e9d1abdc6b *R/cv.stepreg_230218.R
4271a8edfa49b9efa74554bf7bbe2858 *R/nested.glmnetr_230218.R
e9ea8de7c439eea44892b88f777b10f2 *R/plot.cv.glmnetr_230218.R
cc76a7a09e49c075950500d56dd0f71d *R/stepreg_230218.R
ec32a356a6e19893dd1cd6ff70fa7210 *R/summary.cv.glmnetr_230218.R
7b206a846b640c3476eab95b1b2b0baf *R/summary.nested.glmnetr_230218.R
c091e439c0057be300cb5af0e960f752 *build/vignette.rds
6733be5509e2e8d87ed7daee086bb96f *inst/doc/Using_glmnetr_230218.pdf
21f21b35db3650c28c96a2a3d81e6229 *inst/doc/Using_glmnetr_230218.pdf.asis
3045e788e1d9da713b2aa680c8160f00 *inst/doc/Using_stepreg_230218.pdf
11d2a2dbc54b3dc80a7e6389c7d5a9eb *inst/doc/Using_stepreg_230218.pdf.asis
a9f5d151d25f4588549f8d0f395827f5 *man/aicreg.Rd
8920b7dad7b3771b3bb41999c622e344 *man/best.preds.Rd
d046532b9765a44f135b5d7b9d432317 *man/cox.sat.dev.Rd
66db1ce50ece92811086c4b40afd0559 *man/cv.glmnetr.Rd
c16f161fa1c8a0d0b3fc07f905c4fba6 *man/cv.stepreg.Rd
d6829739a73c69a99c34791996eecc44 *man/difftime1.Rd
f19663dcb9fca348e7366551b920a80d *man/difftime2.Rd
b673ca397b9a4ebb540f6fedc8f7bb57 *man/getlamgam.Rd
caa15aeaad91ef76b011f329c428cbac *man/glmnetr.Rd
f1daeeb62f6b234568fa4a6180540610 *man/glmnetr.compcv.Rd
da22b1a677582d4fbb1ff0213139a33b *man/glmnetr.compcv0.Rd
624e19a7e04cb231b8595ae41acbcc1b *man/glmnetr.simdata.Rd
eee47ff1a88fbe6f55488afc54d80371 *man/glmnetr_devratio.Rd
0578c965a7b3a5bb88029e6c88022f96 *man/glmnetrll_1fold.Rd
b6a8f97d18f4d2d57c53876579de8ce0 *man/nested.glmnetr.Rd
96c4cebd3dc8cf5a675a612161eecda9 *man/plot.cv.glmnetr.Rd
2d6951e4e9e0d765c67365e605d29ee0 *man/plot.glmnetr.Rd
8065a35bd69fb867b7c1202ca5b521d3 *man/plot.nested.glmnetr.Rd
6e36af30e2a0ee143d7f46dedbd4e46c *man/predict.cv.glmnetr.Rd
225aa35f3daf529ab6f92b6e266f4ea2 *man/predict.cv.stepreg.Rd
d3313cb85c65103f181332350b5e642a *man/predict.glmnetr.Rd
baf182a20a5d9994d6e4826ebd6a17e8 *man/predict.nested.glmnetr.Rd
72074968b83c105982fac03dc906a144 *man/preds_1.Rd
a93fc5b9b30430381989b56da754a79f *man/stepreg.Rd
c6661ee2197117687f9fbb42830a2582 *man/summary.cv.glmnetr.Rd
b11215f26e442e7ff025ef0ad97487a6 *man/summary.cv.stepreg.Rd
cf67b8f5d70e569c4035d1333fce2fdc *man/summary.nested.glmnetr.Rd
6fd3a6565e5562f822b88c765756d0b2 *man/summary.stepreg.Rd
6b90d53dcc7da19c57113aac6430d209 *vignettes/Using_glmnetr_230218.Rmd
21f21b35db3650c28c96a2a3d81e6229 *vignettes/Using_glmnetr_230218.pdf.asis
ebf2ffdc5ddecf3f0a4d19a2370fcbfb *vignettes/Using_stepreg_230218.Rmd
11d2a2dbc54b3dc80a7e6389c7d5a9eb *vignettes/Using_stepreg_230218.pdf.asis
3 changes: 3 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ S3method(plot,cv.glmnetr)
S3method(plot,glmnetr)
S3method(plot,nested.glmnetr)
S3method(predict,cv.glmnetr)
S3method(predict,cv.stepreg)
S3method(predict,glmnetr)
S3method(predict,nested.glmnetr)
S3method(summary,cv.glmnetr)
Expand All @@ -26,6 +27,8 @@ importFrom(glmnet,cv.glmnet)
importFrom(graphics,abline)
importFrom(graphics,axis)
importFrom(graphics,lines)
importFrom(rpart,prune)
importFrom(rpart,rpart)
importFrom(stats,binomial)
importFrom(stats,cor)
importFrom(stats,cov)
Expand Down
17 changes: 9 additions & 8 deletions R/aicreg_221210.R → R/aicreg_230218.R
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@
#' the number of predictors. Must be in matrix form for complete data, no NA's, no Inf's, etc.,
#' and not a data frame.
#' @param start start time, Cox model only - class numeric of length same as number of patients (n)
#' @param y_ output vector: time, or stop time for Cox model, Y_ 0 or 1 for binomal (logistic), numeric for gaussian.
#' @param y_ output vector: time, or stop time for Cox model, y_ 0 or 1 for binomial (logistic), numeric for gaussian.
#' Must be a vector of length same as number of sample size.
#' @param event event indicator, 1 for event, 0 for census, Cox model only.
#' Must be a numeric vector of length same as sample size.
#' @param steps_n number of steps done in stepwise regression fitting
#' @param steps_n maximum number of steps done in stepwise regression fitting
#' @param family model family, "cox", "binomial" or "gaussian"
#' @param object A stepreg() output. If NULL it will be derived.
#' @param time Indicate whether or not to update progress in the console. Default of
#' @param track Indicate whether or not to update progress in the console. Default of
#' 0 suppresses these updates. The option of 1 provides these updates. In fitting
#' clinical data with non full rank design matrix we have found some R-packages to
#' take a vary long time or seemingly be caught in infinite loops. Therefore we allow
#' take a very long time or possibly get caught in infinite loops. Therefore we allow
#' the user to track the package and judge whether things are moving forward or
#' if the process should be stopped.
#'
#' @return The identified model in form of a glm() or coxph() output object, and an
#' @return The identified model in form of a glm() or coxph() output object, with an
#' entry of the stepreg() output object.
#'
#' @export
Expand All @@ -39,7 +39,8 @@
#' norm.aic.fit = aicreg(xs, NULL, y_, NULL, family="gaussian", steps_n=40)
#' summary(norm.aic.fit)
#'
aicreg = function(xs, start, y_, event, steps_n=steps_n, family=family, object=NULL, time=0) {
# track=track added to stepreg call 221220
aicreg = function(xs, start, y_, event, steps_n=steps_n, family=family, object=NULL, track=0) {
if (!is.null(object)) {
# stepreg.fit.all.best = as.matrix( cv.stepreg.fit.all$stepreg.fit.all.best )
if (inherits(object,"cv.stepreg")) {
Expand All @@ -48,8 +49,8 @@ aicreg = function(xs, start, y_, event, steps_n=steps_n, family=family, object=N
stepreg.fit.all.best = object$stepreg.fit.all.best
}
} else {
if (time >= 1) { cat(paste0("\n", " ########## Derive stepwise model on all data ################################################" , "\n")) }
stepreg.fit.all = stepreg(xs, start, y_, event, steps_n=steps_n, family=family)
if (track >= 1) { cat(paste0("\n", " ########## Derive stepwise model on all data ################################################" , "\n")) }
stepreg.fit.all = stepreg(xs, start, y_, event, steps_n=steps_n, family=family, track=track)
class(stepreg.fit.all) = "data.frame"
stepreg.fit.all.best = stepreg.fit.all[(stepreg.fit.all$best==1) , ]
}
Expand Down

0 comments on commit ab40897

Please sign in to comment.