午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

十大假設(shè)檢驗(yàn),超完整總結(jié) !!

 敬鋒 2024-09-27

哈嘍,我是cos大壯!~

前幾天,咱們已經(jīng)分享了關(guān)于假設(shè)檢驗(yàn)的一些內(nèi)容,今天針對(duì)一些細(xì)節(jié)問(wèn)題,又進(jìn)行了細(xì)化分享給大家。

假設(shè)檢驗(yàn)方法用于通過(guò)統(tǒng)計(jì)手段判斷樣本數(shù)據(jù)是否支持某個(gè)假設(shè),幫助決策者做出基于數(shù)據(jù)的推斷。它為數(shù)據(jù)分析提供了系統(tǒng)的驗(yàn)證工具,有助于避免僅憑樣本結(jié)果得出誤導(dǎo)性的結(jié)論。通過(guò)假設(shè)檢驗(yàn),可以在不確定性中評(píng)估數(shù)據(jù)的顯著性,確保分析結(jié)果的科學(xué)性和可靠性。

圖片

老規(guī)矩如果大家伙覺(jué)得近期文章還不錯(cuò)!歡迎大家點(diǎn)個(gè)贊、轉(zhuǎn)個(gè)發(fā),文末贈(zèng)送《機(jī)器學(xué)習(xí)學(xué)習(xí)小冊(cè)》。
文末可取本文PDF版本~

先給大家列舉10種假設(shè)檢驗(yàn)方法,以及核心關(guān)鍵:

  • t 檢驗(yàn):適用于均值差異的假設(shè)檢驗(yàn)。
  • Z 檢驗(yàn):用于大樣本或已知總體方差的均值差異檢驗(yàn)。
  • 卡方檢驗(yàn):適用于分類變量的獨(dú)立性或擬合優(yōu)度檢驗(yàn)。
  • 方差分析(ANOVA):用于多個(gè)組均值的比較。
  • Mann-Whitney U 檢驗(yàn):用于比較兩個(gè)獨(dú)立樣本的非正態(tài)分布數(shù)據(jù)。
  • Kruskal-Wallis 檢驗(yàn):用于比較三個(gè)或更多組的非正態(tài)分布數(shù)據(jù)。
  • Wilcoxon 符號(hào)秩檢驗(yàn):用于成對(duì)樣本的非參數(shù)檢驗(yàn)。
  • Kolmogorov-Smirnov 檢驗(yàn)(K-S Test):用于檢驗(yàn)樣本分布與理論分布的一致性。
  • Friedman 檢驗(yàn):用于比較多個(gè)相關(guān)樣本的分布差異。
  • McNemar 檢驗(yàn):用于比較兩個(gè)配對(duì)樣本的二分類數(shù)據(jù)。

具體細(xì)節(jié),咱們下面詳細(xì)聊聊~

1. t 檢驗(yàn)(t-test)

原理

 檢驗(yàn)用于比較兩個(gè)樣本均值之間是否有顯著差異。其背后的假設(shè)是,兩個(gè)樣本來(lái)自同一分布,如果它們的均值差異顯著,則表明兩者可能屬于不同的分布。

  • 原假設(shè)(H0):兩個(gè)樣本均值沒(méi)有差異,即 。
  • 備擇假設(shè)(H1):兩個(gè)樣本均值有顯著差異,即 。

核心公式

t檢驗(yàn)的核心是計(jì)算t統(tǒng)計(jì)量,并通過(guò)它判斷樣本均值之間的差異。公式如下:

對(duì)于獨(dú)立樣本t檢驗(yàn)(雙樣本t檢驗(yàn)):

其中:

  •    分別為兩個(gè)樣本的均值。
  •    為兩個(gè)樣本的方差。
  •    為兩個(gè)樣本的樣本數(shù)。

t值通過(guò)查找t分布表來(lái)得到p值,p值越小,越說(shuō)明樣本間差異顯著。如果p值小于顯著性水平(通常是0.05),則拒絕原假設(shè)。

