黄土回归变为负值

时间:2014-07-09 15:44:00

标签: r ggplot2 loess

我正在尝试将黄土回归拟合到我的数据集(生物量的纬度分布)。我使用了以下代码:

ggplot(data=test)+
  geom_point(aes(y=log10(value+1), x=lat, colour=variable), alpha=0.5)+
  stat_smooth(aes(y=log10(value+1), x=lat, colour=variable, fill=variable), size=1, alpha=0.1)+
  scale_y_continuous("Depth-integrated biomass (mgC.m-2)")+
  scale_x_continuous("Latitude", limits=c(-70, 80), breaks=seq(-70, 80, 10))+
  coord_flip()+
  theme_bw()+
  theme(legend.background = element_rect(colour = "black"))

问题是回归低于0而我没有低于0的值... 有没有办法强迫回归不要越过0? 我尝试改变“跨度”值,它更好,但黄土曲线的某些部分仍然是负面的。 Xlim = c(0,X)不好,因为它削减了曲线..

感谢。

2 个答案:

答案 0 :(得分:2)

黄土方法假定无限分布,因此如果数据接近0,则可以轻松地低于0.在工作日志范围的一个选项(使模型适合y值的对数,然后对预测进行取幂)绘图等值。)

答案 1 :(得分:1)

如果要限制y值,为什么要设置xlim?无论哪种方式,xlim和ylim仅用于过滤底层数据集,因此无法解决您的问题。避免0值的另一种方法是使用不同的模型:如果所有观察值都是正的,则线性回归不应插入负值。或者,逻辑回归可能适合您的数据?

将这些类型的拟合添加到数据实际上非常简单,只需添加method = glmfamily = binomial,例如,在stat_smooth内。