R 如何向量化提取重要的预测变量?
我运行R 如何向量化提取重要的预测变量?,r,R,我运行glm,结果正常。现在我想知道那些95%显著的预测因子的名称,即p值小于或等于显著性水平5e-2。我运行: fit <- glm(data=dfa, formula=response~.) sig <- summary(fit)$coefficients[,4] (Intercept) close0 close1 close2 close3 close4 closema open0 0.0
glm
,结果正常。现在我想知道那些95%显著的预测因子的名称,即p值小于或等于显著性水平5e-2。我运行:
fit <- glm(data=dfa, formula=response~.)
sig <- summary(fit)$coefficients[,4]
(Intercept) close0 close1 close2 close3 close4 closema open0
0.000000e+00 3.147425e-19 7.210909e-04 1.046019e-02 4.117580e-03 2.778701e-01 2.829958e-05 0.000000e+00
open1 open2 open3 open4 openma low0 low1 low2
8.627202e-30 1.138499e-02 1.112236e-03 7.422145e-03 3.967735e-03 3.036329e-42 3.033847e-05 3.237155e-01
low3 low4 lowma high0 high1 high2 high3 high4
8.198750e-01 6.647138e-02 4.350488e-05 6.177130e-58 2.625192e-02 4.143373e-01 3.964651e-01 3.694272e-01
highma volume0 volume1 volume2 volume3 volume4 volumema
1.416310e-05 8.027502e-02 1.975302e-01 1.630341e-09 8.979313e-03 1.274195e-06 8.246661e-01
> str(sig)
Named num [1:31] 0.00 3.15e-19 7.21e-04 1.05e-02 4.12e-03 ...
- attr(*, "names")= chr [1:31] "(Intercept)" "close0" "close1" "close2" ...
名称(sig)[sigutils::data(厌食症,package=“MASS”)
anorex.1将名称(sig谢谢你,但是不,不起作用名称
这样只会给我所有的列名。
best <- c('close0', 'close1', 'close2', 'close3', 'closema', ... etc)
fit <- glm(data=dfa, formula=response~.)
summary(fit)
sig <- summary(fit)$coefficients[,4]
best <- NULL
columnLabels <- names(sig)
for (columnLabel in columnLabels) {
if (as.numeric(sig[columnLabel]) <= 5e-2) {
if (is.null(best)) {
best <- columnLabel
} else {
best <- c(best, columnLabel)
}
}
}
utils::data(anorexia, package="MASS")
anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
family = gaussian, data = anorexia)
summary(anorex.1)
ll<-summary(anorex.1)$coefficients
ll<-as.data.frame(ll)
ll
Estimate Std. Error t value Pr(>|t|)
(Intercept) 49.7711090 13.3909581 3.716770 0.0004101067
Prewt -0.5655388 0.1611824 -3.508689 0.0008034250
TreatCont -4.0970655 1.8934926 -2.163761 0.0339993147
TreatFT 4.5630627 2.1333359 2.138933 0.0360350847
rownames(ll[ll[,4]<0.005,])
[1] "(Intercept)" "Prewt"