推導(dǎo)過(guò)程:
  1. 首先假設(shè)兩個(gè)樣本來(lái)自同一分布,計(jì)算樣本均值。
  2. 根據(jù)中心極限定理,樣本均值的分布是正態(tài)分布。
  3. 計(jì)算樣本之間的標(biāo)準(zhǔn)誤差,并通過(guò)公式計(jì)算t值。
  4. 通過(guò)查表或計(jì)算獲得p值,判斷是否可以拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):t檢驗(yàn)簡(jiǎn)單易用,適用于正態(tài)分布的數(shù)據(jù)。
  • 缺點(diǎn):對(duì)于非正態(tài)分布、樣本量較小時(shí),結(jié)果不夠穩(wěn)定。t檢驗(yàn)還要求樣本的方差近似相等。
  • 適用場(chǎng)景:當(dāng)我們需要比較兩個(gè)樣本的均值差異時(shí),例如實(shí)驗(yàn)組和控制組的表現(xiàn)差異。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats

# 生成兩個(gè)不同均值的樣本數(shù)據(jù)
np.random.seed(42)
group1 = np.random.normal(5010100)  # 均值為50,標(biāo)準(zhǔn)差為10
group2 = np.random.normal(5512100)  # 均值為55,標(biāo)準(zhǔn)差為12

# t-test 兩組數(shù)據(jù)的均值
t_stat, p_value = stats.ttest_ind(group1, group2)
print(f'T-statistic: {t_stat}, P-value: {p_value}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(106))

# 密度圖
sns.kdeplot(group1, label='Group 1 (Mean=50)', color='blue', shade=True)
sns.kdeplot(group2, label='Group 2 (Mean=55)', color='red', shade=True)

# 箱線圖
plt.subplot(122)
sns.boxplot(data=[group1, group2], palette=['blue''red'])
plt.xticks([01], ['Group 1''Group 2'])

plt.suptitle('t-Test Analysis: Group Comparison', fontsize=16)
plt.tight_layout()
plt.show()

在生成的圖中:

  • 左側(cè)顯示兩個(gè)組的核密度估計(jì)(KDE)曲線,顯示了數(shù)據(jù)分布情況。
  • 右側(cè)為箱線圖,比較了兩個(gè)組的中位數(shù)和四分位數(shù)。通過(guò)這兩個(gè)圖表,可以直觀地觀察到兩個(gè)組在均值上的差異。

圖片

從代碼輸出的t統(tǒng)計(jì)量和p值可以判斷,如果p值小于0.05,則可以拒絕原假設(shè),即認(rèn)為兩個(gè)樣本的均值有顯著差異。通過(guò)數(shù)據(jù)分析圖,KDE圖和箱線圖可以看出,group1和group2的均值有所不同。

2. z 檢驗(yàn)(z-test)

原理

z檢驗(yàn)類似于t檢驗(yàn),主要用于樣本量較大且已知總體標(biāo)準(zhǔn)差的情況。它可以用于檢驗(yàn)單樣本與總體均值的差異,也可以比較兩個(gè)樣本的均值差異。

  • 原假設(shè)(H0):樣本均值與總體均值無(wú)顯著差異,或兩個(gè)樣本均值無(wú)顯著差異。
  • 備擇假設(shè)(H1):樣本均值與總體均值有顯著差異,或兩個(gè)樣本均值有顯著差異。

核心公式

z檢驗(yàn)的核心公式為:

其中:

  •  為樣本均值。
  •  為總體均值。
  •  為已知的總體標(biāo)準(zhǔn)差。
  •  為樣本數(shù)量。
推導(dǎo)過(guò)程:
  1. 在大樣本的情況下,樣本均值的分布近似正態(tài)分布。
  2. 計(jì)算樣本均值與總體均值的差異,并標(biāo)準(zhǔn)化為z分布。
  3. 根據(jù)z值在標(biāo)準(zhǔn)正態(tài)分布中查找p值。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):z檢驗(yàn)適用于大樣本數(shù)據(jù),計(jì)算簡(jiǎn)單,并且適用性廣泛。
  • 缺點(diǎn):要求已知總體標(biāo)準(zhǔn)差,適用于大樣本,且不適合小樣本數(shù)據(jù)。
  • 適用場(chǎng)景:適用于已知總體方差的大樣本數(shù)據(jù)。

案例代碼

