我是R的新手,我正在使用glm()函数来拟合逻辑模型。我有5列。我需要根据p值(小于0.05)使用循环找到所有可能的预测因子。我的数据集有40,000个条目,其中包含数值和分类变量,它看起来或多或少如下:
"Age" "Sex" "Occupation" "Education" "Income"
50 Male Farmer High School False
30 Female Maid High School False
25 Male Engineer Graduate True 目标变量"Income“表示该人的收入是否超过30K。如果是真的,他们赚的钱超过30K,反之亦然。我想找出可以用来使用循环预测目标的预测变量。另外,我可以根据p值找到最好的3个预测因子吗?
提前感谢!
发布于 2020-11-05 05:10:02
如果我正确理解了你的问题,你正在寻找一种测试单变量模型的方法,给定你的数据框架(事实上,我怀疑你是否想测试这些变量的每一个组合,包括交叉变量)
我的建议是使用purrr::map函数并为每一列创建列表。根据您的信息检查以下示例:
library(tidyr)
library(purrr)
## Sample data
df <- data.frame(
Age = rnorm(n = 40000,
mean = mean(c(50,30,25)),
sd(c(50,30,25))),
Ocupation = sample(x = c("Farmer", "Maid", "Engineer"),
size = 40000,
replace = TRUE),
Education = sample(x = c("High School", "Graduate", "UnderGraduate"),
size = 40000,
replace = TRUE),
Income = as.logical(rbinom(40000, 1, 0.5))
)
## Split dataframe into lists
list_df <- Map(cbind, split.default(df[-4], names(df)[-4]))
list_df <- lapply(list_df, cbind, "target" = df[4])
## Use map to fit a model for each list
list_models <- map(.x = list_df,
.f = ~glm(Income ~ ., data = .x, family = binomial))您可以使用list_modelsi调用每个模型。
现在回答你关于p值的问题的第二部分。鉴于每个项目都是唯一的,它们的指标也是唯一的,我建议您仔细检查p值的使用情况。诚然,它们很重要,但它们为您提供了一个接受概率,这取决于上下文的特定统计测试和treshold。它是统计质量和决策的基本工具(不仅关于t-检验,而且是f-test,因此是向前的)。但是对于排名呢?嗯,我会说这有点奇怪。但我只是想说:)
https://stackoverflow.com/questions/64682188
复制相似问题