使用阶跃函数执行模型选择并将结果写入 0/1 向量 (R)
Perform model selection with step function and write outcome into 0/1 vector (R)
我正在尝试编写一个在 R 中执行以下操作的算法:
- 在数据集上
dat
使用step
函数执行glm
从一组J个候选变量中选择j个协变量的模型
- 取 j 个变量的最终
call
并与完整向量 J 进行比较。将结果写入 1xJ 向量,其中 1 表示变量在最终 call
中,否则为 0。
示例:
在以下示例中,三个变量 (x,y,z
) 是预测变量 dep
的候选对象。 Step
用于变量选择。我的目标是最终得到一个向量,指示哪些输入变量最终出现在最终模型中,所以在这里,c(1,0,1)
.
n=1000
x <- rnorm(n,0,1)
y <- rnorm(n,0,1)
z <- rnorm(n,0,1)
dep <- 1 + 2 * x + 3* z + rnorm(n,0,1)
m<-step(lm(dep~x+y+z),direction="backward")
我很难从最终 m$call
中提取变量名称并创建向量。
我认为这样做:
n=1000
x <- rnorm(n,0,1)
y <- rnorm(n,0,1)
z <- rnorm(n,0,1)
dep <- 1 + 2*x + 3*z + rnorm(n,0,1)
m<-step(lm(dep~x+y+z),direction="backward")
matt <- attributes(m$terms)
matt$term.labels
#[1] "x" "z"
v <- c("x","y","z")
as.integer(v %in% matt$term.labels)
#[1] 1 0 1
我正在尝试编写一个在 R 中执行以下操作的算法:
- 在数据集上
dat
使用step
函数执行glm
从一组J个候选变量中选择j个协变量的模型 - 取 j 个变量的最终
call
并与完整向量 J 进行比较。将结果写入 1xJ 向量,其中 1 表示变量在最终call
中,否则为 0。
示例:
在以下示例中,三个变量 (x,y,z
) 是预测变量 dep
的候选对象。 Step
用于变量选择。我的目标是最终得到一个向量,指示哪些输入变量最终出现在最终模型中,所以在这里,c(1,0,1)
.
n=1000
x <- rnorm(n,0,1)
y <- rnorm(n,0,1)
z <- rnorm(n,0,1)
dep <- 1 + 2 * x + 3* z + rnorm(n,0,1)
m<-step(lm(dep~x+y+z),direction="backward")
我很难从最终 m$call
中提取变量名称并创建向量。
我认为这样做:
n=1000
x <- rnorm(n,0,1)
y <- rnorm(n,0,1)
z <- rnorm(n,0,1)
dep <- 1 + 2*x + 3*z + rnorm(n,0,1)
m<-step(lm(dep~x+y+z),direction="backward")
matt <- attributes(m$terms)
matt$term.labels
#[1] "x" "z"
v <- c("x","y","z")
as.integer(v %in% matt$term.labels)
#[1] 1 0 1