# z-test示例,使用一個(gè)標(biāo)準(zhǔn)的正態(tài)分布數(shù)據(jù)集
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats

# 生成數(shù)據(jù):一個(gè)已知均值和方差的總體
np.random.seed(42)
population_mean = 100
population_std = 15
n = 50

# 從該總體中抽取樣本
sample = np.random.normal(population_mean, population_std, n)

# 假設(shè)總體均值為105,進(jìn)行單樣本z檢驗(yàn)
sample_mean = np.mean(sample)
sample_std = np.std(sample, ddof=1)
z_stat = (sample_mean - 105) / (population_std / np.sqrt(n))
p_value = 2 * (1 - stats.norm.cdf(abs(z_stat)))

print(f'Z-statistic: {z_stat}, P-value: {p_value}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(106))

# 核密度估計(jì)(KDE)顯示樣本的分布
sns.kdeplot(sample, label='Sample Distribution', color='green', shade=True)

# 添加總體均值和假設(shè)均值的豎線
plt.axvline(np.mean(sample), color='blue', linestyle='--', label='Sample Mean')
plt.axvline(105, color='red', linestyle='--', label='Hypothetical Mean')

plt.legend()
plt.title('Z-Test: Sample vs Hypothetical Mean')
plt.tight_layout()
plt.show()
  • 核密度估計(jì)(KDE)展示了抽樣數(shù)據(jù)的分布。
  • 紅色豎線表示假設(shè)的總體均值,藍(lán)色虛線表示樣本均值。這可以直觀地看到樣本均值與假設(shè)均值的偏差情況。

圖片

通過(guò)z統(tǒng)計(jì)量和p值,我們可以判斷樣本均值與假設(shè)均值是否有顯著差異。如果p值小于0.05,則拒絕原假設(shè)。

3. 卡方檢驗(yàn)(Chi-Square Test)

原理

卡方檢驗(yàn)用于分類變量的統(tǒng)計(jì)推斷,主要用于檢驗(yàn)變量之間的獨(dú)立性或分類分布的擬合度。其基本思想是比較觀察到的頻數(shù)和期望的頻數(shù)之間的差異,從而判斷變量之間是否獨(dú)立。

  • 原假設(shè)(H0):變量之間相互獨(dú)立(沒(méi)有關(guān)聯(lián))。
  • 備擇假設(shè)(H1):變量之間不獨(dú)立(有顯著關(guān)聯(lián))。

核心公式

卡方檢驗(yàn)的統(tǒng)計(jì)量公式為:

其中:

  •  是觀察值。
  •  是期望值。
推導(dǎo)過(guò)程:
  1. 根據(jù)原假設(shè)計(jì)算每個(gè)組合的期望頻數(shù)。
  2. 使用公式計(jì)算卡方統(tǒng)計(jì)量,即觀察值與期望值之間的平方差除以期望值。
  3. 查找卡方分布表,根據(jù)自由度和顯著性水平判斷是否拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):適用于分類數(shù)據(jù),操作簡(jiǎn)單。特別適合用于樣本頻率的顯著性檢驗(yàn)。
  • 缺點(diǎn):需要足夠大的樣本量,小樣本時(shí)可能導(dǎo)致錯(cuò)誤的結(jié)論;同時(shí),當(dāng)期望頻數(shù)較小時(shí),卡方檢驗(yàn)效果不佳。
  • 適用場(chǎng)景:常用于檢驗(yàn)兩個(gè)類別變量之間的獨(dú)立性或擬合優(yōu)度。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import chi2_contingency

# 創(chuàng)建列聯(lián)表(例如性別和是否購(gòu)買)
data = {'Gender': ['Male''Male''Female''Female''Male''Female''Female''Male'],
        'Purchased': ['Yes''No''Yes''No''Yes''Yes''No''No']}

df = pd.DataFrame(data)

# 創(chuàng)建列聯(lián)表
contingency_table = pd.crosstab(df['Gender'], df['Purchased'])
print(contingency_table)

