“ inf”对scipy.stats.f_oneway中的F值意味着什么?

时间:2018-08-01 16:03:20

标签: python pandas scipy statistics anova

我进行了单向方差分析,有些组的F值使用“ inf”,p值使用“ 0.000000e + 00”。这是否意味着差异很大?

我使用groupby分离了数据帧,并循环了示例代码:

from scipy import stats

c_jobs_anova = []

for name_group in c_jobs.groupby(['Name']):
    samples = [condition[1] for condition in name_group[1].groupby('Condition')['Value']]
    f_value, p_value = stats.f_oneway(*samples)
    print('Group: {}, F value: {:.3f}, p value: {:.3f}'.format(name_group[0], f_value, p_value))
    c_jobs_anova.append((name_group[0], f_value, p_value))

结果:

enter image description here

1 个答案:

答案 0 :(得分:0)

是的,F统计量的非常大的值表示很高的显着性,如p表示为0所证明的那样。在数学上,如果没有组内可变性(例如,

>>> stats.f_oneway([2, 2, 2], [1, 1, 1])
F_onewayResult(statistic=inf, pvalue=0.0)

如果组内变异性与组间变异性相比非常小,则导致数值溢出,因此也可以得到此结果。

>>> stats.f_oneway([2, 2, 2], [1, 1, 1.00000001])
F_onewayResult(statistic=inf, pvalue=0.0)