Я пытался написать код для вычисления распределения хи-квадрат для гауссовской функции, и я столкнулся с досадной ошибкой типа, которую не знаю, как пройти.Могу ли я найти решение для устранения ошибки типа?Я пытался избежать доступа к каждому элементу массива и преобразования этих элементов в другой тип данных, о котором идет речь, но это, похоже, не помогло, также я пытался использовать непустые массивы для выполнения этой работы.
def make_gauss(N = random.random(), sigma = random.random(), mu = random.random()):
return (lambda x: N/(sigma * (2*numpy.pi)**.5) *
numpy.e ** (-(x-mu)**2/(2 * sigma**2)))
def gauss_chi2_generate(gauss_observed_values = [], gauss_expected_values = []):
""" Computes the Gaussian for Chi2"""
############################################################################
t_s = 0
t_g_s = 0
gauss_observed_values.append(make_gauss())
gauss_expected_values.append(make_gauss())
g_o_v = np.array(gauss_observed_values)
g_e_v = np.array(gauss_expected_values)
z_e_o_v = zip(g_o_v, g_e_v)
#############################################################################
for i in range(0,12):
""" Equation for Chi-Squared calculation"""
t_g_s+=((g_o_v[i])-(g_e_v[i]))**2/ g_e_v[i]
print("Observed Values ", g_o_v)
print("Expected Values" , g_e_v)
df=len(g_o_v)-1
print("Our goodness of fit for our linear function", stats.chi2.cdf(t_g_s,df))
return t_g_s
Вывод:
Traceback (most recent call last):
File "ChiSquaredFixed.py", line 82, in <module>
gauss_chi2_generate()
File "ChiSquaredFixed.py", line 67, in gauss_chi2_generate
t_g_s+=((g_o_v[i])-(g_e_v[i]))**2/ g_e_v[i]
TypeError: unsupported operand type(s) for -: 'function' and 'function'