# 卡方檢驗(yàn)
chi2, p, dof, expected = chi2_contingency(contingency_table)
print(f'Chi2 Statistic: {chi2}, P-value: {p}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(86))
sns.heatmap(contingency_table, annot=True, cmap='YlGnBu', fmt='d')
plt.title('Contingency Table Heatmap')
plt.show()

圖中顯示了一個(gè)性別和是否購(gòu)買的列聯(lián)表(交叉表),并用熱圖可視化兩個(gè)變量的頻數(shù)分布。通過(guò)此表和圖,可以觀察到不同性別下是否購(gòu)買的頻率分布。

圖片

通過(guò)卡方統(tǒng)計(jì)量和p值,可以判斷是否拒絕原假設(shè)(即變量是否獨(dú)立)。如果p值小于0.05,則表明性別與購(gòu)買行為之間存在顯著關(guān)聯(lián)。

4. 方差分析(ANOVA, Analysis of Variance)

原理

方差分析(ANOVA)用于比較多個(gè)組的均值,判斷這些組之間是否存在顯著差異。它通過(guò)比較組間方差與組內(nèi)方差的比值,來(lái)評(píng)估不同組的均值是否相同。

  • 原假設(shè)(H0):多個(gè)樣本組的均值相等。
  • 備擇假設(shè)(H1):至少有一個(gè)樣本組的均值不相等。

核心公式

ANOVA 使用的統(tǒng)計(jì)量是 F 值,公式為:

其中:

  •  是第  組的均值。
  •  是總體均值。
  •  是第  組的樣本數(shù)。
  •  是總樣本數(shù)。
  •  是組數(shù)。
推導(dǎo)過(guò)程:
  1. 計(jì)算每組均值與總體均值之間的方差(組間方差)。
  2. 計(jì)算每組內(nèi)部數(shù)據(jù)與組均值的方差(組內(nèi)方差)。
  3. 通過(guò)F統(tǒng)計(jì)量的比值,查找F分布表,判斷是否拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):可以同時(shí)比較多個(gè)組,適用于多個(gè)樣本組的均值差異檢驗(yàn)。
  • 缺點(diǎn):要求樣本數(shù)據(jù)滿足正態(tài)性,且各組之間的方差相等。
  • 適用場(chǎng)景:用于比較三個(gè)或更多組之間的均值差異,常用于實(shí)驗(yàn)設(shè)計(jì)分析。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats

# 生成三個(gè)組的數(shù)據(jù)
np.random.seed(42)
group1 = np.random.normal(501030)
group2 = np.random.normal(551030)
group3 = np.random.normal(601030)

# 方差分析
f_stat, p_value = stats.f_oneway(group1, group2, group3)
print(f'F-statistic: {f_stat}, P-value: {p_value}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(126))

# 箱線圖顯示各組的分布
sns.boxplot(data=[group1, group2, group3], palette='Set3')
plt.xticks([012], ['Group 1''Group 2''Group 3'])
plt.title('ANOVA Analysis: Group Comparison')
plt.show()

箱線圖展示了三個(gè)組的分布情況,包括每個(gè)組的中位數(shù)和四分位數(shù)。通過(guò)箱線圖,可以直觀地觀察各組之間均值和數(shù)據(jù)分布的差異。

圖片

通過(guò)F統(tǒng)計(jì)量和p值,我們可以判斷是否拒絕原假設(shè)。如果p值小于0.05,說(shuō)明至少有一個(gè)組的均值與其他組不同。

5. Mann-Whitney U 檢驗(yàn)

原理

Mann-Whitney U 檢驗(yàn)是一種非參數(shù)檢驗(yàn),適用于比較兩個(gè)獨(dú)立樣本的分布是否相同,尤其適用于數(shù)據(jù)不滿足正態(tài)分布的情況。

  • 原假設(shè)(H0):兩個(gè)樣本的分布相同。
  • 備擇假設(shè)(H1):兩個(gè)樣本的分布不同。

核心公式

Mann-Whitney U 檢驗(yàn)的統(tǒng)計(jì)量為 U 值,計(jì)算公式為:

其中:

  •    分別是兩個(gè)樣本的樣本量。
  •  是樣本1的秩和。
推導(dǎo)過(guò)程:
  1. 將兩個(gè)樣本的數(shù)據(jù)排序,并分配秩次。
  2. 計(jì)算每個(gè)樣本的秩和,進(jìn)而計(jì)算U值。
  3. 通過(guò)U值查找標(biāo)準(zhǔn)正態(tài)分布或U分布表,判斷是否拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):適用于非正態(tài)分布數(shù)據(jù),不要求方差相等。
  • 缺點(diǎn):不能精確評(píng)估均值,只能比較分布。
  • 適用場(chǎng)景:當(dāng)兩個(gè)獨(dú)立樣本的數(shù)據(jù)不滿足正態(tài)分布時(shí),常用于社會(huì)科學(xué)實(shí)驗(yàn)和非正態(tài)分布數(shù)據(jù)分析。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import mannwhitneyu

