p-value (Стьюдента) для оценки статистической значимости коэффициентов регрессии без библиотеки scipy.stats
Как на Python получить p-value (Стьюдента) для оценки статистической значимости коэффициентов регрессии без библиотеки scipy.stats? Не могу сделать код.
Ответы (2 шт):
Автор решения: passant
→ Ссылка
Ответ наверное дял вас в чем-то неожиданный, но все-таки напишу.
Если очень хочется получить "оценку статистической значимости коэффициентов регрессии без библиотеки scipy.stats", то надо взять учебник, выписать формулу, по которой эта оценка считается и ее запрограммировать. Все, никаких хитрых хитростей.
Теоретически у вас могут возникнуть при этом два вопроса -
- найти книги с такими формулами
- написать простенькие программы по этим формулам
В каком из этих вопросов у вас возникли трудности?
Автор решения: Viktor Andriichuk
→ Ссылка
Решение:
from scipy import stats
MSE = (sum((y-y_pred)**2))/(len(X)-len(X[0]))
var_b = MSE*(np.linalg.inv(np.dot(X.T,X)).diagonal())
sd_b = np.sqrt(var_b)
ts_b = theta / sd_b
p_values = [2*(1-stats.t.cdf(np.abs(i),(len(X)-1))) for i in ts_b]
sd_b = np.round(sd_b,3)
ts_b = np.round(ts_b,3)
p_values = np.round(p_values,3)
coeff = np.round(theta,4)
myDF3 = pd.DataFrame()
myDF3["Coefficients"],myDF3["Standard Errors"],myDF3["t values"],myDF3["p_values"] = [coeff,sd_b,ts_b,p_values]
print(myDF3)