НачатьНачать бесплатно

Разброс вокруг тренда

Данные не обязательно должны быть строго линейными — в измерениях может присутствовать случайный разброс, который, в свою очередь, влияет на параметры модели. Этот разброс количественно выражается через «стандартную ошибку» и интерпретируется как «неопределённость» оценки параметра модели.

В этом упражнении вы воспользуетесь функцией ols из библиотеки statsmodels, чтобы построить модель и извлечь стандартную ошибку для каждого её параметра.

Это упражнение является частью курса

Введение в линейное моделирование на Python

Посмотреть курс

Инструкции к упражнению

  • Сохраните предварительно загруженные данные в DataFrame df, назначив столбцу x_data имя times, а столбцу y_datadistances.
  • С помощью model_fit = ols().fit() подберите линейную модель вида formula="distances ~ times" для data=df.
  • Извлеките оценку свободного члена model_fit.params['Intercept'] и стандартную ошибку свободного члена из model_fit.bse['Intercept'].
  • Повторите те же шаги для наклона, а затем выведите все 4 значения с понятными именами.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Store x_data and y_data, as times and distances, in df, and use ols() to fit a model to it.
df = pd.DataFrame(dict(____=x_data, ____=y_data))
model_fit = ols(____="distances ~ times", data=____).____()

# Extact the model parameters and their uncertainties
a0 = model_fit.____['Intercept']
e0 = model_fit.____['Intercept']
a1 = model_fit.____['times']
e1 = model_fit.____['times']

# Print the results with more meaningful names
print('Estimate    of the intercept = {:0.2f}'.format(____))
print('Uncertainty of the intercept = {:0.2f}'.format(____))
print('Estimate    of the slope = {:0.2f}'.format(____))
print('Uncertainty of the slope = {:0.2f}'.format(____))
Редактировать и запускать код