我遇到了一个奇怪的问题;在这里获取我的数据集:dataset
我需要的是一个简单的图表,显示rao和obs_richness之间的最佳拟合回归(二次回归);但相反,我得到了非常不同的多项式模型。对于如何解决这个问题,有任何的建议吗?
#read in data
F_Div<-read.csv('F_Div.csv', header=T)
str(F_Div)
pairs(F_Div[2:12], pch=16)
#richness vs functional diversity
par(mfrow=c(1,1))
lm1<-lm ( rao~Obs_Richness, data=F_Div)
summary (lm1)
plot (rao~Obs_Richness, data=F_Div, pch=16, xlab="Species Richness", ylab="Rao's Q")
abline(lm1, lty=3)
lines (lowess (F_Div$rao~F_Div$Obs_Richness))
poly.mod<- lm (F_Div$rao ~ poly (F_Div$Obs_Richness, 2, raw=T))
summary (poly.mod)
lines (F_Div$Obs_Richness, predict(poly.mod))
我需要最接近lowess线(简单曲线)的线,而不是这个波浪般的混乱。
我也试过这个但不是需要:
xx <- seq(0,30, length=67)
plot (rao~Obs_Richness, data=F_Div, pch=16, xlab="Species Richness", ylab="Rao's Q")
lines(xx, predict(poly.mod, data.frame(x=xx)), col="blue")
答案 0 :(得分:1)
由于line(...)
在数据的原始顺序中的连续点之间绘制线条,因此发生了波浪混乱。最后试试这个。
p <- data.frame(x=F_Div$Obs_Richness,y=predict(poly.mod))
p <- p[order(p$x),]
lines(p)