線性相關:主要采用皮爾遜相關系數來度量連續變量之間的線性相關強度;
創新互聯建站是專業的南岸網站建設公司,南岸接單;提供網站設計、網站制作,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行南岸網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
線性相關系數|r| 相關程度
0=|r|0.3 低度相關
0.3=|r|0.8 中度相關
0.8=|r|1 高度相關
1 函數
相關分析函數:
DataFrame.corr()
Series.corr(other)
說明:
如果由數據框調用corr方法,那么將會計算每個列兩兩之間的相似度
如果由序列調用corr方法,那么只是計算該序列與傳入序列之間的相關度
返回值:
dataFrame調用:返回DataFrame
Series調用: 返回一個數值型,大小為相關度
2 案例
import pandas
data=pandas.read_csv('C:\\Users\\Desktop\\test.csv')
print(data.corr())
#由數據框調用corr方法,將會計算每個列兩兩之間的相似度,返回的是一個矩形
print(data['人口'].corr(data['文盲率']))
#由某一列調用corr方法,只是計算該序列與傳入序列(本例中的'文盲率')之間的相關度
print(data['超市購物率','網上購物率','文盲率','人口']).corr()
參考文獻:
1. python 皮爾森相關系數
2. 統計學之三大相關性系數(pearson、spearman、kendall)
皮爾森系數
重點關注第一個等號后面的公式,最后面的是推導計算,暫時不用管它們。看到沒有,兩個變量(X, Y)的皮爾森相關性系數(ρX,Y)等于它們之間的協方差cov(X,Y)除以它們各自標準差的乘積(σX, σY)。
公式的分母是變量的標準差,這就意味著計算皮爾森相關性系數時,變量的標準差不能為0(分母不能為0),也就是說你的兩個變量中任何一個的值不能都是相同的。如果沒有變化,用皮爾森相關系數是沒辦法算出這個變量與另一個變量之間是不是有相關性的。
皮爾森相關系數(Pearson correlation coefficient)也稱皮爾森積矩相關系數(Pearson product-moment correlation coefficient) ,是一種線性相關系數。皮爾森相關系數是用來反映兩個變量線性相關程度的統計量。相關系數用r表示,其中n為樣本量,分別為兩個變量的觀測值和均值。r描述的是兩個變量間線性相關強弱的程度。r的絕對值越大表明相關性越強。
簡單的相關系數的分類
0.8-1.0 極強相關
0.6-0.8 強相關
0.4-0.6 中等程度相關
0.2-0.4 弱相關
0.0-0.2 極弱相關或無相關
r描述的是兩個變量間線性相關強弱的程度。r的取值在-1與+1之間,若r0,表明兩個變量是正相關,即一個變量的值越大,另一個變量的值也會越大;若r0,表明兩個變量是負相關,即一個變量的值越大另一個變量的值反而會越小。r 的絕對值越大表明相關性越強,要注意的是這里并不存在因果關系。
斯皮爾曼相關性系數,通常也叫斯皮爾曼秩相關系數。“秩”,可以理解成就是一種順序或者排序,那么它就是根據原始數據的排序位置進行求解,這種表征形式就沒有了求皮爾森相關性系數時那些限制。下面來看一下它的計算公式:
計算過程就是:首先對兩個變量(X, Y)的數據進行排序,然后記下排序以后的位置(X’, Y’),(X’, Y’)的值就稱為秩次,秩次的差值就是上面公式中的di,n就是變量中數據的個數,最后帶入公式就可求解結果
帶入公式,求得斯皮爾曼相關性系數:ρs= 1-6 (1+1+1+9)/6 35=0.657
而且,即便在變量值沒有變化的情況下,也不會出現像皮爾森系數那樣分母為0而無法計算的情況。另外,即使出現異常值,由于異常值的秩次通常不會有明顯的變化(比如過大或者過小,那要么排第一,要么排最后),所以對斯皮爾曼相關性系數的影響也非常小!
由于斯皮爾曼相關性系數沒有那些數據條件要求,適用的范圍就廣多了。
肯德爾相關性系數,又稱肯德爾秩相關系數,它也是一種秩相關系數,不過它所計算的對象是分類變量。
分類變量可以理解成有類別的變量,可以分為
無序的,比如性別(男、女)、血型(A、B、O、AB);
有序的,比如肥胖等級(重度肥胖,中度肥胖、輕度肥胖、不肥胖)。
通常需要求相關性系數的都是有序分類變量。
舉個例子。比如評委對選手的評分(優、中、差等),我們想看兩個(或者多個)評委對幾位選手的評價標準是否一致;或者醫院的尿糖化驗報告,想檢驗各個醫院對尿糖的化驗結果是否一致,這時候就可以使用肯德爾相關性系數進行衡量。
pandas.DataFrame.corr()
DataFrame.corr(method='pearson', min_periods=1)[source]
Compute pairwise correlation of columns, excluding NA/null values
Parameters:
method : {‘pearson’, ‘kendall’, ‘spearman’}
pearson : standard correlation coefficient
kendall : Kendall Tau correlation coefficient
spearman : Spearman rank correlation
min_periods : int, optional
Minimum number of observations required per pair of columns to have a valid result. Currently only available for pearson and spearman correlation
Returns:
y : DataFrame
numpy.corrcoef(x,y = None,rowvar = True,bias = class'numpy._globals._NoValue',ddof = class'numpy._globals._NoValue' )
返回Pearson乘積矩相關系數。
cov有關更多詳細信息,請參閱文檔。相關系數矩陣R和協方差矩陣C之間的關系為
R的值在-1和1之間(含)。
參數:
x:array_like
包含多個變量和觀察值的1維或2維數組。x的每一行代表一個變量,每一列都是對所有這些變量的單獨觀察。另請參閱下面的rowvar。
y:array_like,可選
一組額外的變量和觀察。y的形狀與x相同。
rowvar:布爾,可選
如果rowvar為True(默認),則每行表示一個變量,并在列中有觀察值。否則,該關系將被轉置:每列表示一個變量,而行包含觀察值。
bias : _NoValue, optional Has no effect, do not use. Deprecated since version 1.10.0.
ddof : _NoValue, optional Has no effect, do not use. Deprecated since version 1.10.0.
返回:
R:ndarray 變量的相關系數矩陣。
有些Python小白對numpy中的常見函數不太了解,今天小編就整理出來分享給大家。
Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似于矩陣的表示形式,不過numpy為我們提供了更多的函數。
數組常用函數
1.where()按條件返回數組的索引值
2.take(a,index)從數組a中按照索引index取值
3.linspace(a,b,N)返回一個在(a,b)范圍內均勻分布的數組,元素個數為N個
4.a.fill()將數組的所有元素以指定的值填充
5.diff(a)返回數組a相鄰元素的差值構成的數組
6.sign(a)返回數組a的每個元素的正負符號
7.piecewise(a,[condlist],[funclist])數組a根據布爾型條件condlist返回對應元素結果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改變數組維度
a.ravel(),a.flatten():將數組a展平成一維數組
a.shape=(m,n),a.reshape(m,n):將數組a轉換成m*n維數組
a.transpose,a.T轉置數組a
數組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數組a,b沿豎直方向組合
3.row_stack((a,b))將數組a,b按行方向組合
4.column_stack((a,b))將數組a,b按列方向組合
數組分割
1.split(a,n,axis=0),vsplit(a,n)將數組a沿垂直方向分割成n個數組
2.split(a,n,axis=1),hsplit(a,n)將數組a沿水平方向分割成n個數組
數組修剪和壓縮
1.a.clip(m,n)設置數組a的范圍為(m,n),數組中大于n的元素設定為n,小于m的元素設定為m
2.a.compress()返回根據給定條件篩選后的數組
數組屬性
1.a.dtype數組a的數據類型
2.a.shape數組a的維度
3.a.ndim數組a的維數
4.a.size數組a所含元素的總個數
5.a.itemsize數組a的元素在內存中所占的字節數
6.a.nbytes整個數組a所占的內存空間7.a.astype(int)轉換a數組的類型為int型
數組計算
1.average(a,weights=v)對數組a以權重v進行加權平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數組a的均值、最大值、最小值、中位數、方差、標準差
3.a.prod()數組a的所有元素的乘積
4.a.cumprod()數組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數組a和b的協方差、相關系數
6.a.diagonal()查看矩陣a對角線上的元素7.a.trace()計算矩陣a的跡,即對角線元素之和
以上就是numpy中的常見函數。更多Python學習推薦:PyThon學習網教學中心。
numpy計算平均數 標準差 相關系數等基本知識
NumPy 是python 語言的一個第三方庫,其支持大量高維度數組與矩陣運算。此外,NumPy 也針對數組運算提供大量的數學函數。
#導入Numpy庫,并命名為np
import numpy as np
#創建一維數組
a = np.array([1, 2, 3])
# NumPy可以很方便地創建連續數組,比如我使用arange或linspace函數進行創建:
b = np.arange(1,5,1) // 返回一個有終點和起點、固定步長的排列,如起點是1,終點是4,步長為1,即【1,2,3,4】,
c = np.linspace(1,9,5) 返回一個有終點和起點、元素個數的的排列,如起點是1,終點是9,元素個數為5,即【1,3,5,7,9】
#通過NumPy可以自由地創建等差數組,同時也可以進行加、減、乘、除、求n次方和取余數。
求和:np.sum(a)
求取平均值:np.mean(a)
求取中位數:np.median(a)
求取加權平均數:np.average(a)
求取方差:var() np.var(a)
求取最小值:np.amin(a)
求取最大值:np.amax(a)
將兩個數相加:np.add(x1, x2)
將兩個數相減:np.subtract(x1, x2)
將兩個數相乘:np.multiply(x1, x2)
將兩個數相除:np.divide(x1, x2)
立方:np.power(x1, x2)
除余:np.remainder(x1, x2)
相關系數計算:np.corrcoef(a1, a2) (a1、a2都是矩陣)
scipy.stats.pearsonr(x, y)
x和y為相同長度的兩組數據
返回值 r, p-value
r是相關系數,取值-1~1. 表示線性相關程度
p-value越小,表示相關程度越顯著。按照文檔的說法“The p-values are not entirely reliable but are probably reasonable for datasets larger than 500 or so.”,p-value在500個樣本值以上有較高的可靠性
用polyfit(X,Y,1)得到的擬合函數只能得到a,b,但不能得到線性相關系數R^2。如想要得到其線性相關系數,可以用regress(y,X),其使用格式
[b,bint,r,rint,stats]
=
regress(y,X);
b——擬合系數
bint——b的置信區間
r——殘差值
rint——r的置信區間
stats——檢驗統計量,第一個就是相關系數
例如:
x=[。。。];y=[。。。]
X=[x
ones(n,1)];
%x的行數(列數)
[b,bint,r,rint,stats]
=
regress(y,X);
當前標題:python相關系數函數,python 自相關系數
當前路徑:http://www.2m8n56k.cn/article2/hcecoc.html
成都網站建設公司_創新互聯,為您提供網站排名、商城網站、企業建站、域名注冊、軟件開發、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