1. 程式人生 > >Pearson相關係數公式的四種形式及Python程式碼實現

Pearson相關係數公式的四種形式及Python程式碼實現

原文:http://blog.csdn.net/zhangjunjie789/article/details/51737366

兩個變數之間的皮爾遜相關係數定義為兩個變數之間的協方差和標準差的商。

第一種形式(也就是定義的形式):

這裡寫圖片描述

第二種形式:

這裡寫圖片描述

第三種形式:

這裡寫圖片描述

第四種形式:

這裡寫圖片描述

(其中,E為數學期望或均值,N為資料的數目,E{ [X-E(X)] [Y-E(Y)]}稱為隨機變數X與Y的協方差,記為Cov(X,Y))

根據第四種形式的公式,使用python實現計算兩列資料的pearson相關係數的程式碼:

from math import sqrt

def multiply(a,b):
    #a,b兩個列表的資料一一對應相乘之後求和
sum_ab=0.0 for i in range(len(a)): temp=a[i]*b[i] sum_ab+=temp return sum_ab def cal_pearson(x,y): n=len(x) #求x_list、y_list元素之和 sum_x=sum(x) sum_y=sum(y) #求x_list、y_list元素乘積之和 sum_xy=multiply(x,y) #求x_list、y_list的平方和 sum_x2 = sum([pow(i,2) for
i in x]) sum_y2 = sum([pow(j,2) for j in y]) molecular=sum_xy-(float(sum_x)*float(sum_y)/n) #計算Pearson相關係數,molecular為分子,denominator為分母 denominator=sqrt((sum_x2-float(sum_x**2)/n)*(sum_y2-float(sum_y**2)/n)) return molecular/denominator f=open('filename','r') data={} lines=f.readlines() for
line in lines: #strip用於去掉換行符,split()通過指定分隔符對字串進行切片,返回子字串 cols=line.strip('\n').split(',') for i in range(len(cols)): #float將字串轉成浮點數 data.setdefault(i,[]).append(float(cols[i])) x=data[0] y=data[1] if __name__=='__main__': print ("x_list,y_list的Pearson相關係數為:"+str(cal_pearson(x,y)))

皮爾遜相關係數的適用範圍:

當兩個變數的標準差都不為零時,相關係數才有定義,皮爾遜相關係數適用於:
1. 兩個變數之間是線性關係,都是連續資料。
2. 兩個變數的總體是正態分佈,或接近正態的單峰分佈。
3. 兩個變數的觀測值是成對的,每對觀測值之間相互獨立。

相關推薦

Pearson相關係數公式形式Python程式碼實現

原文:http://blog.csdn.net/zhangjunjie789/article/details/51737366 兩個變數之間的皮爾遜相關係數定義為兩個變數之間的協方差和標準差的商。 第一種形式(也就是定義的形式): 第二種形式: 第三種形式: 第四種形

隨機森林的原理分析Python程式碼實現

轉載地址:https://blog.csdn.net/flying_sfeng/article/details/64133822/在講隨機森林前,我先講一下什麼是整合學習。整合學習通過構建並結合多個分類器來完成學習任務。整合學習通過將多個學習器進行結合,常可獲得比單一學習器更

【NLP】CNN文字分類原理python程式碼實現

CNN分類模型架構   python程式碼實現: #!/usr/bin/python # -*- coding: utf-8 -*- import tensorflow as tf class TCNNConfig(object): #class TCNNConfig(

關於高斯模糊的詳細介紹python程式碼實現

講的是Gaussian Blur,講的很詳細,值得仔細閱讀! python最常用的影象處理庫是PIL(PythonImaging Library),它內建了高斯模糊方法,簡單程式碼如下: import Image import ImageFilter im=Ima

PSNR-峰值信噪比(原理python程式碼實現)

