Неподдерживаемый тип операнда в вычислении хи-квадрат? - PullRequest
0 голосов
/ 19 июня 2019

Я пытался написать код для вычисления распределения хи-квадрат для гауссовской функции, и я столкнулся с досадной ошибкой типа, которую не знаю, как пройти.Могу ли я найти решение для устранения ошибки типа?Я пытался избежать доступа к каждому элементу массива и преобразования этих элементов в другой тип данных, о котором идет речь, но это, похоже, не помогло, также я пытался использовать непустые массивы для выполнения этой работы.

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'

...