[英]Converting frequency data for use in logistic regression in R
这里有一个简单的问题:我有以下数据,我需要以一种可以对其运行逻辑回归的格式获取它。
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。 通常情况下,我想我只想用spread
从tidyverse到数据进入一个宽幅。 但是在这里我在该传播函数中使用 key = pvp 有问题。 我无法折叠类别,因为其中一些显然与 pres = 1 对应,而有些与 pres = 0 对应。我可以使用什么解决方案来以可以对其运行逻辑回归的格式获取数据?
提前致谢。
无需扩展数据,可以在训练模型时使用“权重”参数。
model_logit <- glm(pres ~ pvp, family="binomial", weight = df$count, data = df)
predictions <- predict(model_logit, data.frame(pvp=unique(df$pvp)), type="response")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.