【发布时间】:2019-03-03 18:43:42
【问题描述】:
我正在尝试使用 glm 使用以下代码估计 0 到 1 之间的连续变量的逻辑回归,但收到附加错误:
> glm(y ~ x, data=test_data, family=binomial(link = 'logit'))
Error in eval(family$initialize) : y values must be 0 <= y <= 1
但是,当我对 test_data 进行汇总时,df 的 y 值完全介于 0 和 1 之间...
> summary(test_data)
y x
Min. :0.000000 Min. :0.0000
1st Qu.:0.001510 1st Qu.:0.0000
Median :0.003664 Median :1.0000
Mean :0.025847 Mean :0.5386
3rd Qu.:0.009054 3rd Qu.:1.0000
Max. :1.000000 Max. :1.0000
谁能帮我理解这里的问题是什么?如果我检查变量的类型,它们都是数字:
> class(test_data$y)
[1] "numeric"
> class(test_data$x)
[1] "numeric"
【问题讨论】:
-
使用
class(variable)检查您的变量。如果它们是字符,则需要转换它们。 -
添加一个(小)数据样本。
-
你不应该是一个因素吗? (例如 0 和 1)
-
@Matt 因子仅在因变量是分类变量时才有意义,例如,男性/女性没有内在数值并且因子将分配这些变量。数字输入本身就很好,例如某些测量的百分比值。
-
@Matt 它不应该是必要的——正如我在上面的标题中提到的,我使用 logit 来预测 0 到 1 之间的连续变量。这在经济学中相对常见。例如,请参阅这篇论文:tandfonline.com/doi/abs/10.1080/135048596356636
标签: r logistic-regression glm