如何使用R做非线性回归

Python014

如何使用R做非线性回归,第1张

打开R,注意要把该安装的函数包都安装一下,然后用nls函数做非线性回归

例如:估计非线性回归统计模型

步骤:

#读取数据并查看

f<-read.csv(file="D:/XXX.csv")

f

#做出x与y之间的散点图

plot(f$y~f$x)

#利用nls函数估计β1、β2

nls(f$y~1/(β1+β2*exp(-f$x)),data=f,start=list(β1=1,β2=1))

#添加非线性回归线

y<-f$y

x<-f$x

f<-function(β1,β2,x){1/(β1+β2*exp(-x))}

f.1<-function(x){f(带入估计出的β1,β2,x)}

curve(f.1,add=T,col="red")

把数据分成训练集和测试集。 训练集用来找出模型中参数,而测试集用来测试模型准确性。

有些非线性回归是可以转化成线性回归来处理的,【beat,r,j】=nlinfit(x,y,model)这个是求回归系数的,beat就表示回归系数,r表示残差,j表示jacobian矩阵。 如果你还要求置信区间,用betaic=nlparci(beat,r,j)。

回归分析法

所谓回归分析法,是在掌握大量观察数据的基础上,利用数理统计方法建立因变量自变量之间的回归关系函数表达式(称回归方程式)。回归分析中,当研究的因果关系只涉及因变量和一个自变量时,叫做一元回归分析;当研究的因果关系涉及因变量和两个或两个以上自变量时,叫做多元回归分析。