# 生成兩個(gè)非正態(tài)分布的數(shù)據(jù)
np.random.seed(42)
group1 = np.random.exponential(scale=2, size=100)
group2 = np.random.exponential(scale=3, size=100)

# Mann-Whitney U 檢驗(yàn)
u_stat, p_value = mannwhitneyu(group1, group2)
print(f'U-statistic: {u_stat}, P-value: {p_value}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(106))

# KDE 圖顯示分布差異
sns.kdeplot(group1, label='Group 1', color='blue', shade=True)
sns.kdeplot(group2, label='Group 2', color='orange', shade=True)
plt.title('Mann-Whitney U Test: Group Distributions')
plt.legend()
plt.show()

KDE圖展示了兩個(gè)組的分布差異,數(shù)據(jù)明顯呈現(xiàn)非正態(tài)分布。通過(guò)這些圖,可以觀察兩個(gè)組在分布形狀上的不同。

圖片

根據(jù)U統(tǒng)計(jì)量和p值,如果p值小于0.05,則可以拒絕原假設(shè),說(shuō)明兩個(gè)樣本的分布不同。

6. Kruskal-Wallis 檢驗(yàn)

原理

Kruskal-Wallis 檢驗(yàn)是一個(gè)非參數(shù)檢驗(yàn),用于比較多個(gè)樣本組的分布差異。它是Mann-Whitney U 檢驗(yàn)的擴(kuò)展,適用于三個(gè)或更多組的比較。

  • 原假設(shè)(H0):所有樣本組的分布相同。
  • 備擇假設(shè)(H1):至少有一個(gè)樣本組的分布不同。

核心公式

Kruskal-Wallis檢驗(yàn)的核心統(tǒng)計(jì)量H值公式為:

其中:

  •  是總樣本數(shù)。
  •  是第  組的樣本數(shù)。
  •  是第  組的秩和。
推導(dǎo)過(guò)程:
  1. 將所有數(shù)據(jù)按大小順序排列并分配秩次。
  2. 計(jì)算各組的秩和,使用公式計(jì)算H值。
  3. 根據(jù)H值查找卡方分布表,判斷是否拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):適用于非正態(tài)分布數(shù)據(jù),不要求各組方差相等。
  • 缺點(diǎn):只能判斷分布差異,不能評(píng)估具體的均值差異。
  • 適用場(chǎng)景:當(dāng)數(shù)據(jù)不滿足正態(tài)性且需要比較三個(gè)或更多組時(shí),適合社會(huì)科學(xué)和生物學(xué)實(shí)驗(yàn)。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import kruskal

# 生成三組非正態(tài)分布的數(shù)據(jù)
np.random.seed(42)
group1 = np.random.gamma(2150)
group2 = np.random.gamma(2250)
group3 = np.random.gamma(2350)

