t值 線性回歸專題及常見問題 - CSDN

2021-01-07 CSDN技術社區

線性回歸
用線性回歸找到最佳擬合直線

回歸的目的是預測數值型數據,根據輸入寫出一個目標值的計算公式,這個公式就是回歸方程(regression equation),變量前的係數(比如一元一次方程)稱為回歸係數(regression weights)。求這些回歸係數的過程就是回歸。

假設輸入數據存放在矩陣X 中,回歸係數存放在向量w 中,那麼對於數據X 1  的預測結果可以用Y 1 =X T 1 w 得出。我們需要找到使誤差最小的w ,但是如果使用誤差之間的累加的話,那么正負誤差將會抵消,起不到效果,所以採用平方誤差。如下:

∑ i=1 n (y i −x T i w) 2  

用矩陣表示:(Y−Xw) T (Y−Xw) 。對W 求導得到X T (Y−Xw) ,令其等於零得到w 的最佳估計:

w ^ =(X T X) −1 X T y 

首先我們導入數據,代碼如下:

from numpy import *def loadDataSet(fileName): numFeat = len(open(fileName).readline().split('\t'))-1 dataMat = []; labelMat = [] fr = open(fileName) for line in fr.readlines(): lineArr = [] curLine = line.strip().split('\t') for i in range(numFeat): lineArr.append(float(curLine[i])) dataMat.append(lineArr) labelMat.append(float(curLine[-1])) return dataMat, labelMat

這部分數據是由tap分隔,並且最後一個值是目標值。接下來計算回歸係數:

def standRegres(xArr, yArr): xMat = mat(xArr); yMat = mat(yArr).T xTx = xMat.T*xMat if linalg.det(xTx) == 0.0: print "This matrix is singular, cannot do inverse" return ws = xTx.I * (xMat.T*yMat) return ws

該函數首先讀入x 和y 數組,然後將它們轉換成矩陣,之後根據公式計算平方誤差,注意,需要對X T X 求逆,此時需要判斷它的行列式是否為0,行列式等於0的矩陣無法求逆,可以直接使用linalg.det() 來計算行列式。好了,我們來看看效果,首先讀入數據:

xArr,yArr=loadDataSet('ex0.txt')

我們先看看前兩條數據:

print xArr[0:2][[1.0, 0.067732], [1.0, 0.42781]]

第一個值總是等於1.0,也就是x 0  ,假定偏移量是一個常數,第二個值是x 1  。
現在看看計算回歸係數函數效果:

ws = standRegres(xArr,yArr) print ws[[ 3.00774324] [ 1.69532264]]

現在得到了回歸係數,那麼我們可以通過回歸方程進行預測yHat:

xMat = mat(xArr)yMat = mat(yArr)yHat = xMat*ws

為方便觀察,我們畫出數據集散點圖:

import matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(111)ax.scatter(xMat[:,1].flatten().A[0], yMat.T[:,0].flatten().A[0])

現在繪製最佳擬合直線,那麼需要畫出預測值yHat,如果直線上數據點次序混亂,繪圖時將會出現問題,所以要將點按照升序排序:

xCopy = xMat.copy()xCopy.sort(0)yHat=xCopy*wsax.plot(xCopy[:,1], yHat)plt.show()

我們來看看效果:

最佳擬合直線方法將數據視為直線進行建模,但圖中的數據集似乎還有更好的擬合方式。

局部加權線性回歸

線性回歸可能出現欠擬合的現象,如上圖所示,因為它求的是具有最小均方誤差的無偏差估計。所以有些方法允許在估計中引入一些偏差,從而降低預測的均方誤差。其中一個方法就是使用局部加權線性回歸(Locally Weighted Linear Regression,LWLR),我們給待測點附近的每個點賦予一定的權重,是用此方法解出的回歸係數如下:

w ^ =(X T WX) −1 X T Wy 

其中W 是一個矩陣,用來給每個數據點賦予權重。

LWLR使用「核」來對附近的點賦予更高的權重,核的類型可以自由選擇,最常用的核就是高斯核,高斯核對應的權重如下:

w(i,i)=exp(|x i −x|−2k 2  ) 

下面來編寫局部加權線性回歸:

def lwlr(testPoint, xArr, yArr, k = 1.0): xMat = mat(xArr); yMat = mat(yArr).T m = shape(xMat)[0] weights = mat(eye((m))) for j in range(m): diffMat = testPoint - xMat[j,:] weights[j,j] = exp(diffMat*diffMat.T/(-2.0*k**2)) xTx = xMat.T * (weights * xMat) if linalg.det(xTx) == 0: print "This matrix is singular, cannot do inverse" return ws = xTx.I * (xMat.T * (weights * yMat)) return testPoint * wsdef lwlrTest(testArr, xArr, yArr, k=1.0): m = shape(testArr)[0] yHat = zeros(m) for i in range(m): yHat[i] = lwlr(testArr[i],xArr,yArr,k) return yHat

