Question

I'm running into an odd problem; get my dataset here:dataset

All I need is a simple graph showing the best-fit regression (quadratic regression) between rao and obs_richness; but instead I am getting very different polynomial models. Any suggestions on how to fix this?

#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))

I need the line that best approximates the lowess line (a simple curve), not this squiggly mess.

I also tried this but not what need:

    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")
Was it helpful?

Solution

The squiggly mess happens because line(...) draws lines between successive points in the data's original order. Try this at the end.

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top