r語言一元回歸模型專題及常見問題 - CSDN

2021-01-07 CSDN技術社區

一元線性回歸分析

首先介紹回歸分析中最基礎的情況:一元線性回歸分析。它規定模型f函數只能是y=k*x+b的形式,即只使用一個變量x(故稱為一元)的線性形式來預測目標變量y。

6.1.1引例

利用某網站歷次促銷活動中促銷讓利費用和銷售金額的數據(單位是十萬元),將使用該數據集來說明線性回歸分析的應用。

使用如下語句來繪製其散點圖:

cost<-c(1.8,1.2,0.4,0.5,2.5,2.5,1.5,1.2,1.6,1.0,1.5,0.7,1.0,0.8)

sales<-c(104,68,39,43,127,134,87,77,102,65,101,46,52,33)

data<-data.frame(cost=cost,sales=sales)

plot(data,pch=16,xlab="cost促銷讓利費用(十萬元)",ylab="sales 促銷銷量(十萬元)")

sol.lm<-lm(sales~cost,data)

abline(sol.lm,col="red")

由上圖可以看出,促銷讓利費用cost變量和促銷銷量sales變量之間呈直線形式。

6.1.2 一元線性回歸分析的原理及R語言實現

1. 最小二乘法

最小二乘法旨在使獲得的模型最大限度地擬合樣本數據

2.樣本方差和協方差

3. 計算模型的參數k和b

(1)估算參數k和b的典型值

(k<-cov(cost,sales)/cov(cost,cost))#模型參數k

(b<-mean(sales)-k*mean(cost))        #模型參數b

也可使用回歸方程建立函數lm來計算。代碼如下:

(sol.lm<-lm(sales~cost,data))

Call:

lm(formula= sales ~ cost, data = data)

 

Coefficients:

(Intercept)         cost 

      13.82        48.60 

(2)估算參數k和b的取值範圍

在計算得到的回歸模型y=k*x+b中,係數b和k只是一個真實模型的典型估算值,其估算範圍是:

[ki-sd(ki)tα/2(n-2),ki+sd(ki)tα/2(n-2)]

其中,k0表示回歸模型y=k×x+b中的b,k1表示k。sd(ki)是參數的標準差,可以使用summary(sol.lm)$coefficients[,2]直接讀取,代碼如下:

df<-sol.lm$df.residual

alpha=0.05

left<-summary(sol.lm)$coefficients[,1]-summary(sol.lm)$coefficients[,2]*qt(1-alpha/2,df);left

(Intercept)        cost

 1.667702  40.182861

right<-summary(sol.lm)$coefficients[,1]+summary(sol.lm)$coefficients[,2]*qt(1-alpha/2,df);right

(Intercept)        cost

 25.97978   57.01138

在上述代碼中,df為自由度,等於樣本數n減去自變量數p,再減1,即為n-2,該自由度可以通過sol.lm$df.residual直接讀取,alpha是置信度,典型取值0.05,left是取值範圍的最小值,right是取值範圍的最大值。

4. 衡量相關程度

(1)相關係數r和判定係數r2

對於引例,可以使用如下代碼來計算相關參數。

(r<-cor(cost,sales))  #相關係數r

(r2<-r^2)             #判定係數r2

在lm函產生的結果中也包含了判定係數r的信息。

summary(sol.lm)

Call:

lm(formula= sales ~ cost, data = data)

 

Residuals:

    Min     1Q  Median      3Q    Max

-19.701  -3.566  1.430   4.873  14.281

 

Coefficients:

            Estimate Std. Error t valuePr(>|t|)   

(Intercept)  13.824      5.579  2.478   0.0291 * 

cost          48.597      3.862 12.584 2.84e-08 ***

---

Signif.codes:  0 『***』 0.001 『**』 0.01 『*』 0.05『.』 0.1 『 』 1

 

Residualstandard error: 9.106 on 12 degrees of freedom

MultipleR-squared:  0.9296,       Adjusted R-squared:  0.9237

F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

 

上述的Multiple R-squared就是判定係數r2,該係數也可以使用summary(sol.lm)$r.squared來直接讀取。

(2)修正判定係數adjusted.r2

事實上,判定係數r2在用於多元回歸分析時有一個缺點,自變量越多,判定係數r2越大。為了消除這個缺點,可以引入修正判定係數adjusted.r2的概念。

lm函數產生的結果中也包含了修正判定係數adjusted.r2的信息

summary(sol.lm)

Call:

lm(formula= sales ~ cost, data = data)

 

Residuals:

    Min     1Q  Median      3Q    Max

-19.701  -3.566  1.430   4.873  14.281

 

