如何使用假设检验来比较组
How to use hypothesis testing to compare groups
我有一个数据框,其中包含名称、类型和每场比赛的营业额。下面给出了该 df 的示例。
Name Type Turnover per game
kevin A 5
duke B 10
jonas A 12
angly A 2
anjelo B 10
wily A 4
nick A 8
我想做的是实施假设检验来检查,A 类球员的平均失误比 B 类球员少。。
我尝试了什么:
首先,按类型分组:
df.groupby('Type').mean()
但我不知道如何实施假设检验来检查上述条件。
Hypothesis testing can be done with ttest_ind:
import pandas as pd
from scipy import stats
data = {'Name': ['kevin', 'duke', 'jonas', 'angly', 'anjelo', 'wily', 'nick'],
'Type': ['A', 'B', 'A', 'A', 'B', 'A', 'A'],
'Turnover': [5, 10, 12, 2, 10, 4, 8]}
df = pd.DataFrame(data)
t,p = stats.ttest_ind(df.Turnover[df.Type.eq('A')], df.Turnover[df.Type.eq('B')],
equal_var=False, alternative='less')
if p < 0.05:
print('Type A players have average less turnovers than Type B players')
else:
print('Null hypothesis (equal means) cannot be rejected.')
在您的示例中,类型 A
和 B
球员的失误相等的原假设将被拒绝,而备择假设类型 A
球员的平均失误比类型少B
玩家将被接受。有关详细信息,请参阅上面链接的维基百科文章中的 解释 部分。
你提到的假设检验,如果我没理解错的话,看起来很前卫。
按'Type'
分组得到营业额均值
df_group_by_type = df.groupby('Type')['Turnover per game'].apply(np.mean)
df_group_by_type
Type
A 6.2
B 10.0
然后只需检查所需的条件
df_group_by_type['A'] < df_group_by_type['B']
True
我有一个数据框,其中包含名称、类型和每场比赛的营业额。下面给出了该 df 的示例。
Name Type Turnover per game
kevin A 5
duke B 10
jonas A 12
angly A 2
anjelo B 10
wily A 4
nick A 8
我想做的是实施假设检验来检查,A 类球员的平均失误比 B 类球员少。。
我尝试了什么:
首先,按类型分组:
df.groupby('Type').mean()
但我不知道如何实施假设检验来检查上述条件。
Hypothesis testing can be done with ttest_ind:
import pandas as pd
from scipy import stats
data = {'Name': ['kevin', 'duke', 'jonas', 'angly', 'anjelo', 'wily', 'nick'],
'Type': ['A', 'B', 'A', 'A', 'B', 'A', 'A'],
'Turnover': [5, 10, 12, 2, 10, 4, 8]}
df = pd.DataFrame(data)
t,p = stats.ttest_ind(df.Turnover[df.Type.eq('A')], df.Turnover[df.Type.eq('B')],
equal_var=False, alternative='less')
if p < 0.05:
print('Type A players have average less turnovers than Type B players')
else:
print('Null hypothesis (equal means) cannot be rejected.')
在您的示例中,类型 A
和 B
球员的失误相等的原假设将被拒绝,而备择假设类型 A
球员的平均失误比类型少B
玩家将被接受。有关详细信息,请参阅上面链接的维基百科文章中的 解释 部分。
你提到的假设检验,如果我没理解错的话,看起来很前卫。
按'Type'
分组得到营业额均值df_group_by_type = df.groupby('Type')['Turnover per game'].apply(np.mean)
df_group_by_type
Type
A 6.2
B 10.0
然后只需检查所需的条件
df_group_by_type['A'] < df_group_by_type['B']
True