# Kruskal-Wallis 檢驗(yàn)
h_stat, p_value = kruskal(group1, group2, group3)
print(f'H-statistic: {h_stat}, P-value: {p_value}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(126))

# KDE 圖顯示三組數(shù)據(jù)的分布
sns.kdeplot(group1, label='Group 1', color='blue', shade=True)
sns.kdeplot(group2, label='Group 2', color='green', shade=True)
sns.kdeplot(group3, label='Group 3', color='red', shade=True)
plt.title('Kruskal-Wallis Test: Group Distributions')
plt.legend()
plt.show()

通過(guò)KDE圖可以清晰地看到三個(gè)樣本組的分布差異,這些數(shù)據(jù)明顯不是正態(tài)分布,可以通過(guò)Kruskal-Wallis 檢驗(yàn)進(jìn)行分析。

圖片

根據(jù)H統(tǒng)計(jì)量和p值,如果p值小于0.05,說(shuō)明至少有一個(gè)樣本組的分布與其他組顯著不同。

7. Wilcoxon 符號(hào)秩檢驗(yàn)(Wilcoxon Signed-Rank Test)

原理

Wilcoxon符號(hào)秩檢驗(yàn)是一種非參數(shù)檢驗(yàn),用于檢驗(yàn)兩個(gè)配對(duì)樣本之間的差異,通常用于替代配對(duì)樣本t檢驗(yàn)。它比較的是成對(duì)數(shù)據(jù)的符號(hào)秩次和,而非直接比較均值。

  • 原假設(shè)(H0):配對(duì)樣本的中位數(shù)差異為0。
  • 備擇假設(shè)(H1):配對(duì)樣本的中位數(shù)差異不為0。

核心公式

Wilcoxon檢驗(yàn)的統(tǒng)計(jì)量公式為:

其中  是每個(gè)樣本對(duì)的符號(hào)秩次和。

推導(dǎo)過(guò)程:
  1. 計(jì)算每對(duì)數(shù)據(jù)的差值。
  2. 對(duì)差值進(jìn)行排序,計(jì)算正負(fù)符號(hào)的秩和。
  3. 通過(guò)秩和的絕對(duì)值來(lái)判斷是否可以拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):適用于非正態(tài)分布的成對(duì)數(shù)據(jù)。
  • 缺點(diǎn):不能用于無(wú)序或分類數(shù)據(jù)。
  • 適用場(chǎng)景:當(dāng)兩個(gè)配對(duì)樣本數(shù)據(jù)不滿足正態(tài)性時(shí),用于替代配對(duì)樣本t檢驗(yàn)。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import wilcoxon

# 生成配對(duì)樣本數(shù)據(jù)
np.random.seed(42)
before = np.random.normal(20550)
after = before + np.random.normal(-2250)

# Wilcoxon 符號(hào)秩檢驗(yàn)
w_stat, p_value = wilcoxon(before, after)
print(f'W-statistic: {w_stat}, P-value: {p_value}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(106))

# KDE 圖顯示成對(duì)樣本的分布
sns.kdeplot(before, label='Before', color='blue', shade=True)
sns.kdeplot(after, label='After', color='red', shade=True)
plt.title('Wilcoxon Signed-Rank Test: Paired Sample Distributions')
plt.legend()
plt.show()

通過(guò)KDE圖可以觀察到處理前后兩個(gè)配對(duì)樣本的分布差異,直觀顯示數(shù)據(jù)的變化趨勢(shì)。

圖片

根據(jù)W統(tǒng)計(jì)量和p值,可以判斷配對(duì)樣本的中位數(shù)差異是否顯著。如果p值小于0.05,則可以拒絕原假設(shè),說(shuō)明成對(duì)數(shù)據(jù)之間有顯著差異。

8. Kolmogorov-Smirnov 檢驗(yàn)(K-S Test)

原理

Kolmogorov-Smirnov檢驗(yàn)是一種非參數(shù)檢驗(yàn),常用于比較樣本分布與某個(gè)理論分布是否一致,或比較兩個(gè)樣本的分布是否相同。

  • 原假設(shè)(H0):樣本分布與理論分布相同,或兩個(gè)樣本的分布相同。
  • 備擇假設(shè)(H1):樣本分布與理論分布不同,或兩個(gè)樣本的分布不同。

核心公式

K-S 檢驗(yàn)的統(tǒng)計(jì)量為 ,表示兩個(gè)累積分布函數(shù)之間的最大差值:

其中    是兩個(gè)分布的累積分布函數(shù)。

推導(dǎo)過(guò)程:
  1. 計(jì)算樣本和理論分布或兩個(gè)樣本的累積分布函數(shù)。
  2. 計(jì)算兩個(gè)分布函數(shù)之間的最大差異。
  3. 通過(guò)K-S統(tǒng)計(jì)量判斷是否可以拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):不依賴分布的具體形式,適用于任意分布的數(shù)據(jù)。
  • 缺點(diǎn):對(duì)尾部差異更敏感,容易受極值影響。
  • 適用場(chǎng)景:用于檢驗(yàn)樣本分布是否與理論分布一致,或比較兩個(gè)樣本的分布差異。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import kstest, norm

