t 按性别测试用户的总播放次数 - python

t testing total plays of users by gender - python

我想通过他们的总播放量来评估男性和女性用户组的统计差异(见下面的例子):

女性条目示例

female

    users   artist  plays   gender  age
0   48591   sting   12763   f       25.0
1   48591   stars   8192    f       25.0

每位女性用户的总播放次数

female_user_plays = female.groupby('users').plays.sum()

female_user_plays

users
5         5479
6         3782
7         7521
11        7160

男性条目示例

female
    users   artist         plays    gender  age
51  56496   iron maiden    456      m       28.0
52  56496   elle           407      m       28.0

每个唯一男性用户的总播放次数

male_user_plays = male.groupby('users').plays.sum()
male_user_plays

users
0         3282
1        25329
2        51522
3         1590

每个性别的平均播放次数

Average Total Male Plays: 11880
Average Total Female Plays: 13104

在尝试 t 检验之前,我将每个 Series 转换为值列表:

female_plays_list = female_user_plays.values.tolist()
male_plays_list = male_user_plays.values.tolist()

对于 t 检验:

ttest_ind(female_plays_list, male_plays_list, equal_var=False)

结果让我感到困惑,因为输出看起来很不正常,我认为这不是由于两个样本大小的差异....

Ttest_indResult(statistic=-8.9617251652001002, pvalue=3.3195063228833119e-19)

是否有任何超出数组长度的原因可能导致此问题?

对 0-10000 之间的 100000000 个随机整数值的两个数组进行测试给出以下结果:

In []: try1 = np.random.randint(1, 10000, 100000000)

In []: try2 = np.random.randint(1, 10000, 100000000)

In []: ttest_ind(try1, try2, equal_var=False)
Out[]: Ttest_indResult(statistic=-0.67549204672468233, pvalue=0.49936320345035146)

并且长度不等给出以下内容:

In []: try1 = np.random.randint(1, 10000, 1000000)

In []: ttest_ind(try1, try2, equal_var=False)
Out[]: Ttest_indResult(statistic=-0.39754328321364363, pvalue=0.6909669583715552)

所以除非我在测试中忽略了一个洞察力或者你的数组更长,否则它必须是数组的特定值。