協方差:兩個變量總體誤差的期望。
創新互聯建站專注于企業營銷型網站、網站重做改版、當涂網站定制設計、自適應品牌網站建設、H5場景定制、商城網站建設、集團公司官網建設、外貿網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為當涂等各大城市提供網站開發制作服務。簡單的說就是度量Y和X之間關系的方向和強度。
X :預測變量
Y :響應變量
Y和X的協方差:[來度量各個維度偏離其均值的程度]
備注:[之所以除以n-1而不是除以n,是因為這樣能使我們以較小的樣本集更好的逼近總體的協方差,即統計上所謂的“無偏估計”。而方差則僅僅是標準差的平方]
如果結果為正值,則說明兩者是正相關的(從協方差可以引出“相關系數”的定義),
如果結果為負值就說明負相關的
如果為0,也是就是統計上說的“相互獨立”
為什么呢:
如果第1,3象限點位多,最終的和就是正,X增大Y增大
如果第2,4象限點位多,最終的和就是負,X增大Y減小
Cov(Y,X)會受到度量單位的影響
引入相關系數:
python使用以下公式進行計算[上面的公式不便于編程,需要多次掃描數據,但是微小的錯誤會被放大哦]:
#coding:utf-8 ''' Y和X的相關系數就是標準化后變量的協方差 ''' ''' __author__ = 'similarface' QQ:841196883@qq.com ''' from math import sqrt from pandas import * import pandas as pd import os,sys import matplotlib.pyplot as plt #安裝不了 就github下載源碼安裝 from sklearn import datasets, linear_model ''' 根據文件加載數據 ''' def loaddataInTab(filename): if os.path.isfile(filename): try: return pd.read_table(filename) except Exception,e: print(e.message) else: print("文件存在!") return None ''' 獲取Y,X的相關系數,即為:皮爾遜相關系數 ''' def pearson(rating1, rating2): ''' 皮爾遜相關參數 在統計學中,皮爾遜積矩相關系數 (英語:Pearson product-moment correlation coefficient, 又稱作 PPMCC或PCCs[1], 文章中常用r或Pearson's r表示) 用于度量兩個變量X和Y之間的相關(線性相關),其值介于-1與1之間。 在自然科學領域中,該系數廣泛用于度量兩個變量之間的相關程度。 0.8-1.0 極強相關 0.6-0.8 強相關 0.4-0.6 中等程度相關 0.2-0.4 弱相關 0.0-0.2 極弱相關或無相關 ''' sum_xy, sum_x, sum_y, sum_x2, sum_y2, n = 0, 0, 0, 0, 0, 0 for i in xrange(len(rating1)): n = n + 1 x = rating1[i] y = rating2[i] sum_xy += x * y sum_x += x sum_y += y sum_x2 += x ** 2 sum_y2 += y ** 2 if n == 0: return 0 fenmu = sqrt(sum_x2 - (sum_x ** 2) / n) * sqrt(sum_y2 - (sum_y ** 2) / n) if fenmu == 0: return 0 else: return (sum_xy - (sum_x * sum_y) / n) / fenmu data=loaddataInTab('./AnscombeQuartet') #x1,y1是線性相關的 diabetes_x1_test=data['X1'] diabetes_y1_test=data['Y1'] plt.scatter(diabetes_x1_test, diabetes_y1_test, color='black') print("黑色點的相關系數為:{}(皮爾遜相關參數)".format(pearson(diabetes_x1_test,diabetes_y1_test))) regr1 = linear_model.LinearRegression() diabetes_x1_train=diabetes_x1_test.as_matrix()[:, np.newaxis] diabetes_y1_train=diabetes_y1_test.as_matrix()[:, np.newaxis] regr1.fit(diabetes_x1_train, diabetes_y1_train) plt.plot(diabetes_x1_test.as_matrix()[:, np.newaxis], regr1.predict(diabetes_x1_test.as_matrix()[:, np.newaxis]), color='black',linewidth=6) #x2,y2是非線性 二次函數擬合 diabetes_x2_test=data['X2'] diabetes_y2_test=data['Y2'] plt.scatter(diabetes_x2_test, diabetes_y2_test, color='red') print("紅色點的相關系數為:{}(皮爾遜相關參數)".format(pearson(diabetes_x2_test,diabetes_y2_test))) regr2 = linear_model.LinearRegression() diabetes_x2_train=diabetes_x2_test.as_matrix()[:, np.newaxis] diabetes_y2_train=diabetes_y2_test.as_matrix()[:, np.newaxis] regr2.fit(diabetes_x2_train, diabetes_y2_train) plt.plot(diabetes_x2_test.as_matrix()[:, np.newaxis], regr2.predict(diabetes_x2_test.as_matrix()[:, np.newaxis]), color='red',linewidth=4) #x3,y3 數據對中出現了 孤立點 diabetes_x3_test=data['X3'] diabetes_y3_test=data['Y3'] plt.scatter(diabetes_x3_test, diabetes_y3_test, color='blue') print("藍色點的相關系數為:{}(皮爾遜相關參數)".format(pearson(diabetes_x3_test,diabetes_y3_test))) regr3 = linear_model.LinearRegression() diabetes_x3_train=diabetes_x3_test.as_matrix()[:, np.newaxis] diabetes_y3_train=diabetes_y3_test.as_matrix()[:, np.newaxis] regr3.fit(diabetes_x3_train, diabetes_y3_train) plt.plot(diabetes_x3_test.as_matrix()[:, np.newaxis], regr3.predict(diabetes_x3_test.as_matrix()[:, np.newaxis]), color='blue',linewidth=2) #x4,y4不適合線性擬合 極端值確立了直線 diabetes_x4_test=data['X4'] diabetes_y4_test=data['Y4'] plt.scatter(diabetes_x4_test, diabetes_y4_test, color='green') print("綠色點的相關系數為:{}(皮爾遜相關參數)".format(pearson(diabetes_x4_test,diabetes_y4_test))) regr4 = linear_model.LinearRegression() diabetes_x4_train=diabetes_x4_test.as_matrix()[:, np.newaxis] diabetes_y4_train=diabetes_y4_test.as_matrix()[:, np.newaxis] regr4.fit(diabetes_x4_train, diabetes_y4_train) plt.plot(diabetes_x4_test.as_matrix()[:, np.newaxis], regr4.predict(diabetes_x4_test.as_matrix()[:, np.newaxis]), color='green',linewidth=1) plt.xticks(()) plt.yticks(()) plt.show() ''' 把上面的4組數據去做線性回歸: 有圖可知都做出了,斜率和截距相等的擬合線性 4種X,Y的相關系數都很接近 在解釋相關系數之前,圖像點位的散點分布是很重要的 如果完全基于相關系數分析數據,將無法發現數據構造模式之間的差別 '''
參考數據:
1 另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前文章:簡單線性回歸-創新互聯
成都網站建設公司_創新互聯,為您提供虛擬主機、網站維護、外貿網站建設、建站公司、App設計、網站制作 聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯 猜你還喜歡下面的內容 ![]()
|