2

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

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) 不好,因为它切断了曲线。

谢谢。

4

2 回答 2

2

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

将这些类型的拟合添加到数据中实际上非常简单,只需添加method = glmand 和family = binomial,例如 inside stat_smooth

于 2014-12-17T22:38:47.920 回答
2

loess 方法假设一个无界分布,因此如果您的数据接近 0,则可以轻松低于 0。在对数尺度上工作的一种选择(将模型拟合到 y 值的对数,然后对预测值取幂以进行绘图, ETC。)

于 2014-07-09T16:44:36.813 回答