最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python線性回歸實(shí)戰(zhàn)分析

 更新時(shí)間:2018年02月01日 11:22:32   投稿:laozhang  
這篇文章主要介紹了Python線性回歸實(shí)戰(zhàn)分析以及代碼講解,對(duì)此有興趣的朋友學(xué)習(xí)下吧。

一、線性回歸的理論

1)線性回歸的基本概念

線性回歸是一種有監(jiān)督的學(xué)習(xí)算法,它介紹的自變量的和因變量的之間的線性的相關(guān)關(guān)系,分為一元線性回歸和多元的線性回歸。一元線性回歸是一個(gè)自變量和一個(gè)因變量間的回歸,可以看成是多遠(yuǎn)線性回歸的特例。線性回歸可以用來(lái)預(yù)測(cè)和分類,從回歸方程可以看出自變量和因變量的相互影響關(guān)系。
線性回歸模型如下:

對(duì)于線性回歸的模型假定如下:
(1) 誤差項(xiàng)的均值為0,且誤差項(xiàng)與解釋變量之間線性無(wú)關(guān)

(2) 誤差項(xiàng)是獨(dú)立同分布的,即每個(gè)誤差項(xiàng)之間相互獨(dú)立且每個(gè)誤差項(xiàng)的方差是相等的。

(3) 解釋變量之間線性無(wú)關(guān)

(4) 正態(tài)性假設(shè),即誤差項(xiàng)是服從正態(tài)分布的

以上的假設(shè)是建立回歸模型的基本條件,所以對(duì)于回歸結(jié)果要進(jìn)行一一驗(yàn)證,如果不滿足假定,就要進(jìn)行相關(guān)的修正。

2) 模型的參數(shù)求解

(1)矩估計(jì)

一般是通過(guò)樣本矩來(lái)估計(jì)總體的參數(shù),常見(jiàn)是樣本的一階原點(diǎn)矩來(lái)估計(jì)總體的均值,二階中心矩來(lái)估計(jì)總體的方差。

(2)最小二乘估計(jì)

一般最小二乘估計(jì)是適用于因變量是連續(xù)型的變量,最常用的是普通最小二乘法( Ordinary Least Square,OLS),它的原理是所選擇的回歸模型應(yīng)該使所有觀察值的殘差平方和達(dá)到最小。預(yù)測(cè)值用 表示,對(duì)應(yīng)的實(shí)際值 ,殘差平方和 ,最小二乘估計(jì)是求得參數(shù)的值,使得L最小。對(duì)于線性回歸求得的參數(shù)值是唯一的。

(3)極大似然估計(jì)

極大似然估計(jì)是基于概率的思想,它要求樣本的概率分布是已知的,參數(shù)估計(jì)的值是使得大量樣本發(fā)生的概率最大,用似然函數(shù)來(lái)度量,似然函數(shù)是各個(gè)樣本的密度函數(shù)的乘積,為方便求解對(duì)其求對(duì)數(shù),加負(fù)號(hào)求解極小值,得到參數(shù)的估計(jì)結(jié)果。

3)模型的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):結(jié)果易于理解,計(jì)算上不復(fù)雜

缺點(diǎn):對(duì)于非線性的數(shù)據(jù)擬合不好

二、用Python實(shí)現(xiàn)線性回歸的小例子

數(shù)據(jù)來(lái)源于網(wǎng)絡(luò)爬蟲(chóng),武漢市商品房?jī)r(jià)格為因變量和幾個(gè)相關(guān)關(guān)鍵詞的百度指數(shù)的搜索量為自變量。

由于本文的自變量有98個(gè),首先進(jìn)行自變量的選擇,先是通過(guò)相關(guān)系數(shù)矩陣篩選掉不相關(guān)的變量,根據(jù)Pearson相關(guān)系數(shù)矩陣進(jìn)行變量的選取,一般選取相關(guān)系數(shù)的值大于0.3的變量進(jìn)行回歸分析,由于本文的變量較多,先進(jìn)行手動(dòng)篩選然后利用相關(guān)系數(shù)進(jìn)行選取,本文選取相關(guān)系數(shù)大于0.55的變量進(jìn)行回歸分析。

經(jīng)過(guò)相關(guān)系數(shù)的分析選取8個(gè)變量進(jìn)行下一步的分析,分析的Python代碼如下:

