Как сделать предсказательный интервал для одного значения в Python?

В задании по линейной регрессии из заданного дата-сета требуется предсказать значение mpg основываясь на заданном horsepower = 98, что я сделал следующим образом:

pred_arr = np.array([98]).reshape(1, -1)
k = mdl.predict(pred_arr)
print('mpg associated with a horsepower of 98 is', *k)

А затем для этого же значения horsepower нужно составить предсказательный интервал.

for i in range(len(y)):
    if float(y[i]) == 98.0:
      xxx.append(x[I])
    for i in xxx:
      sum_errs += (i-k)**2
    stdev = sqrt(1/(len(x)-2) * sum_errs)
    interval = 1.96 * stdev
    lower, upper = k - interval, k + interval

Какой-то интервал у меня получился, но с ответом совершенно не сходится.


Ответы (1 шт):

Автор решения: passant

А какую формулу вы пытались изобразить при рассчете "предсказательного интервала"? Вот тут смотрите: http://sun.tsu.ru/mminfo/2016/Dombrovski/book/chapter-2/chapter-2-4.htm, ф-ла (2.47) и далее. Кстати, "предсказательный интервал" - на самом деле - доверительный интервал прогноза - задается исходя из значения уровня значимости, про который вы не словом не обмолвились. Так что проблемы в расчетах могут возникнуть из-за выбранной вами константы.

→ Ссылка