Esempio n. 1
0
def coefficient_variance(number_of_coefficient, y_arr, y_explained, x_matrix):
    """
    :param number_of_coefficient: number from range(n)
    :param y_arr: input y
    :param y_explained: y explained array
    :param x_matrix: x matrix from docs
    :return: variance of coefficient
    """
    variance_e_2 = rss(y_arr, y_explained) / (n - k)

    # (X^T * X)^-1
    mmatrix = linal.inv(numpy.dot(x_matrix.T, x_matrix))

    v_matrix = numpy.dot(variance_e_2, mmatrix)

    return v_matrix[number_of_coefficient][number_of_coefficient]
Esempio n. 2
0
                          data=df)
res = model_logit_1.fit()
print(res.summary())
loglikelihood_logit_1 = res.llf

# Проверьте значимость модели в целом

# Прогноз выживания по модели
y_estimate = [
    1 if math.exp(res.params[0] + res.params[1] * sex[i] +
                  res.params[2] * class_1[i] + res.params[3] * class_2[i]) > 1
    else 0 for i in range(len(sex))
]

ess_y = ess(survived, y_estimate)
rss_y = rss(survived, y_estimate)
k = 4  # кол-во коэффициентов (с учётом свободного)
n = len(survived)  # объём выборки

f_crit = f.ppf(0.95, k - 1, n - k)
f_real = ess_y / (k - 1) / (rss_y / (n - k))

if f_crit < f_real:
    print(
        'Отвергаем гипотзу о значимости модели регрессии в целом H0:(b1=b2=b3=b4=0)'
    )
else:
    print(
        'Принмаем гипотзу о значимости модели регрессии в целом H0:(b1=b2=b3=b4=0)'
    )
Esempio n. 3
0
                           file='data/4problem.csv')
x_3 = read_column_from_csv(column_number=1 + (variation - 1) * 4,
                           file='data/4problem.csv')
x_4 = read_column_from_csv(column_number=2 + (variation - 1) * 4,
                           file='data/4problem.csv')
y_1 = read_column_from_csv(column_number=3 + (variation - 1) * 4,
                           file='data/4problem.csv')

y_estimation = [
    coefficient_vector[0] + coefficient_vector[1] * x_2[i] +
    coefficient_vector[2] * x_3[i] + coefficient_vector[3] * x_4[i]
    for i in range(40)
]

ess_ur = ess(y_1, y_estimation)
rss_ur = rss(y_1, y_estimation)

# Fisher dist
f_crit = f.ppf(0.95, k - 1, n - k)
f_real = ess_ur / (k - 1) / (rss_ur / (n - k))

print('F (95%, k-1, n-4) is {}'.format(f_crit))
print('ess / (k - 1) / (rss / (n - k)) is {}'.format(f_real))

if f_crit < f_real:
    print(
        'Отвергаем гипотезу о значимости модели регрессии в целом (b1=b2=b3=b4=0)'
    )
else:
    print(
        'Принимаем гипотезу о значимости модели регрессии в целом (b1=b2=b3=b4=0)'