鍍金池/ 教程/ 數(shù)據(jù)分析&挖掘/ R語言非線性最小二乘法
R語言列表
R語言隨機森林
R語言矩陣
R語言邏輯回歸
R語言數(shù)據(jù)幀
R語言數(shù)據(jù)重塑
R語言概述
R語言包
R語言字符串
R語言CSV文件
R語言運算符
為什么使用R語言做統(tǒng)計?
R語言Web數(shù)據(jù)
R語言二進(jìn)制文件
R語言XML文件
R語言JSON文件
R語言因子
R語言容易學(xué)習(xí)嗎?
R語言基礎(chǔ)語法
R語言向量
R語言教程
R語言正態(tài)分布
R語言平均值,中位數(shù)和眾數(shù)
R語言變量
R語言條形圖
R語言決策樹
R語言開發(fā)環(huán)境安裝配置
R語言數(shù)組
R語言數(shù)據(jù)類型
R語言非線性最小二乘法
R語言直方圖
R語言卡方檢驗
R語言泊松回歸
R語言決策結(jié)構(gòu)
R語言盒形圖(箱形圖)
R語言協(xié)方差分析
R語言二項分布
R語言餅狀圖
R語言循環(huán)
R語言散點圖
R語言線性回歸
R語言時間序列分析
R語言線形圖
R語言在現(xiàn)實中的應(yīng)用
R語言生存分析
R語言多元(多重)回歸
R語言函數(shù)
R語言Excel文件
R語言連接數(shù)據(jù)庫(MySQL)

R語言非線性最小二乘法

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

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

語法

在R中創(chuàng)建非線性最小二乘檢驗的基本語法是 -

nls(formula, data, start)

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

  • formula - 是包含變量和參數(shù)的非線性模型公式。
  • data - 是用于評估(計算)公式中的變量的數(shù)據(jù)幀。
  • start - 是起始估計的命名列表或命名數(shù)字向量。

示例

我們將考慮一個假設(shè)其系數(shù)的初始值的非線性模型。 接下來,我們將看到這些假設(shè)值的置信區(qū)間是多少,以便可以判斷這些值是如何進(jìn)入模型的。

所以考慮下面這個方程式 -

a = b1*x^2+b2

我們假設(shè)初始系數(shù)為13,并將這些值擬合成nls()函數(shù)。

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

當(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

輸出的圖形如下所示 -

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


上一篇:R語言泊松回歸下一篇:R語言餅狀圖