用基本R拟合平方根函数

有一个

我对R很陌生。我已经绘制了我的数据,我只想为它拟合一个不错的模型。而已。

我认为我可以在这里拟合平方根模型(至少适合红色数据点)。还是您还有其他建议?我不知道该怎么做。

我的代码如下所示:

plot(gbl$g_aH_upper~gbl$windspeed,
 main="Boundary Layer Conductance",
 ylab="Boundary Layer Conductance [m/s]",ylim=lmts, #adj=1,
 xlab="wind speed [m/s]",
 xaxt='n',
 cex.axis=0.8,
 pch=19,
 las=1,
 col="black",type="p",cex=0.7)
axis(side=1,las=1, at=c(seq(from=0,to=2.0,by=0.1), tick=F))
legend('bottomright', legend=c("Upper leaves","Lower leaves")[-50], 
   lty=1, col=c('black', 'red'), bty='n', cex=1.0, y.intersp = 0.6, x.intersp = 0.4, seg.len = 0.6,lwd=1.5, text.width = 0.8)
par(new = TRUE)
plot(gbl$g_aH_lower~gbl$windspeed, axes = FALSE, xlab = ' ', ylab = ' ', col="red" ,type="p",cex=0.7,las=1, pch=16)

我的线性模型初步图

如您所见,线性模型不太适合。我想我可以做的更好。

戴夫2e

由于您已经准备好有关数据行为的理论,因此该理论应该是模型的基础。在这种情况下,y = beta0 + beta1 * sqrt(x)。

与该lm功能相反,该型号可以配备标准glm功能。

这是使用您的近似数据的示例:

#create limited data
x<-c(0,  1.1, 1.4, 1.7)
y<-c(0.06, 0.115, 0.115, 0.125)

plot(y~x)
model<-lm(y~x)
#plot a linear fit
  abline(model, col="blue")
  print(summary(model))

#model with the square of x
#  I() inhibit interpretation see help(I) for more information
  modelsr<-lm(y~I(sqrt(x)))
  print(summary(modelsr))

#generate the data to the model
  xbar<-seq(0, 1.7, 0.03)
  ybar<-modelsr$coefficients[1]+sqrt(xbar)*modelsr$coefficients[2]
#plot model
lines(y=ybar, x=xbar, pch=19, col="green") 

是的,平方根(绿线)确实比简单的线性回归(蓝线)更适合数据: 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档