# -*- coding: utf-8 -*-
#### Required Packages
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import statsmodels.api as sm
data = pd.read_csv('Hdata.csv')
print data
dataset = np.array(data)
######相關(guān)性分析
X = dataset[:,1:98]
y = dataset[:,0]
cor = np.corrcoef(dataset,rowvar=0)[:,0]
######輸出相關(guān)矩陣的第一列
print cor
#######篩選后的數(shù)據(jù)讀取
data1 = pd.read_csv('H1data.csv')
dataset1 = np.array(data)
######篩選后的變量######
X1 = dataset1[:,1:8]
Y1 = dataset1[:,0]
est = sm.OLS(Y1,X1).fit()
print est.summary()

貼出線性回歸的結(jié)果如下:

OLS RegressionResults              
=======================================================================
Dep. Variable:           y  R-squared:            0.978
Model:              OLS  Adj. R-squared:         0.974
Method:         Least Squares F-statistic:          287.5
Date:        Sat, 08 Apr 2017  Prob (F-statistic):      9.35e-36
Time:            15:15:14  Log-Likelihood:        -442.82
No. Observations:         53  AIC:               899.6
Df Residuals:           46  BIC:               913.4
Df Model:              7                    
Covariance Type:      nonrobust                     
=======================================================================
         coef  std err     t   P>|t|   [95.0% Conf. Int.]
-----------------------------------------------------------------------
x1      -0.3691   0.494  -0.747   0.0459    -1.364   0.626
x2       0.3249   0.353   0.920   0.0362    -0.386   1.036
x3       1.0987   0.837   1.312   0.0196    -0.587   2.784
x4       0.7613   0.790   0.964   0.0340    -0.829   2.351
x5      -1.5766   1.099  -1.435   0.0158    -3.789   0.636
x6      -0.1572   1.077  -0.146   0.0885    -2.325   2.011
x7       3.2003   1.603   1.997   0.052    -0.026   6.427
=======================================================================
Omnibus:            0.413  Durbin-Watson:          1.748
Prob(Omnibus):         0.814  Jarque-Bera (JB):        0.100
Skew:              0.097  Prob(JB):            0.951
Kurtosis:            3.089  Cond. No.             95.5
=======================================================================

從回歸分析的結(jié)果可以看出來(lái),模型的擬合優(yōu)度R-squared=0.978,說(shuō)明模型的擬合效果很好,據(jù)其大小對(duì)擬合效果的優(yōu)劣性進(jìn)行判定。對(duì)模型整體的顯著性可以通過(guò)F統(tǒng)計(jì)量來(lái)看,結(jié)果顯示的F統(tǒng)計(jì)量對(duì)應(yīng)的P值顯著小于0.05(0.05是顯著性水平,也可以選取0.01),說(shuō)明模型整體是顯著的,它的顯著性說(shuō)明被解釋變量能不能由這些解釋變量進(jìn)行解釋,F(xiàn)檢驗(yàn)是對(duì)整體的檢驗(yàn),F(xiàn)檢驗(yàn)的通過(guò)不代表每一個(gè)解釋變量是顯著的。對(duì)每一個(gè)變量的顯著性要看t檢驗(yàn)統(tǒng)計(jì)量的值,t檢驗(yàn)統(tǒng)計(jì)量對(duì)應(yīng)的P值小于0.05(0.01或者0.1也行,具體看情況分析,一般選取0.05)視為是顯著的,從結(jié)果可以看出,X6和X7的變量的p是大于0.05的,也就是這兩個(gè)變量對(duì)被解釋變量的影響是不顯著的要剔除。但是如果你只是關(guān)心預(yù)測(cè)的問(wèn)題那么可以不剔除。但是如果有研究解釋變量對(duì)被解釋變量的影響的程度的,要做進(jìn)一步的研究。接下來(lái)看DW的值,DW的值為1.748,說(shuō)明模型不存在自相關(guān)性。看JB檢驗(yàn)統(tǒng)計(jì)量的值,JB檢驗(yàn)統(tǒng)計(jì)量是對(duì)正態(tài)性的假設(shè)進(jìn)行檢驗(yàn)的,JB的值對(duì)應(yīng)的p值為0.951顯著大于0.05,可以認(rèn)為模型滿足正態(tài)性的假設(shè)的。對(duì)于參數(shù)的實(shí)際意義本文就不做解釋了。

對(duì)于DW值判斷相關(guān)性的依據(jù)如下:

DW=0時(shí),殘差序列存在完全正自相關(guān),

DW=(0,2)時(shí),殘差序列存在正自相關(guān),

DW=2時(shí),殘差序列無(wú)自相關(guān),

DW=(2,4)時(shí),殘差序列存在負(fù)自相關(guān),

DW=4時(shí),殘差序列存在完全負(fù)自相關(guān)。

