相关疑难解决方法(0)

将系数名称转换为R中的公式

当使用具有因子的公式时,拟合模型将系数命名为XY,其中X是因子的名称,Y是其特定级别.我希望能够从这些系数的名称创建一个公式.

原因是:如果我将套索适合稀疏设计矩阵(如下所示),我想创建一个新的公式对象,它只包含非零系数的项.

require("MatrixModels")
require("glmnet")
set.seed(1)
n <- 200
Z <- data.frame(letter=factor(sample(letters,n,replace=T),letters),
                x=sample(1:20,200,replace=T))
f <- ~ letter + x:letter + I(x>5):letter
X <- sparse.model.matrix(f, Z)
beta <- matrix(rnorm(dim(X)[2],0,5),dim(X)[2],1)
y <- X %*% beta + rnorm(n)

myfit <- glmnet(X,as.vector(y),lambda=.05)
fnew <- rownames(myfit$beta)[which(myfit$beta != 0)]
 [1] "letterb"              "letterc"              "lettere"             
 [4] "letterf"              "letterg"              "letterh"             
 [7] "letterj"              "letterm"              "lettern"             
[10] "lettero"              "letterp"              "letterr"             
[13] "letters"              "lettert"              "letteru"             
[16] "letterw"              "lettery"              "letterz"             
[19] "lettera:x"            "letterb:x"            "letterc:x"           
[22] "letterd:x"            "lettere:x"            "letterf:x"           
[25] "letterg:x"            "letterh:x"            "letteri:x"           
[28] "letterj:x" …
Run Code Online (Sandbox Code Playgroud)

r formula sparse-matrix

9
推荐指数
1
解决办法
2735
查看次数

标签 统计

formula ×1

r ×1

sparse-matrix ×1