鍍金池/ 教程/ 數(shù)據(jù)分析&挖掘/ R語言線性回歸
R語言列表
R語言隨機(jī)森林
R語言矩陣
R語言邏輯回歸
R語言數(shù)據(jù)幀
R語言數(shù)據(jù)重塑
R語言概述
R語言包
R語言字符串
R語言CSV文件
R語言運(yùn)算符
為什么使用R語言做統(tǒng)計(jì)?
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語言卡方檢驗(yàn)
R語言泊松回歸
R語言決策結(jié)構(gòu)
R語言盒形圖(箱形圖)
R語言協(xié)方差分析
R語言二項(xiàng)分布
R語言餅狀圖
R語言循環(huán)
R語言散點(diǎn)圖
R語言線性回歸
R語言時(shí)間序列分析
R語言線形圖
R語言在現(xiàn)實(shí)中的應(yīng)用
R語言生存分析
R語言多元(多重)回歸
R語言函數(shù)
R語言Excel文件
R語言連接數(shù)據(jù)庫(MySQL)

R語言線性回歸

回歸分析是一個(gè)廣泛使用的統(tǒng)計(jì)工具,用于建立兩個(gè)變量之間的關(guān)系模型。 這些變量之一稱為預(yù)測變量,其值通過實(shí)驗(yàn)收集。 另一個(gè)變量稱為響應(yīng)變量,其值來自預(yù)測變量。

在線性回歸中,這兩個(gè)變量通過一個(gè)等式相關(guān)聯(lián),其中這兩個(gè)變量的指數(shù)(冪)是1。數(shù)學(xué)上,當(dāng)繪制為圖形時(shí),線性關(guān)系表示直線。任何變量的指數(shù)不等于1的非線性關(guān)系產(chǎn)生曲線。

線性回歸的一般數(shù)學(xué)方程為 -

y = ax + b

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

  • y - 是響應(yīng)變量。
  • x - 是預(yù)測變量。
  • ab - 叫作系數(shù)的常數(shù)。

建立回歸的步驟

一個(gè)簡單的線性回歸例子:是否能根據(jù)一個(gè)人的已知身高來預(yù)測人的體重。要做到這一點(diǎn),我們需要有一個(gè)人的身高和體重之間的關(guān)系。

創(chuàng)建線性回歸關(guān)系的步驟是 -

  • 進(jìn)行收集高度和相應(yīng)重量觀測值樣本的實(shí)驗(yàn)。
  • 使用R中的lm()函數(shù)創(chuàng)建關(guān)系模型。
  • 從所創(chuàng)建的模型中找到系數(shù),并使用這些系數(shù)創(chuàng)建數(shù)學(xué)方程。
  • 獲取關(guān)系模型的摘要,以了解預(yù)測中的平均誤差(也稱為殘差)。
  • 為了預(yù)測新人的體重,請使用R中的predict()函數(shù)。

輸入數(shù)據(jù)樣本

以下是表示觀察結(jié)果的樣本數(shù)據(jù) -

# Values of height
151, 174, 138, 186, 128, 136, 179, 163, 152, 131

# Values of weight.
63, 81, 56, 91, 47, 57, 76, 72, 62, 48

lm()函數(shù)

lm()函數(shù)創(chuàng)建預(yù)測變量與響應(yīng)變量之間的關(guān)系模型。

語法

線性回歸中lm()函數(shù)的基本語法是 -

lm(formula,data)

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

  • formula - 是表示xy之間的關(guān)系的符號。
  • data - 是應(yīng)用公式的向量。

示例: 創(chuàng)建關(guān)系模型并得到系數(shù)

x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)

# Apply the lm() function.
relation <- lm(y~x)

print(relation)

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x  
   -38.4551          0.6746

獲取關(guān)系的概要 -

x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)

# Apply the lm() function.
relation <- lm(y~x)

print(summary(relation))

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -

Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q     Median      3Q     Max 
-6.3002    -1.6629  0.0412    1.8944  3.9775 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -38.45509    8.04901  -4.778  0.00139 ** 
x             0.67461    0.05191  12.997 1.16e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.253 on 8 degrees of freedom
Multiple R-squared:  0.9548,    Adjusted R-squared:  0.9491 
F-statistic: 168.9 on 1 and 8 DF,  p-value: 1.164e-06

predict()函數(shù)

語法

線性回歸中的predict()的基本語法是 -

predict(object, newdata)

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

  • object - 是已經(jīng)使用lm()函數(shù)創(chuàng)建的公式。
  • newdata - 是包含預(yù)測變量的新值的向量。

示例: 預(yù)測新人的體重

# The predictor vector.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)

# The resposne vector.
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)

# Apply the lm() function.
relation <- lm(y~x)

# Find weight of a person with height 170.
a <- data.frame(x = 170)
result <-  predict(relation,a)
print(result)

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -

       1 
76.22869

示例:以圖形方式可視化線性回歸,參考以下代碼實(shí)現(xiàn) -

# Create the predictor and response variable.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
relation <- lm(y~x)

# Give the chart file a name.
png(file = "linearregression.png")

# Plot the chart.
plot(y,x,col = "blue",main = "身高和體重回歸",
abline(lm(x~y)),cex = 1.3,pch = 16,xlab = "體重(Kg)",ylab = "身高(cm)")

# Save the file.
dev.off()

當(dāng)我們執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果 -