對(duì)于建立模型的一般步驟簡(jiǎn)單描述如下:

(1) 根據(jù)數(shù)據(jù)的表現(xiàn)形式選取合適的模型

(2) 對(duì)選取的模型選取適用的參數(shù)估計(jì)方法

(3) 對(duì)參數(shù)的結(jié)果進(jìn)行檢驗(yàn)

(4) 對(duì)結(jié)果進(jìn)行解釋

相關(guān)文章

  • 理解Python中函數(shù)的參數(shù)

    理解Python中函數(shù)的參數(shù)

    這篇文章主要介紹了Python中函數(shù)的參數(shù),掌握函數(shù)中的參數(shù)傳遞在任何一門(mén)語(yǔ)言的學(xué)習(xí)過(guò)程當(dāng)中都是基本功,需要的朋友可以參考下
    2015-04-04
  • Python 制作糗事百科爬蟲(chóng)實(shí)例

    Python 制作糗事百科爬蟲(chóng)實(shí)例

    本文是結(jié)合前面的三篇關(guān)于python制作爬蟲(chóng)的基礎(chǔ)文章,給大家分享的一份爬取糗事百科的小段子的源碼,有需要的小伙伴可以參考下
    2016-09-09
  • 詳解Python如何制作自動(dòng)發(fā)送微信的程序

    詳解Python如何制作自動(dòng)發(fā)送微信的程序

    這篇文章主要介紹了如何利用Python中的apscheduler和pyautogui模塊,制作一個(gè)自動(dòng)發(fā)送微信的程序。感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試
    2022-01-01
  • Python??inspect?模塊的簡(jiǎn)單使用及常用方法

    Python??inspect?模塊的簡(jiǎn)單使用及常用方法

    Python的inspect模塊是一個(gè)強(qiáng)大的內(nèi)省工具,允許開(kāi)發(fā)者檢查(inspect)活動(dòng)對(duì)象和源代碼,這篇文章主要介紹了Python?inspect?模塊的簡(jiǎn)單使用及常用方法,需要的朋友可以參考下
    2024-03-03
  • Python3 偽裝瀏覽器的方法示例

    Python3 偽裝瀏覽器的方法示例

    本篇文章主要介紹了Python3 偽裝瀏覽器的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • Python OpenCV基于霍夫圈變換算法檢測(cè)圖像中的圓形

    Python OpenCV基于霍夫圈變換算法檢測(cè)圖像中的圓形

    這篇文章主要介紹了通過(guò)霍夫圈變換算法檢測(cè)圖像中的圓形,文中用到的函數(shù)為cv2.HoughCircles(),該函數(shù)可以很好地檢測(cè)圓心。感興趣的小伙伴可以了解一下
    2021-12-12
  • Python中列表的常用操作詳解

    Python中列表的常用操作詳解

    這篇文章主要為大家詳細(xì)介紹了python字典的常用操作方法,主要內(nèi)容包含Python中列表(List)的詳解操作方法,包含創(chuàng)建、訪問(wèn)、更新、刪除、其它操作等,需要的朋友可以參考下
    2021-09-09
  • Java如何交換字符串中兩個(gè)位置的值

    Java如何交換字符串中兩個(gè)位置的值

    這篇文章主要介紹了Java如何交換字符串中兩個(gè)位置的值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python?pyqt5下拉多選框的實(shí)現(xiàn)示例

    Python?pyqt5下拉多選框的實(shí)現(xiàn)示例

    QComboBox是一個(gè)集按鈕和下拉選項(xiàng)于一體的控件,本文主要介紹了Python?pyqt5下拉多選框的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • Python3 json模塊之編碼解碼方法講解

    Python3 json模塊之編碼解碼方法講解

    這篇文章主要介紹了Python3 json模塊之編碼解碼方法講解,需要的朋友可以參考下
    2021-04-04

最新評(píng)論

响水县| 郯城县| 华亭县| 成武县| 霍城县| 卢湾区| 太和县| 龙海市| 金湖县| 长子县| 桓仁| 吉木萨尔县| 大悟县| 连州市| 青铜峡市| 乌拉特后旗| 株洲市| 汤原县| 吉隆县| 南丰县| 宁化县| 布尔津县| 顺平县| 县级市| 山东省| 沾益县| 当涂县| 巩留县| 余江县| 麻江县| 新巴尔虎右旗| 梨树县| 汕头市| 屏东县| 芜湖县| 吉首市| 鸡泽县| 盐城市| 济阳县| 保康县| 乐至县|