lwlr()函數得到的是單點的估計,為得到所有點的估計,可以調用lwlrTest()函數。

yHat = lwlrTest(xArr,xArr,yArr,1.0)

下面繪出估計值和原始值,看看yHat的擬合效果。需要將數據點按序排列。

xMat = mat(xArr)srtInd = xMat[:,1].argsort(0)xSort = xMat[srtInd][:,0,:]

然後使用Matplotlib繪圖:

fig = plt.figure() ax = fig.add_subplot(111) ax.plot(xSort[:,1],yHat[srtInd]) ax.scatter(xMat[:,1].flatten().A[0], mat(yArr).T.flatten().A[0], s = 2, c = 'red') plt.show()

當k=1.0時,權重很大,相當於將所有數據視為等權重,得出的最佳擬合直線與標準線性回歸一致:

當使用k=0.01時:

yHat = lwlrTest(xArr,xArr,yArr,0.01)

結果如下:

當使用k=0.003時:

yHat = lwlrTest(xArr,xArr,yArr,0.003)

結果如下:

由上三種結果可以看出,在k=1.0時,得出的擬合曲線欠擬合,k=0.01時,曲線擬合效果不錯,而k=0.003時,又有些過擬合。

相關焦點

  • f t 線性回歸專題及常見問題 - CSDN
    1、標準化對於多元線性回歸需要對各個自變量進行標準化,排除單位的影響。標準化方法:即將原始數據減去相應變量的均數後再除以該變量的標準差,而標準化得到的回歸方程稱為標準化回歸方程,相應得回歸係數為標準化回歸係數。
  • 多元線性回歸t檢驗專題及常見問題 - CSDN
    多元線性回歸模型通常用來研究一個應變量依賴多個自變量的變化關係,如果二者的以來關係可以用線性形式來刻畫,則可以建立多元線性模型來進行分析。1.t檢驗t檢驗是對單個變量係數的顯著性檢驗,一般看p值; 如果p值小於0.05表示該自變量對因變量解釋性很強。
  • spss 方法 線性回歸專題及常見問題 - CSDN
    本文收集整理關於spss多元線性回歸結果解讀的相關議題,使用內容導航快速到達。內容導航:Q1:請高手幫忙分析下SPSS的多元線性回歸結果吧~急啊~~~你的回歸方法是直接進入法擬合優度R方等於0.678,表示自變量可以解釋因變量的67.8%變化,說明擬合優度還可以。
  • spss多元線性回歸專題及常見問題 - CSDN
    本文收集整理關於spss多元線性回歸結果解讀的相關議題,使用內容導航快速到達。內容導航:Q1:請高手幫忙分析下SPSS的多元線性回歸結果吧~急啊~~~你的回歸方法是直接進入法擬合優度R方等於0.678,表示自變量可以解釋因變量的67.8%變化,說明擬合優度還可以。
  • t檢驗回歸方程專題及常見問題 - CSDN
    因為σ2取決於殘差平方和, 所以任何對模型誤差假設的違背或對模型形式的誤設都可能嚴重破壞σ2的估計值的實用性。因為由回歸模型殘差算得,稱σ2的估計值是模型依賴的。  4.樣本決定係數  由公式(10)可知,越大,線性回歸越好,所以定義樣本決定係數r2: 回歸平方和與總離差平方和之比。
  • 的方法 線性回歸方程檢驗專題及常見問題 - CSDN
    回歸方程建立及回歸參數的區間估計,但是它們都是建立在假定因變量和自變量線性相關的基礎上。在總變差中,一部分變差可以用設定的回歸方程解釋,稱之為回歸變差;另一部分變差是回歸方程不能解釋的,稱為剩餘變差,它們之間有下面等式:如果在總變差Y中,回歸變差所佔的比例越大,則說明Y值隨X值的變化越顯著,或者說X解釋Y的能力越強。反之,回歸變差在總變差中所佔比例越小,則說明Y值隨X值的變化越不顯著,或者說X解釋Y的能力越差。
  • 值 多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸模型通常用來研究一個應變量依賴多個自變量的變化關係,如果二者的以來關係可以用線性形式來刻畫,則可以建立多元線性模型來進行分析。1.模型簡介1.1模型的結構多元線性回歸模型通常用來描述變量y和x之間的隨機線性關係,即:
  • 一元線性回歸顯著性檢驗專題及常見問題 - CSDN
    3.相關係數的顯著性檢驗  因為一元線性回歸方程討論的是變量 x 與變量 y 之間的線性關係,所以變量 x 與 y 之間的相關係數來檢驗回歸方程的顯著性。用相關係數來反應 x 與 y 的線性關係的密切程度。
  • 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值的含義_線性回歸 y截距p值的計算 - CSDN
    線性回歸模型的基本特性就是:模型是參數的線性函數。最簡單的線性回歸模型當然是模型是參數的線性函數的同時,也是輸入變量的線性函數,或者叫做線性組合。一般線性回歸對於一個一般的線性模型而言,其目標就是要建立輸入變量和輸出變量之間的回歸模型。該模型是既是參數的線性組合,同時也是輸入變量的線性組合。
  • f值 mse p值 ssr 線性回歸 - CSDN
    回歸分析--多元回歸介紹一下多元回歸分析中的統計量總觀測值 總自變量 自由度:回歸自由度 ,殘差自由度  SST總平方和                  SSR回歸平方和
  • spss多元線性回歸模型專題及常見問題 - CSDN
    多元線性回歸,主要是研究一個因變量與多個自變量之間的相關關係,跟一元回歸原理差不多,區別在於影響因素(自變量)更多些而已,例如:一元線性回歸方程 為:2:無偏性假設,即指:期望值為03:同共方差性假設,即指,所有的  隨機誤差變量方差都相等4:獨立性假設,即指:所有的隨機誤差變量都相互獨立,可以用協方差解釋。   今天跟大家一起討論一下,SPSS---多元線性回歸的具體操作過程,下面以教程教程數據為例,分析汽車特徵與汽車銷售量之間的關係。
  • 線性回歸假設檢驗專題及常見問題 - CSDN
    帶「帽子」的變量代表預測值。不帶的表示觀測值。由於以上兩點原因,所以採用右邊的函數作為損失函數。實際上使用左面的函數定義損失函數也能得到一個線性模型,只是並不是我們常說的線性回歸模型而已。所以:損失函數是機器學習模型的核心。(即使相同的模型形式,不同的損失函數對應著不同模型的效果)。
  • 回歸分析t檢驗公式_線性回歸t檢驗公式 - CSDN
    為了在公式中體現樣本個數的n的影響,所以我們讓分母的s,除以根號n,從而減小分母值,最終使t值增大,來體現樣本n的影響。2.4、t分布   以上我們求出了t值,那麼如何知道t值對應的p值?
  • spss線性回歸自變量因變量專題及常見問題 - CSDN
    轉載自公眾號:青年智囊SPSS多元線性回歸在回歸分析中,如果有兩個或兩個以上的自變量,就稱為多元回歸。事實上,一種現象常常是與多個因素相聯繫的,由多個自變量的最優組合共同來預測或估計因變量,比只用一個自變量進行預測或估計更有效,更符合實際,因此多元線性回歸被廣泛運用。今天大家一起來學習吧!
  • 線性回歸的統計假設 - CSDN
    在用多元線性回歸模型進行統計推斷之前,我們需要知道該模型的基礎假設。假設我們有n個因變量Y及自變量X1,X2,...,Xk的值,我們想推斷多元回歸方程Yi= b0 + b1X1i + b2X2i + ... + bkXki +εi。
  • r語言一元回歸模型專題及常見問題 - CSDN
    一元線性回歸分析首先介紹回歸分析中最基礎的情況:一元線性回歸分析。它規定模型f函數只能是y=k*x+b的形式,即只使用一個變量x(故稱為一元)的線性形式來預測目標變量y。6.1.1引例利用某網站歷次促銷活動中促銷讓利費用和銷售金額的數據(單位是十萬元),將使用該數據集來說明線性回歸分析的應用。
  • python一元線性回歸分析專題及常見問題 - CSDN
    python多重線性回歸分析多重線性回歸分析定義多重線性回歸模型:MulitipleLinear Regression多元線性回歸模型:Multivariate Linear Regression數據準備#多重線性回歸#數據準備import pandas as pddf=pd.read_csv('e:/python/out/corr.csv',encoding='utf8')
  • python 顯著性水平專題及常見問題 - CSDN
    '''Define A Basic Linear Model列印summary時發現有很多關於模型的信息,為了弄清楚這些統計指標,我們需要仔細研究一下標準的線性回歸模型,下面模型中的ei是預測值和真實值的差,我們默認模型的誤差是正態分布的,均值為0.
  • 多元線性回歸matlab專題及常見問題 - CSDN
    %多元線性回歸求解clearclcx=[120731808012512581.190133.02731808012512581.190129.63731808012512581.190158.77731808012512581.190145.32731808012512581.190