­

R語言數據分析與挖掘(第四章):回歸分析(1)——一元回歸分析

  • 2019 年 10 月 8 日
  • 筆記

回歸分析只涉及到兩個變數的,稱一元回歸分析。一元回歸的主要任務是從兩個相關變數中的一個變數去估計另一個變數,被估計的變數,稱因變數,可設為Y;估計出的變數,稱自變數,設為X。回歸分析就是要找出一個數學模型Y=f(X),使得從X估計Y可以用一個函數式去計算。當Y=f(X)的形式是一個直線方程時,稱為一元線性回歸。這個方程一般可表示為Y=A+BX。根據最小平方法或其他方法,可以從樣本數據確定常數項A與回歸係數B的值。A、B確定後,有一個X的觀測值,就可得到一個Y的估計值。回歸方程是否可靠,估計的誤差有多大,都還應經過顯著性檢驗和誤差計算。有無顯著的相關關係以及樣本的大小等等,是影響回歸方程可靠性的因素。R語言中的一元線性回歸是用lm()函數實現的。

lm是用來滿足線性模型。它可以用來進行回歸,單地層分析,方差和協方差分析,這裡介紹一元回歸。

lm(formula, data, subset, weights, na.action,     method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE,     singular.ok = TRUE, contrasts = NULL, offset, ...)

參數:formula

類對象"formula"(或一個可以強制這一類):將裝有模型的一個象徵性的描述。在「詳細資訊」型號規格的細節。

參數:data

一個可選的數據框,列表或環境(as.data.frame到一個數據框或對象強制轉換)包含在模型中的變數。如果沒有找到data,environment(formula),通常是從哪個lm被稱為環境變數。

參數:subset

一個可選的向量指定要在裝修過程中使用的觀測的子集。

參數:weights

一個向量。指定用於回歸的每個觀測值的權重。如果非NULL,加權最小二乘配重使用weights(是,較大限度地減少sum(w*e^2)),否則普通最小二乘使用(默認)。

參數:na.action

一個函數,指定缺失值處理方式。若為NULL,使用函數na.omit()刪除缺失值。

參數:method

要使用的方法;進行擬合,目前只有method = "qr"支援method = "model.frame"返回的模型框架(model = TRUE,見下文相同)。

參數:model, x, y, qr

邏輯值。如果TRUE返回合適的模型框架,模型矩陣,響應,QR分解的相應部件。

參數:singular.ok

邏輯值。指定奇異擬合是否報錯,默認TRUE。

參數:contrasts

可選列表。模型中因子對應的列表,為模型中的每一個因子指定一種對照方式,默認值為NULL。

參數:offset

這可以被用來指定一個先驗已知的組件包括在裝修過程中的線性預測。這應該是NULL或數字矢量的長度相等的情況數目。一個或多個offset條款可以包括在公式代替,以及,如果超過指定使用它們的總和。

下面以iris數據集進行實戰演示:

# 利用iris數據集中的變數Sepal.Length和Petal.Width做回歸  # formula 指定的對象  > (lm1=lm(Sepal.Length~Petal.Width,data=iris))  Call:  lm(formula = Sepal.Length ~ Petal.Width, data = iris)    Coefficients:  (Intercept)  Petal.Width       4.7776       0.8886  # 4.7776 為變數Sepal.Length的數學期望  > summary(lm1) # 查看多個統計學指標    Call:  lm(formula = Sepal.Length ~ Petal.Width, data = iris)    Residuals:       Min       1Q   Median       3Q      Max  -1.38822 -0.29358 -0.04393  0.26429  1.34521    Coefficients:              Estimate Std. Error t value Pr(>|t|)  (Intercept)  4.77763    0.07293   65.51   <2e-16 ***  Petal.Width  0.88858    0.05137   17.30   <2e-16 ***  ---  Signif. codes:  0 『***』 0.001 『**』 0.01 『*』 0.05 『.』 0.1 『 』 1    Residual standard error: 0.478 on 148 degrees of freedom  Multiple R-squared:  0.669,  Adjusted R-squared:  0.6668  F-statistic: 299.2 on 1 and 148 DF,  p-value: < 2.2e-16  # 在Coefficients選項中,對回歸模型的參數進行顯著性檢驗,重點看p值。  > par(mfrow=c(2,2))  > plot(lm1)  > (lm1=lm(Sepal.Length~Petal.Width,data=iris[-c(123,132),]))    Call:  lm(formula = Sepal.Length ~ Petal.Width, data = iris[-c(123,      132), ])    Coefficients:  (Intercept)  Petal.Width       4.7890       0.8649    > summary(lm1)    Call:  lm(formula = Sepal.Length ~ Petal.Width, data = iris[-c(123,      132), ])    Residuals:       Min       1Q   Median       3Q      Max  -1.35927 -0.26939 -0.02953  0.26508  1.02722    Coefficients:              Estimate Std. Error t value Pr(>|t|)  (Intercept)  4.78897    0.06992   68.49   <2e-16 ***  Petal.Width  0.86488    0.04958   17.44   <2e-16 ***  ---  Signif. codes:  0 『***』 0.001 『**』 0.01 『*』 0.05 『.』 0.1 『 』 1    Residual standard error: 0.4578 on 146 degrees of freedom  Multiple R-squared:  0.6758,  Adjusted R-squared:  0.6735  F-statistic: 304.3 on 1 and 146 DF,  p-value: < 2.2e-16