R语言非线性最小二乘法

当对真实世界数据建模进行回归分析时,我们观察到模型的方程很少是给出线性图的线性方程。 大多数情况下,现实世界数据模型的方程式涉及更高程度的数学函数,如3sin函数的指数。 在这种情况下,模型的曲线给出了曲线而不是线性。线性和非线性回归的目标是调整模型参数的值以找到最接近您的数据的线或曲线。当找到这些值时,我们才能够准确估计响应变量。

在最小二乘回归中,我们建立了一个回归模型,不同点与回归曲线的垂直距离的平方和之和最小化。 我们通常从定义的模型开始,并假设系数的一些值。 然后应用R中的nls()函数来获得更准确的值以及置信区间。

语法

在R中创建非线性最小二乘检验的基本语法是 -

nls(formula, data, start)

以下是使用的参数的描述 -

  • formula - 是包含变量和参数的非线性模型公式。
  • data - 是用于评估(计算)公式中的变量的数据帧。
  • start - 是起始估计的命名列表或命名数字向量。

示例

我们将考虑一个假设其系数的初始值的非线性模型。 接下来,我们将看到这些假设值的置信区间是多少,以便可以判断这些值是如何进入模型的。

所以考虑下面这个方程式 -

a = b1*x^2+b2

我们假设初始系数为13,并将这些值拟合成nls()函数。

setwd("F:/worksp/R")
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

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R语言中,可以使用ANOVA检验来验证线性关系。通过ANOVA检验,我们可以评估线性模型与线性模型之间的差异。为了进行线性ANOVA检验,我们可以使用R中的函数`anova()`。该函数可以用于比较不同模型的拟合优度,并确定线性模型是否比线性模型更好地拟合数据。 首先,我们需要拟合一个线性模型和一个线性模型。对于线性模型,我们可以使用普通最小二乘法,例如使用lm()函数。对于线性模型,我们可以使用GAM(广义可加模型)或多项式回归模型。 然后,我们可以使用anova()函数来比较这两个模型的拟合优度。如果线性模型比线性模型更好地拟合数据,那么ANOVA检验的结果将显示出显著的差异。 请注意,ANOVA检验仅用于比较模型的拟合优度,而不是用于验证线性关系的存在。如果我们想要更具体地验证线性关系,我们可能需要使用其他方法,如残差分析、图形分析或其他假设检验方法。 总结起来,使用R语言进行ANOVA检验线性关系的一般步骤如下: 1. 拟合线性模型和线性模型(如GAM或多项式回归)。 2. 使用anova()函数比较这两个模型的拟合优度。 3. 根据ANOVA检验结果判断线性模型是否比线性模型更好地拟合数据。 请注意,具体的代码和数据处理方案可能会根据具体的数据和研究问题而有所不同。因此,建议在实际应用中参考相关的R软件包和文档来实现线性ANOVA检验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [R语言里的线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析](https://blog.csdn.net/tecdat/article/details/128280366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值