R中只有正值的数据框的回归

Posted

技术标签:

【中文标题】R中只有正值的数据框的回归【英文标题】:Regression in R for data frame with only positive values 【发布时间】:2022-01-08 21:13:16 【问题描述】:

我需要对其中一个变量 (like_count) 仅具有正值的数据框进行回归。以下 df 是我的数据的简化版本,带有最小值。和最大。我的数据中的值:

like_count <- c(631827, 0, 0, 4012)
  
news_media <- c("ABC", "ABC", "NZZ", "CNN")

data <- data.frame(news_media, like_count)

如何正确计算此数据框的回归?我想根据 news_media 预测 like_count

到目前为止,我尝试了以下方法:

model <- lm(log(like_count) ~ news_media, data = data)

summary(model)

这会导致错误,因为我收到带有 log(like_count) 的 -INF 值。

有人知道我可以做些什么来运行正确的回归吗?

【问题讨论】:

可能相关stats.stackexchange.com/questions/443447/… 【参考方案1】:

您收到此错误是因为当您对like_count 使用日志函数时,0 值返回到 -Inf。

首先,用like_count的对数创建一个新变量。

log_like_count = log(like_count)

然后您可以使用基础 R 中的 ifelse 函数将 -Inf 值更改为 0。

log_like_count = ifelse(log_like_count == "-Inf", 0, log_like_count)  

之后,您可以在数据框中添加一个新变量并再次运行模型,而无需使用 log 函数。

data$log_like_count = log_like_count  
model = lm(log_like_count ~news_media, data = data)  
summary(model)  

【讨论】:

以上是关于R中只有正值的数据框的回归的主要内容,如果未能解决你的问题,请参考以下文章

Python线性回归组合问题

逻辑回归输出中只有两个不同的概率值

如何迭代熊猫数据框的列以运行回归

如何使用for循环或条件在pandas数据框的子集中创建多个回归模型(statsmodel)?

绘制熊猫时间序列数据框的线性回归线的置信区间

spss如何降低r方