gpt4 book ai didi

r - 如何为 Lasso Logistic 回归生成所有一阶交互项?

转载 作者:行者123 更新时间:2023-12-01 13:56:31 24 4
gpt4 key购买 nike

glmnet 中有没有办法进行一阶交互?

例如,如果我的 X 矩阵是:

V1 V2 V3
0 1 0
1 0 1
1 0 0
...

有没有办法指定它在不手动创建列的情况下按照 `y~ V1 + V2 + V3 + V1*V2 + V2 *V3 + V1*V3' 执行某些操作?我的实际矩阵更大,手动创建所有一阶交叉产品会很痛苦。

最佳答案

此类公式的正确 R 语法是

y~(V1+V2+V3)^2

例如

set.seed(15)
dd <- data.frame(V1=runif(50), V2=runif(50), V3=runif(50), y=runif(50))
lm(y~(V1+V2+V3)^2, dd)

Call:
lm(formula = y ~ (V1 + V2 + V3)^2, data = dd)

Coefficients:
(Intercept) V1 V2 V3 V1:V2 V1:V3 V2:V3
0.54169 -0.10030 -0.01226 -0.10150 0.38521 -0.03159 0.01200

或者,如果要对 y 以外的所有变量进行建模,

lm(y~(.)^2, dd)

Call:
lm(formula = y ~ (.)^2, data = dd)

Coefficients:
(Intercept) V1 V2 V3 V1:V2 V1:V3 V2:V3
0.54169 -0.10030 -0.01226 -0.10150 0.38521 -0.03159 0.01200

两者都一样

lm(y~V1+V2+V3+V1:V2+V1:V3+V2:V3, dd)

Call:
lm(formula = y ~ V1 + V2 + V3 + V1:V2 + V1:V3 + V2:V3, data = dd)

Coefficients:
(Intercept) V1 V2 V3 V1:V2 V1:V3 V2:V3
0.54169 -0.10030 -0.01226 -0.10150 0.38521 -0.03159 0.01200

您可以将这些公式与 model.matrix 一起使用来创建矩阵

model.matrix(y~(V1+V2+V3)^2,dd)

关于r - 如何为 Lasso Logistic 回归生成所有一阶交互项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27577420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com