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ù)集中在其均值周圍,并且隨著距離均值的增加而逐漸減少。
- 確定性:正態(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爬蟲(chóng):Request Payload和Form Data的簡(jiǎn)單區(qū)別說(shuō)明
這篇文章主要介紹了Python爬蟲(chóng):Request Payload和Form Data的簡(jiǎn)單區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Python實(shí)現(xiàn)把json格式轉(zhuǎn)換成文本或sql文件
這篇文章主要介紹了Python實(shí)現(xiàn)把json格式轉(zhuǎn)換成文本或sql文件,本文直接給出代碼實(shí)例,需要的朋友可以參考下2015-07-07
python opencv實(shí)現(xiàn)圖像配準(zhǔn)與比較
這篇文章主要為大家詳細(xì)介紹了python opencv實(shí)現(xiàn)圖像配準(zhǔn)與比較,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02
python pdfkit 中文亂碼問(wèn)題的解決方案
這篇文章主要介紹了python pdfkit 中文亂碼問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python使用K-means實(shí)現(xiàn)文本聚類功能
最近遇到了這樣一個(gè)需求,將N個(gè)文本內(nèi)容聚類成若干個(gè)主題詞團(tuán),減少人工分析文本和分類文本的工作量,實(shí)現(xiàn)思路是使用?K-means算法通過(guò)高頻詞對(duì)文本內(nèi)容進(jìn)行聚類,K-means算法實(shí)現(xiàn)原理簡(jiǎn)單易于理解,本文給大家介紹了Python使用K-means實(shí)現(xiàn)文本聚類功能,需要的朋友可以參考下2024-11-11

