参考文献:
1. 薛毅,陈立萍.统计建模与R软件,第六章回归分析. 清华大学出版社
###############################################################
# ara #导入数据ara,包含amountara和SL.mm.两个指标
ara
View(ara)
attach(ara)
plot(amountara~SL.mm.)
#---------------建立所需的拟合模型------------------
# y=a+b*exp(c*x)
mod1
mod.ara
# 非线性1,y~a+b*exp(c*x)
summary(mod1) #导出both residual standard error and R^2
#Residual standard error: 0.1518 on 110 degrees of freedom#MultipleR-squared: 0.8093, Adjusted R-squared: 0.8076
summary(mod.ara) #导出residual standard error,no R^2
#Residual standard error: 0.1234on 109 degrees of freedom#Number ofiterationsto convergence: 12
AIC(mod1)
#[1] -100.4275
AIC(mod.ara)# AIC值越小,拟合的模型就越好
# [1] -145.7978#上述AIC结果显示模型mod.ara更好
#------------------next作图,并添加拟合曲线-----------------
x.ara
# N.B. 此处SL.mm.不可以使用ara$SL.mm.,否则后面拟合曲线会出错,下同
# 或者
x.ara2
y1
y.ara
# N.B. 上述SL.mm.不可以使用ara$SL.mm.,否则后面拟合曲线会出错,下同
plot(amountara~SL.mm.,main="ara")
lines(x.ara,y1,col="black") #线性
lines(x.ara,y.ara,col="red") #非线性
#---------------如果想看所有迭代次数的拟合曲线,如下-----------
#y.ara
y.ara.iterations
# 不同之处在于:未将SL.mm.定义给 x.ara
plot(amountara~SL.mm.,main="ara")
lines(SL.mm.,y.ara.iterations,col="red")#非线性,绘制所有迭代拟合曲线
# iterations means 迭代
#-------------------所有迭代次数的拟合曲线,结束---------------
#mod.ara
# summary(mod.ara) 拟合结果显示 # -0.3695 0.1232 0.3186 分别对应上行的参数a,b,c
text(5,1.2,"y=-0.3695+0.1232*exp(0.3186*SL.mm.)")
#######--------next手动计算nls非线性拟合的R^2---------#######
#-----------how to get R^2 byresidual standard error????
#-----------the residual standard error σˆ =sqrt(SSE/(n-k))
# k 为参数个数,即y=a+b*X中的a和b
# SSE= (residual standard error^2)*(n-k)
# R^2= 1- SSE/[var(amountara)*(n-1)]
# R^2= 1- [(residual standarderror^2)*(n-k)]/[var(amountara)*(n-1)]
# var(amountara) #计算y的方差,不是标准差
sum.ara
# sum.ara$sigma # sigmais the value of "residual standard error"
# sum.ara$df[2] # 即为 n-k
# sum.ara$df[1] # 即为 k,参数个数,mod2中k=3,即a,b,c
# length(ara$SL.mm.) # 即为 n,样本数即112
R.square= 1-((sum.ara$sigma^2)*(sum.ara$df[2]))/(var(amountara)*(length(ara$SL.mm.)-1))
R.square
#[1] 0.8750826#非线性拟合结果的R^2=0.875082比线性拟合结果R^2=0.8093高
sum.ara
# over
转载本文请联系原作者获取授权,同时请注明本文来自梅卫平科学网博客。
链接地址:http://blog.sciencenet.cn/blog-651374-1014133.html
上一篇:在R中运行metaMDS
下一篇:x~y1+y2+...的情况下,ggplot2作柱状图及误差棒