我正在尝试将黄土回归拟合到我的数据集(生物量的纬度分布)。我使用了以下代码:
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)不好,因为它削减了曲线..
感谢。
答案 0 :(得分:2)
黄土方法假定无限分布,因此如果数据接近0,则可以轻松地低于0.在工作日志范围的一个选项(使模型适合y值的对数,然后对预测进行取幂)绘图等值。)
答案 1 :(得分:1)
如果要限制y值,为什么要设置xlim?无论哪种方式,xlim和ylim仅用于过滤底层数据集,因此无法解决您的问题。避免0值的另一种方法是使用不同的模型:如果所有观察值都是正的,则线性回归不应插入负值。或者,逻辑回归可能适合您的数据?
将这些类型的拟合添加到数据实际上非常简单,只需添加method = glm
和family = binomial
,例如,在stat_smooth
内。