【问题标题】:Need example for beta regression predict and plot curve需要 beta 回归预测和绘制曲线的示例
【发布时间】:2014-11-07 18:00:27
【问题描述】:

我刚刚发现了带有 Betareg 包的 Beta 回归,我希望看到一个使用 predict() 并绘制拟合回归曲线的完整简单示例,例如 betareg 小插图文档中的第 9 页图 2(使用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)
...

【问题讨论】:

标签: r regression


【解决方案1】:

可以从 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 的答案。但是,通常只在一个子集(batch == "6")上拟合模型并不是一个好主意。在这个特定的数据集中,估计的模型与在完整数据上拟合的模型非常相似,但对于其他数据集,它可能会导致参数估计较差。相反,估计整个样本,然后通过保持一些变量固定并让其他变量变化来预测效果。这也是 effects 包所做的(但不幸的是,我们还没有为 betaregeffects 设置插件。

【讨论】:

  • 我完全同意您的建模方法。感谢您的帮助。
【解决方案2】:

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()

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多