PSNR的全稱為“Peak Signal-to-Noise Ratio”,直譯為中文就是峰值信噪比。 是一種衡量影象質量的指標。在很多領域都會需要這個指標,比如在超解析度重建影象的時候,PSNR就是很重要的指標了。 WIKI解釋 峰值信噪比(英語:Peak signal-to

雙鏈表python程式碼實現

引言 雙向連結串列比之單向連結串列,多數操作方法的實現都沒有什麼不同,如is_empty, len, traverse, search。這些方法都沒有涉及節點的變動,也就可通過繼承單向連結串列來實現即可。 不同之處一是在於節點實現的不同。因為增加了指向前

NLP-Pearson相關係數計算公式程式碼

隨便記錄一下。。。 計算公式 Pearson=∑ni=1xiyi−∑ni=1xi∑ni=1yin∑ni=1xi2−(∑2i=1xi)2n−−−−−−−−−−−−−−−−√∑ni=1yi2−(∑ni−1yi)2n−−−−−−−−−−−−−−−−√Pearson

平方Pearson相關係數(SPCC)相關公式的推導

1、PCC及SPCC的定義 最近推導了維納濾波的公式,其中最重要的是當然是最小平方誤差準則(MSE)。但是在很多實際應用中,參考訊號是不可知的,因此MSE準則不具有實際意義。為了解決這個問題,我們需要尋找另一個準則替代MSE成為新的代價函式。這就是皮爾遜相關係

Vue 封裝axios(請求)相關介紹(十三)

# Vue 封裝axios(四種請求)及相關介紹 #### 首先axios是基於promise的http庫 promise是什麼? 1、主要用於非同步計算 2、可以將非同步操作佇列化,按照期望的順序執行,返回符合預期的結果 3、可以在物件之間傳遞和操作promise,幫助我們處理佇列 ## 一.首先安裝a

Python編程系列---Python中裝飾器的幾形式萬能裝飾器

-s ont font 分析 spa def 結果 形式 one 根據函數是否傳參 是否有返回值 ,可以分析出裝飾器的四種形式: 形式一:無參無返回值 1 def outer(func): 2 def wrapper(): 3 print(

json字串轉json物件的方式對json字串的處理方式

1. 將json字串轉化為json物件 a. 方案一:jquery自帶的$.parseJSON函式 <script> var jsonstr="{\"id\":\"1\",\"name\":\"jack\"}"; var obj=$.parseJSON(jsonstr);

利用java批量求相關係數pearson相關係數)(一)

臨近期末複習統計學,沒複習完感覺自己十分憋屈,總想幹點別的什麼,敲個程式碼玩玩吧。 pearson相關係數的計算參考:https://blog.csdn.net/Anglebeat/article/details/40299273(這個參考地址的程式碼有一點錯誤) 我在這裡指出具體錯誤,他的te

Java:內部類的形式

內部類 成員內部類 區域性內部類 靜態內部類 匿名內部類 內部類可看做外部類的成員。外部類只能由public修飾或者預設包內訪問 而內部類卻可以用四種訪問控制符以及static修飾 成員內部類 解釋:除靜態常量外沒有靜態內容且宣告在

高併發快取處理之——快取穿透的幾形式解決方案

快取失效的幾種形式 1 快取穿透 快取穿透是指查詢一個一定不存在的資料,由於快取是不命中時被動寫的,並且出於容錯考慮,如果從儲存層查不到資料則不寫入快取,這將導致這個不存在的資料每次請求都要到儲存層去查詢,失去了快取的意義。在流量大時,可能DB就掛掉了,要是有人利用不存在

pearson相關係數演算法

#-*- coding: utf-8 -*- #計算兩兩指標間的相關係數矩陣 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns inputf

IP地址的幾形式轉換

根據TCP/IP協議,IP地址是以二進位制來表示,目前廣泛使用的IPv4(Internet Protocol version 4:網際協議版本4)中規定IP地址長度為32bit(位元位)(如:11000000101010000000000100000010),為了方便使用,人們將二進位制IP地址轉換為四個十

Python學習系列二十七】pearson相關係數計算

場景:計算訓練特徵和目標之間的相關係數,用於判斷是否加入訓練。 參考程式碼: # -*- coding: utf-8 -*- import pandas as pd import time from sklearn import tree import numpy as

javascript中判斷資料型別的方法typeof、instanceof、constructor、toString

在 ECMAScript 規範中,共定義了 6種資料型別,分為 基本型別 和 引用型別 兩大類,如下所示: 基本型別(簡單型別):String、Number、Boolean、Undefined、Null 。由於其佔據空間固定,是簡單的資料段,為了便於提升變數查

淺談c#委託的用法lambda匿名委託

c#委託是一個類,可以定義一種方法型別,將有這種型別的函式當做引數進行傳遞,即他是一個可以把方法作為引數的類。 這裡通過一個小功能分別說明一下c#委託(delegate、Action、Func、predicate)的用法。 如下圖所示: Form1窗體

利用Python計算資料的Pearson相關係數

步驟一:讀取資料 # _*_ coding: utf-8 _*_ import pandas as pd import numpy as np df = pd.read_csv("D:data1.csv",index_col='user_id') 步驟二:異常資料處理(如