# 生成數(shù)據(jù),假設(shè)數(shù)據(jù)應(yīng)該服從正態(tài)分布
np.random.seed(42)
data = np.random.normal(01100)

# Kolmogorov-Smirnov 檢驗(yàn)
ks_stat, p_value = kstest(data, 'norm')
print(f'K-S Statistic: {ks_stat}, P-value: {p_value}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(106))

# KDE 圖顯示樣本數(shù)據(jù)與理論分布的對(duì)比
sns.kdeplot(data, label='Sample Data', color='blue', shade=True)
sns.lineplot(x=np.linspace(-33100), y=norm.pdf(np.linspace(-33100)), label='Normal Distribution', color='red')
plt.title('Kolmogorov-Smirnov Test: Sample vs Normal Distribution')
plt.legend()
plt.show()

KDE圖和正態(tài)分布曲線對(duì)比顯示了樣本數(shù)據(jù)與理論分布的差異??梢酝ㄟ^(guò)目視化觀察和K-S檢驗(yàn)結(jié)果來(lái)判斷樣本分布是否符合正態(tài)分布。

圖片

如果K-S統(tǒng)計(jì)量的p值小于0.05,則可以拒絕原假設(shè),說(shuō)明樣本分布與理論分布之間存在顯著差異。

9. Friedman 檢驗(yàn)

原理

Friedman 檢驗(yàn)是一種非參數(shù)的方差分析方法,主要用于比較多個(gè)相關(guān)樣本(即重復(fù)測(cè)量或配對(duì)樣本)之間的差異。它是方差分析(ANOVA)的一種非參數(shù)替代方法,適合數(shù)據(jù)不滿足正態(tài)分布的情況。

  • 原假設(shè)(H0):多個(gè)樣本的中位數(shù)相同。
  • 備擇假設(shè)(H1):至少有一個(gè)樣本的中位數(shù)不同。

核心公式

Friedman 檢驗(yàn)的統(tǒng)計(jì)量  的公式為:

其中:

  •  是實(shí)驗(yàn)組的數(shù)量。
  •  是每組的樣本數(shù)。
  •  是第  組的秩和。
推導(dǎo)過(guò)程:
  1. 對(duì)每個(gè)重復(fù)測(cè)量樣本進(jìn)行排序并分配秩次。
  2. 計(jì)算每個(gè)樣本的秩和,使用公式計(jì)算Friedman統(tǒng)計(jì)量。
  3. 查找卡方分布表,判斷是否拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):適用于不滿足正態(tài)分布的相關(guān)樣本數(shù)據(jù),適合多個(gè)樣本組。
  • 缺點(diǎn):只能比較相關(guān)樣本,不能處理獨(dú)立樣本。
  • 適用場(chǎng)景:當(dāng)有多個(gè)配對(duì)樣本或重復(fù)測(cè)量時(shí),特別適用于非正態(tài)分布的數(shù)據(jù)。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import friedmanchisquare

# 生成三個(gè)相關(guān)樣本數(shù)據(jù)
np.random.seed(42)
group1 = np.random.normal(501020)
group2 = np.random.normal(521020)
group3 = np.random.normal(541020)

