- R 教程
- R - 首页
- R - 概览
- R - 环境设置
- R - 基本语法
- R - 数据类型
- R - 变量
- R - 运算符
- R - 决策制定
- R - 循环
- R - 函数
- R - 字符串
- R - 向量
- R - 列表
- R - 矩阵
- R - 数组
- R - 因子
- R - 数据框
- R - 软件包
- R - 数据重塑
R - 非线性最小二乘
在为回归分析建模真实世界数据时,我们观察到模型的方程很少是产生线性图表的线性方程。大多数情况下,真实世界数据的模型方程涉及较高次幂的数学函数,如 3 次幂或正弦函数。在这样的场景中,模型的图给出的是曲线而不是直线。线性回归和非线性回归的目标都是调整模型参数的值,以找到最接近您数据的直线或曲线。在找到这些值后,我们将能够非常准确地估计响应变量。
在最小二乘回归中,我们建立一个回归模型,其中不同点到回归曲线的垂直距离的平方和最小。我们通常从一个已定义的模型开始,并假设一些系数的值。然后,我们应用 R 的 nls() 函数来获取更准确的值以及置信区间。
语法
在 R 中创建非线性最小二乘检验的基本语法为 −
nls(formula, data, start)
以下是所用参数的描述 −
formula 是包括变量和参数的非线性模型公式。
data 是用于评估公式中变量的数据框。
start 是起始估计值的命名列表或命名的数字向量。
示例
我们将考虑一个非线性模型,并假设其系数的初始值。接下来,我们将查看这些假定值的置信区间,以便判断这些值在模型中拟合得如何。
因此,让我们为此考虑以下方程 −
a = b1*x^2+b2
我们假设初始系数为 1 和 3,并将这些值代入 nls() 函数。
xvalues <- c(1.6,2.1,2,2.23,3.71,3.25,3.4,3.86,1.19,2.21) yvalues <- c(5.19,7.43,6.94,8.11,18.75,14.88,16.06,19.12,3.21,7.58) # Give the chart file a name. png(file = "nls.png") # Plot these values. plot(xvalues,yvalues) # Take the assumed values and fit into the model. model <- nls(yvalues ~ b1*xvalues^2+b2,start = list(b1 = 1,b2 = 3)) # Plot the chart with new data by fitting it to a prediction from 100 data points. new.data <- data.frame(xvalues = seq(min(xvalues),max(xvalues),len = 100)) lines(new.data$xvalues,predict(model,newdata = new.data)) # Save the file. dev.off() # Get the sum of the squared residuals. print(sum(resid(model)^2)) # Get the confidence intervals on the chosen values of the coefficients. print(confint(model))
当我们执行上述代码时,它产生以下结果 −
[1] 1.081935 Waiting for profiling to be done... 2.5% 97.5% b1 1.137708 1.253135 b2 1.497364 2.496484
我们可以得出结论:b1 的值更接近 1,而 b2 的值更接近 2,而不是 3。
广告