Coefficients:

            Estimate Std. Error t valuePr(>|t|)   

(Intercept)  13.824      5.579  2.478   0.0291 * 

cost          48.597      3.862 12.584 2.84e-08 ***

---

Signif.codes:  0 『***』 0.001 『**』 0.01 『*』 0.05『.』 0.1 『 』 1

 

Residualstandard error: 9.106 on 12 degrees of freedom

MultipleR-squared:  0.9296,       AdjustedR-squared:  0.9237

F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

上述的Adjusted R-squared就是修正判定係數,該係數也可以使用summary(sol.lm)$adj.r.squared來直接讀取。

5. 回歸係數的顯著性檢驗

(1)T檢驗

T檢驗可以檢驗各個模型參數是否等於0,並計算其等於0時的概率。一般來說,當p.value小於0.05,時,可以認定k不會等於0,其模型結果可用並通過了檢驗。

summary(sol.lm)

Call:

lm(formula= sales ~ cost, data = data)

 

Residuals:

    Min     1Q  Median      3Q    Max

-19.701  -3.566  1.430   4.873  14.281

 

Coefficients:

            Estimate Std. Error t valuePr(>|t|)   

(Intercept)  13.824      5.579  2.478   0.0291 *  

cost          48.597      3.862 12.584 2.84e-08 ***

---

Signif.codes:  0 『***』 0.001 『**』 0.01 『*』 0.05『.』 0.1 『 』 1

 

Residualstandard error: 9.106 on 12 degrees of freedom

MultipleR-squared:  0.9296,       Adjusted R-squared:  0.9237

F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

也可以使用如下代碼直接讀取結果:

summary(sol.lm)$coefficients[,4]

(Intercept)         cost

2.907896e-022.843305e-08

(2) F檢驗

與T檢驗不同,F檢驗用於在整體上檢驗模型參數是否為0,並計算等於0的概率。

summary(sol.lm)

Call:

lm(formula= sales ~ cost, data = data)

 

Residuals:

    Min     1Q  Median      3Q    Max

-19.701  -3.566  1.430   4.873  14.281

 

Coefficients:

            Estimate Std. Error t valuePr(>|t|)   

(Intercept)  13.824      5.579  2.478   0.0291 * 

cost          48.597      3.862 12.584 2.84e-08 ***

---

Signif.codes:  0 『***』 0.001 『**』 0.01 『*』 0.05『.』 0.1 『 』 1

 

Residualstandard error: 9.106 on 12 degrees of freedom

MultipleR-squared:  0.9296,       Adjusted R-squared:  0.9237

F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

其值為2.843e-08,遠小於0.05,表示通過了F檢驗。

在summary(sol.lm)中只給出了樣本自由度\自變量自由度以及F值,可以使用如下代碼來直接讀取F檢驗的p-value值。

(f<-summary(sol.lm)$fstatistic[1])

(df1<-summary(sol.lm)$fstatistic[2])

(df2<-summary(sol.lm)$fstatistic[3])

pf(f,df1,df2,lower.tail=F)

       value

2.843305e-08

或者

1-pf(f,df1,df2)

       value

2.843305e-08

6. 模型誤差(殘差)

回歸模型sol.lm的誤差(殘差residuals),可用於體現樣本點模型預測值與實際數據的差異程度,可通過sol.lm$residuals直接讀取誤差數據。對已一個正確的回歸模型,其誤差要服從正態分布。

shapiro.test(sol.lm$residuals)

Shapiro-Wilknormality test

 

data:  sol.lm$residuals

W= 0.9669, p-value = 0.8329

說明殘差服從正態分布。

殘差的標準誤(Residual standard error)可以從整體上體現一個模型的誤差情況,它可以用於不同模型間性能的對比。

summary(sol.lm)

Call:

lm(formula= sales ~ cost, data = data)

 

Residuals:

    Min     1Q  Median      3Q    Max

-19.701  -3.566  1.430   4.873  14.281

 

Coefficients:

            Estimate Std. Error t valuePr(>|t|)   

(Intercept)  13.824      5.579  2.478   0.0291 * 

cost          48.597      3.862 12.584 2.84e-08 ***

---

Signif.codes:  0 『***』 0.001 『**』 0.01 『*』 0.05『.』 0.1 『 』 1

 

Residual standarderror: 9.106 on 12 degrees of freedom

MultipleR-squared:  0.9296,       Adjusted R-squared:  0.9237

F-statistic:158.4 on 1 and 12 DF,  p-value: 2.843e-08

也可以使用summary(sol.lm)$sigma直接讀取。

7. 預測

