R 中仅具有正值的数据框的回归
Regression in R for data frame with only positive values
我需要 运行 一个数据框的回归,其中一个变量 (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 值
有人知道我可以做些什么来 运行 正确的回归吗?
您收到此错误是因为当您对 like_count
使用日志函数时,0 值 return 到 -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)
之后,您可以向数据框添加一个新变量,并再次 运行 模型,而无需使用对数函数。
data$log_like_count = log_like_count
model = lm(log_like_count ~news_media, data = data)
summary(model)
我需要 运行 一个数据框的回归,其中一个变量 (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)
.
有人知道我可以做些什么来 运行 正确的回归吗?
您收到此错误是因为当您对 like_count
使用日志函数时,0 值 return 到 -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)
之后,您可以向数据框添加一个新变量,并再次 运行 模型,而无需使用对数函数。
data$log_like_count = log_like_count
model = lm(log_like_count ~news_media, data = data)
summary(model)