R語(yǔ)言 非線性最小二乘

2022-06-16 16:08 更新

當(dāng)模擬真實(shí)世界數(shù)據(jù)用于回歸分析時(shí),我們觀察到,很少情況下,模型的方程是給出線性圖的線性方程。大多數(shù)時(shí)候,真實(shí)世界數(shù)據(jù)模型的方程涉及更高程度的數(shù)學(xué)函數(shù),如3的指數(shù)或sin函數(shù)。在這種情況下,模型的圖給出了曲線而不是線。線性和非線性回歸的目的是調(diào)整模型參數(shù)的值,以找到最接近您的數(shù)據(jù)的線或曲線。在找到這些值時(shí),我們將能夠以良好的精確度估計(jì)響應(yīng)變量。

在最小二乘回歸中,我們建立了一個(gè)回歸模型,其中來(lái)自回歸曲線的不同點(diǎn)的垂直距離的平方和被最小化。我們通常從定義的模型開(kāi)始,并假設(shè)系數(shù)的一些值。然后我們應(yīng)用R語(yǔ)言的nls()函數(shù)獲得更準(zhǔn)確的值以及置信區(qū)間。

語(yǔ)法

在R語(yǔ)言中創(chuàng)建非線性最小二乘測(cè)試的基本語(yǔ)法是 -

nls(formula, data, start)

以下是所使用的參數(shù)的描述 - 

  • formula是包括變量和參數(shù)的非線性模型公式。

  • data是用于計(jì)算公式中變量的數(shù)據(jù)框。

  • start是起始估計(jì)的命名列表或命名數(shù)字向量。

我們將考慮一個(gè)假設(shè)其系數(shù)的初始值的非線性模型。 接下來(lái),我們將看到這些假設(shè)值的置信區(qū)間是什么,以便我們可以判斷這些值在模型中有多好。

所以讓我們考慮下面的方程為這個(gè)目的 -

a = b1*x^2+b2

讓我們假設(shè)初始系數(shù)為1和3,并將這些值擬合到nls()函數(shù)中。

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))

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -

[1] 1.081935
Waiting for profiling to be done...
       2.5%    97.5%
b1 1.137708 1.253135
b2 1.497364 2.496484
非線性至少方塊R

我們可以得出結(jié)論,b1的值更接近1,而b2的值更接近2而不是3。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)