pandas 相關(guān)性和正態(tài)性分析的實(shí)踐
當(dāng)我們談?wù)撜龖B(tài)性(Normality)和相關(guān)性(Correlation)時(shí),我們實(shí)際上在嘗試?yán)斫鈹?shù)據(jù)的分布模式和不同變量之間的關(guān)系。讓我們先來(lái)看看這兩個(gè)數(shù)學(xué)概念:
正態(tài)性(Normality)
正態(tài)性指的是數(shù)據(jù)的分布模式是否符合正態(tài)分布(也稱為高斯分布)。正態(tài)分布是一種連續(xù)概率分布,具有以下特征:
- 對(duì)稱性:正態(tài)分布是關(guān)于其均值對(duì)稱的,也就是說(shuō),它的左半部分和右半部分是鏡像對(duì)稱的。
- 集中性:正態(tài)分布的數(shù)據(jù)集中在其均值周?chē)?,并且隨著距離均值的增加而逐漸減少。
- 確定性:正態(tài)分布由兩個(gè)參數(shù)完全確定,即均值(μ)和標(biāo)準(zhǔn)差(σ)。
正態(tài)性檢驗(yàn)通常用于判斷一個(gè)數(shù)據(jù)集是否來(lái)自正態(tài)分布。通常使用的方法包括觀察直方圖、Q-Q圖(Quantile-Quantile Plot)以及一些統(tǒng)計(jì)檢驗(yàn),比如Shapiro-Wilk檢驗(yàn)和Kolmogorov-Smirnov檢驗(yàn)。
示例代碼:
import pandas as pd
import numpy as np
from scipy.stats import shapiro
# 創(chuàng)建示例數(shù)據(jù)
data = np.random.normal(loc=0, scale=1, size=1000)
series = pd.Series(data)
# Shapiro-Wilk檢驗(yàn)
statistic, p_value = shapiro(series)
# 解釋檢驗(yàn)結(jié)果
if p_value > 0.05:
print("數(shù)據(jù)可能符合正態(tài)分布")
else:
print("數(shù)據(jù)不符合正態(tài)分布")
相關(guān)性(Correlation)
相關(guān)性描述的是兩個(gè)變量之間的關(guān)系程度。相關(guān)性的測(cè)量通常使用相關(guān)系數(shù)來(lái)完成,最常見(jiàn)的是皮爾遜相關(guān)系數(shù)。皮爾遜相關(guān)系數(shù)的取值范圍在-1到1之間:
- 當(dāng)相關(guān)系數(shù)為1時(shí),表示完全正相關(guān)。這意味著兩個(gè)變量的值以相同的比例增加或減少。
- 當(dāng)相關(guān)系數(shù)為-1時(shí),表示完全負(fù)相關(guān)。這意味著兩個(gè)變量的值以相反的方向變化。
- 當(dāng)相關(guān)系數(shù)接近于0時(shí),表示變量之間沒(méi)有線性關(guān)系。
需要注意的是,相關(guān)性并不意味著因果關(guān)系,即使兩個(gè)變量高度相關(guān),也不代表其中一個(gè)變量的變化導(dǎo)致了另一個(gè)變量的變化。
示例代碼:
import pandas as pd
# 創(chuàng)建示例數(shù)據(jù)
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1],
'C': [1, 1, 2, 2, 3]
}
df = pd.DataFrame(data)
# 計(jì)算相關(guān)系數(shù)
correlation_matrix = df.corr()
print("相關(guān)系數(shù)矩陣:")
print(correlation_matrix)
相關(guān)性和正態(tài)性綜合性示例:
import pandas as pd
import numpy as np
from scipy.stats import shapiro
from scipy.stats import pearsonr
# 創(chuàng)建示例數(shù)據(jù)集
data = {
'A': np.random.normal(loc=0, scale=1, size=1000),
'B': np.random.normal(loc=0, scale=1, size=1000),
'C': np.random.normal(loc=0, scale=1, size=1000)
}
df = pd.DataFrame(data)
# 正態(tài)性分析
for column in df.columns:
series = df[column]
statistic, p_value = shapiro(series)
if p_value > 0.05:
print(f"列 '{column}' 可能符合正態(tài)分布 (p-value={p_value:.4f})")
else:
print(f"列 '{column}' 不符合正態(tài)分布 (p-value={p_value:.4f})")
# 相關(guān)性分析
correlation_matrix = df.corr()
print("\n相關(guān)系數(shù)矩陣:")
print(correlation_matrix)
# 特定變量之間的相關(guān)性
for col1 in df.columns:
for col2 in df.columns:
if col1 != col2:
correlation, p_value = pearsonr(df[col1], df[col2])
print(f"{col1} 和 {col2} 的相關(guān)系數(shù)為 {correlation:.4f} (p-value={p_value:.4f})")
這個(gè)示例代碼首先創(chuàng)建了一個(gè)包含三個(gè)變量的數(shù)據(jù)集,并對(duì)每個(gè)變量進(jìn)行了正態(tài)性分析,然后計(jì)算了變量之間的相關(guān)系數(shù)。最后,它還輸出了特定變量之間的相關(guān)性及其顯著性水平(p-value)。通過(guò)這個(gè)更豐富的示例,我們可以更好地理解如何使用Pandas進(jìn)行正態(tài)性分析和相關(guān)性分析,并且了解了這些分析的結(jié)果如何影響我們對(duì)數(shù)據(jù)的理解和解釋。
到此這篇關(guān)于pandas 相關(guān)性和正態(tài)性分析小結(jié)的文章就介紹到這了,更多相關(guān)pandas 相關(guān)性和正態(tài)性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 實(shí)現(xiàn)LeNet網(wǎng)絡(luò)模型的訓(xùn)練及預(yù)測(cè)
本文將為大家詳細(xì)講解如何使用CIFR10數(shù)據(jù)集訓(xùn)練模型以及用訓(xùn)練好的模型做預(yù)測(cè)。代碼具有一定價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下2021-11-11
Python基礎(chǔ)教程之循環(huán)語(yǔ)句(for、while和嵌套循環(huán))
這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之循環(huán)語(yǔ)句(for、while和嵌套循環(huán))的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python3.x+pyqtgraph實(shí)現(xiàn)數(shù)據(jù)可視化教程
這篇文章主要介紹了Python3.x+pyqtgraph實(shí)現(xiàn)數(shù)據(jù)可視化教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python使用Opencv打開(kāi)筆記本電腦攝像頭報(bào)錯(cuò)解問(wèn)題及解決
這篇文章主要介紹了Python使用Opencv打開(kāi)筆記本電腦攝像頭報(bào)錯(cuò)解問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
如何讀取.npy文件以及如何實(shí)現(xiàn)將數(shù)組保存為圖片
這篇文章主要介紹了如何讀取.npy文件以及如何實(shí)現(xiàn)將數(shù)組保存為圖片問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
python 含子圖的gif生成時(shí)內(nèi)存溢出的方法
今天小編就為大家分享一篇python 含子圖的gif生成時(shí)內(nèi)存溢出的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
python中關(guān)于對(duì)super()函數(shù)疑問(wèn)解惑
Python中的super()是用于調(diào)用父類(或父類的父類...)方法的函數(shù),主要用于多繼承,單繼承問(wèn)題不大,下面這篇文章主要給大家介紹了關(guān)于python中關(guān)于對(duì)super()函數(shù)疑問(wèn)解惑的相關(guān)資料,需要的朋友可以參考下2022-08-08

