需要β回归预测和曲线曲线的示例

时间:2014-11-07 18:00:28

标签: r regression

我刚刚发现使用Betareg软件包进行Beta回归,我希望看到一个完整的简单示例,使用predict()并绘制拟合的回归曲线,如betareg vignette文档中的图2第9页(使用来自Prater的汽油产量数据)。作者的示例(下面)仅给出了回归的摘要。 http://cran.r-project.org/web/packages/betareg/vignettes/betareg.pdf

data("GasolineYield", package = "betareg")
gy_logit <- betareg(yield ~ batch + temp, data = GasolineYield)
summary(gy_logit)
...

2 个答案:

答案 0 :(得分:2)

可以从R:

中轻松查询betareg插图中图形的确切代码
edit(vignette("betareg", package = "betareg"))

汽油的例子是3-5块。或者,您也可以在R-Forge https://R-Forge.R-project.org/scm/viewvc.php/pkg/vignettes/?root=betareg上查看软件包的源代码,或者使用Gregor指向的Github上的副本。

如果你想要一个 ggplot2 版本,你可以使用Sven的答案。但是,将模型仅适用于子集(批处理==“6”)通常不是一个好主意。在这个特定的数据集中,估计的模型非常类似于拟合完整数据的模型,但对于其他数据集,它可能导致较差的参数估计。相反,估计完整样本,然后通过保持一些变量固定并让其他变量变化来预测效果。这也是效果包的功能(但遗憾的是我们尚未设置 betareg 效果的插件)。

答案 1 :(得分:1)

使用ggplot2的方法:

首先,为batch == 6

的数据拟合模型
library(betareg)
data("GasolineYield", package = "betareg")

gy_logit <- betareg(yield ~ temp, data = GasolineYield, subset = batch == 6)
gy_loglog <- betareg(yield ~ temp, data = GasolineYield, subset = batch == 6,
                     link = "loglog")

其次,绘制数据:

library(ggplot2)
ggplot(GasolineYield, aes(x = temp, y = yield)) +
  geom_point(size = 4, aes(fill = batch), shape = 21) +
  scale_fill_grey() +
  geom_line(aes(y = predict(gy_loglog, GasolineYield),
                colour = "log-log", linetype = "log-log")) +
  geom_line(aes(y = predict(gy_logit, GasolineYield), 
                colour = "logit", linetype = "logit")) +
  scale_colour_manual("", values = c("red", "blue")) +
  scale_linetype_manual("", values = c("solid", "dashed")) +
  theme_bw()

enter image description here