Python中常用的統(tǒng)計檢驗代碼分享
統(tǒng)計檢驗是數據分析中的重要工具,用于檢驗數據集中的差異、關聯和分布等統(tǒng)計性質。Python 提供了豐富的庫和函數,用于執(zhí)行各種統(tǒng)計檢驗。本文將介紹常見的統(tǒng)計檢驗方法,并提供詳細的示例代碼,幫助大家了解如何在 Python 中執(zhí)行這些檢驗。
t 檢驗
t 檢驗是一種用于比較兩組數據均值是否存在顯著差異的方法。在 Python 中,可以使用 scipy.stats 模塊進行 t 檢驗。
import scipy.stats as stats # 生成兩組樣本數據 data1 = [25, 30, 35, 40, 45] data2 = [30, 32, 35, 38, 42] # 執(zhí)行獨立樣本 t 檢驗 t_stat, p_value = stats.ttest_ind(data1, data2) print("t 統(tǒng)計量:", t_stat) print("p 值:", p_value) if p_value < 0.05: print("差異顯著") else: print("差異不顯著")
在上面的示例中,生成了兩組樣本數據 data1 和 data2,然后使用 ttest_ind 函數執(zhí)行獨立樣本 t 檢驗。最后,根據 p 值的大小判斷差異是否顯著。
卡方檢驗
卡方檢驗用于比較觀察頻數與期望頻數之間的差異,通常用于分析分類數據。在 Python 中,可以使用 scipy.stats 模塊執(zhí)行卡方檢驗。
import scipy.stats as stats # 創(chuàng)建觀察頻數表 observed = [[30, 15], [25, 20]] # 執(zhí)行卡方檢驗 chi2, p_value, _, _ = stats.chi2_contingency(observed) print("卡方統(tǒng)計量:", chi2) print("p 值:", p_value) if p_value < 0.05: print("差異顯著") else: print("差異不顯著")
在上面的示例中,創(chuàng)建了一個觀察頻數表 observed,然后使用 chi2_contingency 函數執(zhí)行卡方檢驗。最后,根據 p 值的大小判斷差異是否顯著。
Pearson 相關系數
Pearson 相關系數用于衡量兩個連續(xù)變量之間的線性相關性。在 Python 中,可以使用 scipy.stats 模塊計算 Pearson 相關系數。
import scipy.stats as stats # 創(chuàng)建兩組連續(xù)變量數據 x = [1, 2, 3, 4, 5] y = [2, 4, 5, 4, 6] # 計算 Pearson 相關系數 correlation, _ = stats.pearsonr(x, y) print("Pearson 相關系數:", correlation) if abs(correlation) > 0.7: print("線性相關性強") else: print("線性相關性弱")
在上面的示例中,創(chuàng)建了兩組連續(xù)變量數據 x 和 y,然后使用 pearsonr 函數計算它們之間的 Pearson 相關系數。最后,根據相關系數的大小判斷線性相關性的強弱。
單樣本 t 檢驗
單樣本 t 檢驗用于比較單個樣本的均值與已知均值之間是否存在顯著差異。在 Python 中,可以使用 scipy.stats 模塊執(zhí)行單樣本 t 檢驗。
import scipy.stats as stats # 單樣本數據 data = [28, 30, 29, 32, 31] # 已知均值 known_mean = 30 # 執(zhí)行單樣本 t 檢驗 t_stat, p_value = stats.ttest_1samp(data, known_mean) print("t 統(tǒng)計量:", t _stat) print("p 值:", p_value) if p_value < 0.05: print("差異顯著") else: print("差異不顯著")
在上面的示例中,有一個單樣本數據集 data 和一個已知的均值 known_mean,然后使用 ttest_1samp 函數執(zhí)行單樣本 t 檢驗,判斷樣本均值是否顯著不同于已知均值。
Wilcoxon 符號秩檢驗
Wilcoxon 符號秩檢驗用于比較兩組配對樣本的差異,通常用于非正態(tài)分布數據。在 Python 中,可以使用 scipy.stats 模塊執(zhí)行 Wilcoxon 符號秩檢驗。
import scipy.stats as stats # 創(chuàng)建兩組配對樣本數據 before = [28, 30, 29, 32, 31] after = [27, 29, 28, 31, 30] # 執(zhí)行 Wilcoxon 符號秩檢驗 w_stat, p_value = stats.wilcoxon(before, after) print("Wilcoxon 符號秩統(tǒng)計量:", w_stat) print("p 值:", p_value) if p_value < 0.05: print("差異顯著") else: print("差異不顯著")
在上面的示例中,創(chuàng)建了兩組配對樣本數據 before 和 after,然后使用 wilcoxon 函數執(zhí)行 Wilcoxon 符號秩檢驗,判斷兩組樣本的差異是否顯著。
ANOVA
ANOVA(方差分析)用于比較多組樣本均值之間是否存在顯著差異。在 Python 中,可以使用 scipy.stats 模塊執(zhí)行單因素 ANOVA。
import scipy.stats as stats # 創(chuàng)建多組樣本數據 group1 = [65, 68, 72, 70, 74] group2 = [58, 63, 65, 61, 59] group3 = [72, 70, 75, 71, 73] # 執(zhí)行單因素 ANOVA f_stat, p_value = stats.f_oneway(group1, group2, group3) print("F 統(tǒng)計量:", f_stat) print("p 值:", p_value) if p_value < 0.05: print("差異顯著") else: print("差異不顯著")
在上面的示例中,創(chuàng)建了三組樣本數據 group1、group2 和 group3,然后使用 f_oneway 函數執(zhí)行單因素 ANOVA,判斷多組樣本均值是否存在顯著差異。
Kolmogorov-Smirnov 檢驗
Kolmogorov-Smirnov 檢驗用于比較兩組數據的分布是否相同。在 Python 中,可以使用 scipy.stats 模塊執(zhí)行 Kolmogorov-Smirnov 檢驗。
import scipy.stats as stats # 創(chuàng)建兩組數據 data1 = [0.1, 0.2, 0.3, 0.4, 0.5] data2 = [0.2, 0.3, 0.4, 0.5, 0.6] # 執(zhí)行 Kolmogorov-Smirnov 檢驗 ks_stat, p_value = stats.ks_2samp(data1, data2) print("KS 統(tǒng)計量:", ks_stat) print("p 值:", p_value) if p_value < 0.05: print("差異顯著") else: print("差異不顯著")
在上面的示例中,創(chuàng)建了兩組數據 data1 和 data2,然后使用 ks_2samp 函數執(zhí)行 Kolmogorov-Smirnov 檢驗,判斷兩組數據的分布是否相同。
Shapiro-Wilk 正態(tài)性檢驗
Shapiro-Wilk 正態(tài)性檢驗用于檢驗數據是否符合正態(tài)分布。在 Python 中,可以使用 scipy.stats 模塊執(zhí)行 Shapiro-Wilk 正態(tài)性檢驗。
import scipy.stats as stats # 創(chuàng)建樣本數據 data = [2.3, 3.```python 7, 4.5, 6.8, 5.1, 8.2] # 執(zhí)行 Shapiro-Wilk 正態(tài)性檢驗 statistic, p_value = stats.shapiro(data) print("Shapiro-Wilk 統(tǒng)計量:", statistic) print("p 值:", p_value) if p_value < 0.05: print("不符合正態(tài)分布") else: print("符合正態(tài)分布")
在上面的示例中,創(chuàng)建了一個樣本數據集 data,然后使用 shapiro 函數執(zhí)行 Shapiro-Wilk 正態(tài)性檢驗,判斷數據是否符合正態(tài)分布。
線性回歸
線性回歸用于建立連續(xù)自變量與連續(xù)因變量之間的線性關系模型。在 Python 中,可以使用 scipy.stats 模塊執(zhí)行線性回歸分析。
import scipy.stats as stats # 創(chuàng)建自變量和因變量數據 x = [1, 2, 3, 4, 5] y = [2, 4, 5, 4, 6] # 執(zhí)行線性回歸分析 slope, intercept, r_value, p_value, std_err = stats.linregress(x, y) print("斜率:", slope) print("截距:", intercept) print("相關系數:", r_value) print("p 值:", p_value) if p_value < 0.05: print("回歸模型顯著") else: print("回歸模型不顯著")
在上面的示例中,創(chuàng)建了自變量數據 x 和因變量數據 y,然后使用 linregress 函數執(zhí)行線性回歸分析,得到回歸方程的斜率、截距、相關系數和 p 值。
分位數回歸
分位數回歸用于建立分位數與自變量之間的關系模型,通常用于處理異方差性或離群值較多的數據。在 Python 中,可以使用 statsmodels 庫執(zhí)行分位數回歸分析。
import statsmodels.api as sm # 創(chuàng)建自變量和因變量數據 x = [1, 2, 3, 4, 5] y = [2, 4, 5, 4, 6] # 添加常數項 x = sm.add_constant(x) # 執(zhí)行分位數回歸分析 quantiles = [0.25, 0.5, 0.75] for q in quantiles: model = sm.QuantReg(y, x) result = model.fit(q=q) print(f"分位數 {q}:") print(result.summary())
在上面的示例中,創(chuàng)建了自變量數據 x 和因變量數據 y,然后使用 sm.QuantReg 類執(zhí)行分位數回歸分析,得到不同分位數下的回歸結果。
這些是常見的統(tǒng)計檢驗方法和回歸分析方法的示例代碼,可以幫助進行數據分析和統(tǒng)計建模。根據不同的需求和數據類型,選擇合適的方法進行分析和假設檢驗,以獲得有意義的結果。
以上就是Python中常用的統(tǒng)計檢驗代碼分享的詳細內容,更多關于Python統(tǒng)計檢驗的資料請關注腳本之家其它相關文章!
相關文章
Anaconda最新版2023安裝教程Spyder安裝教程圖文詳解
這篇文章主要介紹了Anaconda最新版2023安裝教程Spyder安裝教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05django 使用 request 獲取瀏覽器發(fā)送的參數示例代碼
這篇文章主要介紹了django 使用 request 獲取瀏覽器發(fā)送的參數示例代碼,獲取數據有四種方式,具體內容詳情大家跟隨腳本之家小編一起看看吧2018-06-06使用Python中OpenCV和深度學習進行全面嵌套邊緣檢測
這篇文章主要介紹了使用Python中OpenCV和深度學習進行全面嵌套邊緣檢測,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-05-05Python使用Flask結合DeepSeek開發(fā)(實現代碼)
文章介紹了如何使用ollama部署DeepSeek大模型,并通過Python Flask和SSE技術實現一個簡單的對話應用,代碼實現了模型的調用和結果展示,并討論了SSE不支持POST請求的問題及解決方案,感興趣的朋友一起看看吧2025-02-02python 判斷l(xiāng)inux進程,并殺死進程的實現方法
今天小編就為大家分享一篇python 判斷l(xiāng)inux進程,并殺死進程的實現方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07