【发布时间】:2019-03-29 21:59:17
【问题描述】:
我正在尝试将 S 曲线拟合到我的逻辑回归模型,但我所拥有的只是这条略微弯曲的线,而不是 S 形曲线。我的代码有什么需要更改的地方吗?
#Log Regression model
logmodel<-glm(y~emp.var.rate,data=Dataset,family=binomial)
summary(logmodel)
#plot
plot(emp.var.rate,y)
x<-seq(from=min(emp.var.rate),to=max(emp.var.rate))
hat.beta<-coef(logmodel)
hat.beta
lines(x, (1 + exp(-hat.beta[1] - hat.beta[2]*x))^(-1), col="blue")
> hat.beta
(Intercept) emp.var.rate
-2.2207829 -0.5203776
【问题讨论】:
-
我假设您的预测概率不涵盖 0 和 1 之间的全部范围,因此您不会得到完整的 S 曲线。预测值的最小值和最大值是多少?
-
但是使用这个代码“x
-
这是从您观察到的数据的最小值到最大值。您的观察范围不足以使 s 曲线的渐近线变得明显。试试
x <- seq(from = min(emp.var.rate) - 3 * diff(range(emp.var.rate)), to = max(emp.var.rate) + 3 * diff(range(emp.var.rate)), length.out = 1000)。根据需要展开更多。 (但也要意识到,如果你这样做,你的推断远远超出了你的数据范围......) -
谢谢。现在它延伸得更远了,但仍然根本看不到 S...这与我的数据有关吗?是不是因为数据不平衡?
-
这并没有错。如果你没有得到 S 曲线也没关系,这就是你的数据。不要将
x扩展到观察值之外,这会超出观察到的数据。
标签: r