在R語言中,使用predict函數可以方便地計算預測值和取值範圍。

下面的代碼返回原有14個樣本的預測值數據。

predict(sol.lm)

     1        2         3         4         5        6         7         8         9        10        11        12        13

101.29856  72.14029 33.26259  38.12230 135.31655135.31655  86.71942  72.14029 91.57914  62.42086  86.71942 47.84173  62.42086

       14

 52.70144

 

相關焦點

  • 一元線性回歸顯著性檢驗專題及常見問題 - CSDN
    一、σ2 的估計  因為假設檢驗以及構造與回歸模型有關的區間估計都需要σ2的估計量,所以先對σ2作估計。由回歸模型殘差算得,稱σ2的估計值是模型依賴的。  3.相關係數的顯著性檢驗  因為一元線性回歸方程討論的是變量 x 與變量 y 之間的線性關係,所以變量 x 與 y 之間的相關係數來檢驗回歸方程的顯著性。用相關係數來反應 x 與 y 的線性關係的密切程度。
  • t檢驗回歸方程專題及常見問題 - CSDN
    一、σ2 的估計  因為假設檢驗以及構造與回歸模型有關的區間估計都需要σ2的估計量,所以先對σ2作估計。由回歸模型殘差算得,稱σ2的估計值是模型依賴的。  3.相關係數的顯著性檢驗  因為一元線性回歸方程討論的是變量 x 與變量 y 之間的線性關係,所以變量 x 與 y 之間的相關係數來檢驗回歸方程的顯著性。用相關係數來反應 x 與 y 的線性關係的密切程度。
  • r語言 多元回歸模型_r語言多元回歸模型殘差分析 - CSDN
    1、多元線性回歸模型1.1多元回歸模型與多元回歸方程設因變量為y,k個自變量分別為,描述因變量y如何依賴於自變量和誤差項ε的方程稱為多元回歸模型。其一般形式可表示為:式中,為模型的參數,ε為隨機誤差項。
  • 的方法 線性回歸方程檢驗專題及常見問題 - CSDN
    相關係數的檢驗當已求得r值時,這個r值是真正刻畫了兩個變量之間的線性關係呢,還是僅僅由於樣本的偶然相關而引起的?僅憑相關係數的大小,不能直接說明變量之間是否存在線性相關,通過對r的檢驗,確定樣本是否抽自一個總體相關係數為0的總體,可以解答這個問題。
  • 回歸模型eviews專題及常見問題 - CSDN
    一、Threshold Regression Estimation閾值回歸模型描述了一種簡單的非線性回歸模型。TR規範很受歡迎,因為它們很容易。非常流行的閾值自回歸(TAR)和自激勵閾值自回歸(SETAR)(Hansen 1999, 2011;波特2003)。在功能強大的特性中,Eviews有選擇最佳閾值TR模型選擇工具。能夠從候選列表中,並且能夠指定兩種狀態的變化和非變化的變量。例如,您可以輕鬆地指定兩種模式的門限模型並允許EViews 估計最優變量和參數、閾值、係數和協方差。並對變化和回歸參數的估計。
  • spss多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸,主要是研究一個因變量與多個自變量之間的相關關係,跟一元回歸原理差不多,區別在於影響因素(自變量)更多些而已,例如:一元線性回歸方程 為: 代表隨機誤差, 其中隨機誤差分為:可解釋的誤差 和 不可解釋的誤差,隨機誤差必須滿足以下四個條件,多元線性方程才有意義(一元線性方程也一樣)1:服成正太分布,即指:隨機誤差
  • python一元線性回歸分析專題及常見問題 - CSDN
    python多重線性回歸分析多重線性回歸分析定義多重線性回歸模型:Mulitiple Linear Regression多元線性回歸模型:Multivariate,建立線性回歸模型#多重線性回歸#數據準備import matplotlibimport matplotlib.pyplot as pltimport pandas as pddf=pd.read_csv('e:/python/out/corr.csv',encoding='utf8')#
  • 值 多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸模型通常用來研究一個應變量依賴多個自變量的變化關係,如果二者的以來關係可以用線性形式來刻畫,則可以建立多元線性模型來進行分析。1.模型簡介1.1模型的結構多元線性回歸模型通常用來描述變量y和x之間的隨機線性關係,即:
  • R語言arma模型診斷_arma模型實現模型r語言 - CSDN
    運行Box.test(r,type="Ljung-Box",lag=6,fitdf=1)後,顯示的結果:Box.test(r,type="Ljung-Box",lag=6,fitdf=1)        Box-Ljung testdata:  r
  • f t 線性回歸專題及常見問題 - CSDN
    1、標準化對於多元線性回歸需要對各個自變量進行標準化,排除單位的影響。標準化方法:即將原始數據減去相應變量的均數後再除以該變量的標準差,而標準化得到的回歸方程稱為標準化回歸方程,相應得回歸係數為標準化回歸係數。
  • 多元線性回歸matlab專題及常見問題 - CSDN
    %多元線性回歸求解clearclcx=[120731808012512581.190133.02731808012512581.190129.63731808012512581.190158.77731808012512581.190145.32731808012512581.190
  • 線性回歸假設檢驗專題及常見問題 - CSDN
    第四步 確定模型形式和參數估計第五步 評估模型效果對於回歸問題,常用的模型評估指標有兩個:均方差(MSE):預測值與真實值的平均差距。L指的是上面定義的損失函數。所以最終的參數估計公式也就變成了:這就與前面機器學習裡面的 線性回歸模型(最小二乘法OLS)的參數估計公式相同。在之前機器學習的討論中,我們知道 只要定義一種不同的損失函數,就有一種新的線性回歸模型。那麼為什麼我們通常使用的就是 最小二乘法(OLS)線性回歸模型呢?
  • spss 非線性回歸專題及常見問題 - CSDN
    各位SPSS學堂粉絲大家好,上次我們簡要給大家梳理了一篇有關非線性關係的文章,現在我們就關於此模型的數據如何用SPSS操作和結果分析進行詳細介紹,前面的描述性統計與相關分析等我們之前的文章中都有提到,這裡我們就不再示範,我們直接給大家示範假設檢驗部分的數據分析。
  • f p 線性回歸專題及常見問題 - CSDN
    對於一個樣本\(x_i\),它的輸出值是其特徵的線性組合:\[\begin{equation}f(x_i) = \sum_{m=1}^{p}w_m x_{im}+w_0={w}^T{x_i}\end{equation}\]線性回歸的目標是用預測結果儘可能地擬合目標label,用最常見的Least square作為loss function:\[\begin{equation}
  • 一元回歸t檢驗與f檢驗_多元回歸模型的r檢驗f檢驗與t檢驗 - CSDN
    若求解回歸方程.分別代入x1,x2,…xk的數值,預測y的值。第二,「因子分析」。因子分析是根據回歸分析結果,得出各個自變量對目標變量產生的影響,因此,需要求出各個自變量的影響程度。 希望初學者在閱讀接下來的文章之前,首先學習一元回歸分析、相關分析、多元回歸分析、數量化理論I等知識。
  • t值 線性回歸專題及常見問題 - CSDN
    線性回歸 用線性回歸找到最佳擬合直線回歸的目的是預測數值型數據,根據輸入寫出一個目標值的計算公式,這個公式就是回歸方程(regression equation),變量前的係數(比如一元一次方程)稱為回歸係數(regression weights)。
  • r語言的p值檢驗 - CSDN
    醫學統計與R語言:對數正態分布與卡方分布醫學統計與R語言:qvalue醫學統計與R語言:Meta 回歸作圖(Meta regression Plot)醫學統計與R語言:aggregate.plot了解一下醫學統計與R語言:有序Probit回歸(Ordered Probit Model)醫學統計與R語言:Probit回歸模型及邊際效應
  • R語言——交叉驗證法計算線性回歸模型擬合優度的第三種R方
    本來打算這周繼續更新一篇LaTex的小短文,但是貌似我已經很久沒有寫R語言相關的東西了。想來想去,今天就寫一篇和R語言有關的,畢竟不能忘記初心呀!凡是學過計量的同學,哪怕只記得一點點皮毛,對於R方和調整R方也應該是再熟悉不過了。R方和調整R方是判斷回歸模型擬合度的最為方便簡單的指標,一般來說,數值越大代表模型的擬合度越好。
  • r中回歸結果怎麼判定模型好壞_lasso回歸 模型好壞 - CSDN
    模型中不同形式的m(X)會幻化為不同的模型體系,一般可以將模型分為兩大類:m(X)可以幻化為數學公式,即公式模型,一般比較成熟的都是公式模型,例如回歸模型的理論與底蘊就比較完善,模型的假定都是可以進行檢驗的;
  • r語言 動態面板模型 - CSDN
    面板數據舉例: 模型說明及分析步驟1、首先確定解釋變量和因變量; 2、R語言操作數據格式,部分截圖如下,這裡以(tseries)library(xts)library(mice)data<-read.csv("F://分類別//rankdata.csv",header=T,as.is=T)2、單位根檢驗:數據平穩性 為避免偽回歸