1

奇妙な問題が発生しています。ここでデータセットを取得します:データセット

必要なのは、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")
4

1 に答える 1

1

line(...)データの元の順序で連続するポイント間に線を引くため、波状の混乱が発生します。最後にこれを試してください。

p <- data.frame(x=F_Div$Obs_Richness,y=predict(poly.mod))
p <- p[order(p$x),]
lines(p)

于 2014-05-06T16:55:28.960 に答える