【发布时间】:2019-12-10 03:58:47
【问题描述】:
这里有一个简单的问题:我有以下数据,我需要以可以对其进行逻辑回归的格式获取它。
pvp <- rep(c("lib", "mod", "con"), 3)
pres <- c(rep("Bush", 3), rep("Clinton", 3), rep("Perot", 3))
count <- c(70, 195, 382, 324, 332, 199, 56, 101, 117)
df <- as.data.frame(cbind(pvp, pres, count))
df$pres <- recode(df$pres, 'Clinton' = '1', 'Bush' = '0', 'Perot' = '0')
df$count <- as.numeric(as.character(df$count))
看起来像这样:
> df
pvp pres count
1 lib 0 70
2 mod 0 195
3 con 0 382
4 lib 1 324
5 mod 1 332
6 con 1 199
7 lib 0 56
8 mod 0 101
9 con 0 117
我需要运行逻辑回归来预测 pvp 中的 pres。通常我想我会使用 tidyverse 中的spread 将数据转换为宽格式。但是在这里,我在该扩展函数中使用 key = pvp 时遇到问题。我也无法折叠这些类别,因为其中一些显然对应于 pres = 1,而另一些对应于 pres = 0。我可以使用什么解决方案以可以对其运行逻辑回归的格式获取数据?
提前致谢。
【问题讨论】:
-
我认为您可以使用汇总数据运行逻辑回归 - 请参阅 stackoverflow.com/a/52574900/496803
-
这绝对是正确的。我不知道重量声明,但当我看到它时,它很直观。非常感谢您的回答!
-
当我在这里时,
as.data.frame(cbind...会给你带来麻烦。只需改用data.frame(pvp,pres,count),您就不必担心数据会从数字转换为字符。 -
哦,我不认为有区别。很高兴知道!
-
glm可以直接在频率矩阵上运行。我仍然不明白weights参数的确切用途。由于不是直接从数据中读取的
标签: r dataframe tidyverse logistic-regression