我正在使用t
和z
进行一些统计,z
工作正常,但是当我使用AttributeError
的{{1}}运行时,特别是:t
现在,这是给我这个错误的代码:
AttributeError: 'float' object has no attribute 'sf'
当然, if n >= 30: #i've tried with n being an int and float, error still
z()
else:
gl = n - 1
t()
t = ((xmuestral - mu) / (desv / (math.sqrt(n)))) #i've tried making this into int, error still
p_value = t.sf(t, gl)
,xmuestral
,mu
和desv
都是浮点数以获得准确的结果,而n
是浮点数,无论是浮点数还是整数现在,我遇到了同样的问题,如果我尝试将所有内容都转换为Integer,现在它只会抛出gl
老实说,我被卡住了,我不知道如何使它工作
答案 0 :(得分:2)
t是浮点数,因此您不能调用t.sf。命名很重要。
>>> from scipy import stats
>>> import math
>>> mu = 5
>>> desv = 0.03
>>> n = 8
>>> xmuestral = 5.1
>>> s = ((xmuestral - mu) / (desv / (math.sqrt(n))))
>>> pval = stats.t.sf(s, n-1)
>>> pval
1.5749970000865015e-05
备注:另外,似乎您也正在使用t作为函数。这可能不是一个好习惯。