# Friedman 檢驗(yàn)
stat, p_value = friedmanchisquare(group1, group2, group3)
print(f'Friedman Statistic: {stat}, P-value: {p_value}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(106))

# 箱線圖顯示三個(gè)相關(guān)樣本的分布
sns.boxplot(data=[group1, group2, group3], palette='Set2')
plt.xticks([012], ['Group 1''Group 2''Group 3'])
plt.title('Friedman Test: Group Comparison')
plt.show()

箱線圖展示了三個(gè)相關(guān)樣本的分布情況,直觀顯示每個(gè)樣本的中位數(shù)和四分位范圍。通過(guò)箱線圖,可以觀察到三個(gè)組的分布是否有顯著差異。

圖片

通過(guò) Friedman 檢驗(yàn)統(tǒng)計(jì)量和 p 值,可以判斷多個(gè)相關(guān)樣本的中位數(shù)是否相同。如果 p 值小于 0.05,則拒絕原假設(shè),說(shuō)明至少有一個(gè)樣本的中位數(shù)與其他樣本不同。

10. McNemar 檢驗(yàn)

原理

McNemar 檢驗(yàn)是針對(duì)配對(duì)名義數(shù)據(jù)(分類數(shù)據(jù))的一種非參數(shù)檢驗(yàn),主要用于比較兩個(gè)配對(duì)樣本的分類數(shù)據(jù)差異,常用于前后對(duì)比實(shí)驗(yàn)或同一對(duì)象在兩種條件下的二分類數(shù)據(jù)分析。

  • 原假設(shè)(H0):兩組配對(duì)樣本的分類結(jié)果一致。
  • 備擇假設(shè)(H1):兩組配對(duì)樣本的分類結(jié)果不一致。

核心公式

McNemar 檢驗(yàn)的統(tǒng)計(jì)量公式為:

其中:

  •  是配對(duì)樣本中第一次分類為 0,第二次分類為 1 的樣本數(shù)量。
  •  是配對(duì)樣本中第一次分類為 1,第二次分類為 0 的樣本數(shù)量。
推導(dǎo)過(guò)程:
  1. 構(gòu)造配對(duì)數(shù)據(jù)的2x2列聯(lián)表。
  2. 計(jì)算b和c值,代入公式,計(jì)算卡方統(tǒng)計(jì)量。
  3. 查找卡方分布表,判斷是否拒絕原假設(shè)。

優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):適用于二分類數(shù)據(jù)的配對(duì)樣本,尤其是前后對(duì)比實(shí)驗(yàn)的結(jié)果分析。
  • 缺點(diǎn):只適用于二分類數(shù)據(jù),不能處理多分類數(shù)據(jù)。
  • 適用場(chǎng)景:用于比較兩個(gè)配對(duì)樣本的二分類數(shù)據(jù),常見(jiàn)于臨床實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn)。

案例代碼

下面的代碼演示如何使用 McNemar 檢驗(yàn)來(lái)比較配對(duì)樣本的二分類數(shù)據(jù)。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from statsmodels.stats.contingency_tables import mcnemar

# 構(gòu)造 2x2 配對(duì)列聯(lián)表
data = [[105], [2015]]
df = pd.DataFrame(data, index=['Condition 1''Condition 2'], columns=['Negative''Positive'])

# McNemar 檢驗(yàn)
result = mcnemar(df, exact=False)
print(f'Chi2 Statistic: {result.statistic}, P-value: {result.pvalue}')

# 數(shù)據(jù)可視化
plt.figure(figsize=(86))
sns.heatmap(df, annot=True, cmap='coolwarm', fmt='d')
plt.title('McNemar Test: Contingency Table Heatmap')
plt.show()

熱圖展示了2x2列聯(lián)表,顯示配對(duì)樣本在兩種條件下的二分類分布情況。通過(guò)熱圖,可以直觀地看到每個(gè)分類的配對(duì)頻率。

圖片

通過(guò) McNemar 檢驗(yàn)統(tǒng)計(jì)量和 p 值,可以判斷配對(duì)樣本的分類結(jié)果是否一致。如果 p 值小于 0.05,則拒絕原假設(shè),說(shuō)明兩組配對(duì)樣本的分類結(jié)果存在顯著差異。

圖片

最后

大家有問(wèn)題可以直接在評(píng)論區(qū)留言即可~

喜歡本文的朋友可以收藏、點(diǎn)贊、轉(zhuǎn)發(fā)起來(lái)!
需要本文PDF的同學(xué),掃碼備注「模型匯總」即可~ 
關(guān)注本號(hào),帶來(lái)更多算法干貨實(shí)例,提升工作學(xué)習(xí)效率!
最后,給大家準(zhǔn)備了《機(jī)器學(xué)習(xí)學(xué)習(xí)小冊(cè)》PDF版本,16大塊的內(nèi)容,124個(gè)問(wèn)題總結(jié)!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多