Узнал я о линейной регрессии после того, как встретил деревья, нейронные сети. Когда мы с другом повторно изобретали велосипед, обучая с нуля word2vec и использовали логистическую регрессию с векторами из обученной модели для задачи NER – я активно кричал о том, что линейная регрессия – прошлый век, никому она уже совсем не нужна. Да, проблема была в том, что я совсем не разобрался в вопросе и полез в бой. Но практику в универе нужно было как-то закрывать. После семестра мат. статистики ко мне пришло прозрение. В статье мы попробуем применить линейную регрессию к классическим данным с помощью statsmodels и посмотреть на все значения summary. Стоит упомянуть, что линейная регрессия из sklearn ничем не хуже, но в statsmodels есть функция summary, где уже посчитаны все необходимые коэффициенты для диагностики. Statsmodels – это библиотека Python, которая предоставляет возможность оценить множество различных моделей, а также провести статистические тесты и исследования данных. Остатки - это то же самое, что и ошибка, т.е. отклонение предсказания от истинного значения. В статьях приведен термин remains. В тексте может встречаться цифра из списка (в круглых скобках), представленного ниже. Таким образом я отсылаю к источнику. Там вы найдете интересующую вас информацию, которая по тем или иным причинам не приведена здесь. Это в основном является переводом статьи (в источниках вторая ссылка) с небольшими пояснениями. Оригинальные статьи/справочники, которые очень помогли мне разобраться с вопросом. Статья кратко расшифровывает summary. Статья глубоко описывает summary. Отличный курс по основам математической статистики, брал информацию по условиям применения линейной регрессии. Симулятор, чтобы посмотреть на поведение ошибки линейной регрессии в зависимости от характера данных. Пример применения OLS из документации statsmodels (в частности там есть про мультиколлинеарность, как оно влияет на число обусловленности). Статья, откуда взяты виды covariance type в statsmodels. Из этой статьи взял пояснения по ковариационной матрице параметров. Отсюда взял пояснения по ковариации признаков линейной регрессии (здесь в целом пояснение про ковариационную матрицу). Здесь можно найти описание используемого датасета Guerry. Используется классический датасет Guerry (9). В данном случае мы будем использовать переменные Region, Literacy, Wealth для предсказания зависимой переменной Lottery. Про загадочное 'Lottery ~ Literacy + Wealth + Region' и как это может угрожать вашему психическому здоровью можно почитать здесь. Графики зависимостей предикторов от Lottery: Слабая экзогенность. Т.е. переменная является фиксированным значением, а не случайной величиной и не подвергнута ошибкам измерения. Линейность признаков к зависимой переменной. Это не такое сильное условие, учитывая, что мы можем преобразовывать и/или комбинировать наши фичи. Гомоскедастичность. Разные ответы модели выдают одну и ту же ошибку из нормального распределения, с центром в 0. Часто в практике она гетероскедастична.  Под ‘разными ответами модели’ имеется ввиду ее отклик на разные данные. Игрушечный пример: представим себе линейную регрессию с одним признаком для описания квадратичной зависимости. Нетрудно заметить, что чем больше значение признака, тем больше будет ошибка. Она будет выглядеть ожидаемо плохо: Это говорит о том, что ошибка гетероскедастична. Независимость ошибок.  В данном случае предполагается, что два вектора ошибки, где один из них смещен на один элемент влево, не коррелируют друг с другом. Это требование проверяется с помощью критерия Durbin-Watson. Отсутствие мультиколлинеарности в предикторах. Мультиколлинеарность - термин для описания двух или более независимых переменных, которые сильно связаны друг с другом и плохо влияют на наш таргет из-за избыточности. Вследствие мультиколлинеарности признаков число обусловленности сильно возрастает. Если требования 2, 3, 4 не выполнены, то применение линейной регрессии не оправдано (скорее всего, зависимость нелинейная) (3). Также вполне вероятен случай, когда на одном отрезке модель объясняет данные хорошо, а на остальных модель не работает. В случае невыполнения 5-го пункта можно, например, применить регуляризацию. Summary в statsmodels можно разделить на четыре части - описание данных и модели, результаты модели (насколько хорошо модель описывает данные), коэффициенты модели, анализ остатков.  Dep. Variable - имя зависимой переменной. Model - вид обученной модели. Method - используемый метод обучения. Date, Time - дата обучения No. Observations - количество наблюдений в выборке (n). Df Residuals - степень свободы (количество наблюдений (n) - количество переменных (k) - 1). Df Model - количество переменных (регрессоров) (k). Covariance Type - по умолчанию используется ковариация, которая неустойчива к гетероскедастичности ошибки. Чтобы воспользоваться устойчивой версией, необходимо передать  cov_type=HC0/HC1/HC2/HC3 (6). Используется для построения матрицы ковариации параметров модели (чтобы её посмотреть, можно вызвать функцию .cov_params()). На диагонали матриц будет стоять дисперсия оценок коэффициентов, а числа вне главной диагонали равна их ковариациям (7). С помощью этой матрицы мы можем сделать вывод о линейной зависимости коэффициентов регрессии друг от друга (8). R-squared - сколько процентов дисперсии зависимой переменной объяснено вариацией признаков. где: — предсказание нашей модели, — это среднее по нашему таргету,  — наш таргет. Adj. R-squared - та же метрика, но со штрафом за большое количество зависимых переменных. При добавлении новых признаков значение R-Squared будет таким же или расти, даже если они совсем не влияют на результат. Данная метрика штрафует за использование каждого дополнительного признака в модели. F-statistic - критерий Фишера - статистика, значение которой необходимо для проверки гипотезы о равенстве дисперсий. В данном случае сравнивается модель с нулевыми параметрами (кроме интерсепта) с текущей. где Prob. (F-statistic) - вероятность того, что коэффициенты при всех переменных равны нулю (кроме интерсепта). Log-likelihood - насколько хорошо данные описываются моделью. Википедия говорит: Важно понимать, что по абсолютному значению правдоподобия нельзя делать никаких вероятностных суждений. Правдоподобие позволяет сравнить несколько вероятностных распределений с разными параметрами и оценить в контексте какого из них наблюдаемые события наиболее вероятны.  То есть абсолютные значения можно сравнивать между моделями. Мы функцию максимизируем - значит чем больше значение, тем лучше модель описывает данные.  - функция распределения вероятностей стандартного нормального распределения. AIC BIC - используется для сравнения моделей. Как таковое значение не несёт в себе никакой информации, его можно использовать как критерий для отбора модели, который определяет на сколько сильно модель переобучена. Чем меньше значение - тем лучше модель. BIC отличается от AIC тем, что он больше штрафует за дополнительные (и не влияющие ни на что) параметры модели. - значение функции правдоподобия (likelihood), — количество наблюдений, —количество параметров (предикторов). Intercept - все переменные обнуляются и подбирается константа, наилучшим образом описывающая данные. Все коэффициенты можно вычислить по формуле: где — параметры модели, — матрица признаков, — наш таргет. Здесь Region была строкой - её statsmodel представил с помощью one hot encoding Коэффициент - если отрицательный, то при росте переменной таргет уменьшается. std err - дисперсия коэффициента по точкам данных. Вычисляется с помощью матрицы ковариаций по параметрам модели: где — среднеквадратичная ошибка (MSE) остатков. Дисперсия каждого из коэффициентов будет стоять на диагонали данной матрицы. t - статистика t-Стьюдента, чем больше — тем лучше измерен коэффициент (чем меньше стандартное отклонение, тем лучше коэффициент описывает зависимость). Обычно t-критерий позволяет нам оценить важность различных предикторов, предполагая, что остатки модели нормально распределены около нуля. Если остатки не ведут себя таким образом, то это говорит о наличии некоторой нелинейности между переменными и о том, что их t-тесты не следует использовать для оценки важности отдельных предикторов. Рассчитывается следующим образом: — std err -го коэффициента. P>|t| - если < 0.05, то гипотеза о значимости коэффициента принимается. Например, переменная Literacy не влияет на зависимую переменную Loterry с вероятностью 37.8% и наши результаты получены случайно. Доверительные интервалы коэффициента. Меньший доверительный интервал предполагает, что мы уверены в значении оцениваемого коэффициента или постоянного члена. И наоборот. В данном случае показываются значения, при которых гипотеза о значимости коэффициента не будет отвергнута. Рассчитывается следующим образом: где — std err i-го коэффициента, — критическое значение t-Стьюдента, перед или после которого гипотеза отвергается (при заданном уровне значимости (обычно 5%). Omnibus описывает нормальность распределения наших остатков (остатки необъяснённой дисперсии), используя в качестве измерений перекос (skew) (коэффициент симметрии распределения) и эксцесс (kurtosis) (мера остроты случайной величины в горбу). 0 означает полную нормальность. Prob (Omnibus) - это статистический тест, измеряющий вероятность нормального распределения остатков. Значение 1 означает совершенно нормальное распределение. Skew (Перекос) - это мера симметрии распределения остатков, где 0 означает идеальную симметрию. Рассчитывается следующим образом: Kurtosis (Эксцесс) - измеряет остроту распределения остатков (в горбу) или его концентрацию около 0 на нормальной кривой. Более высокий эксцесс означает меньшее количество выбросов. Рассчитывается следующим образом: Durbin-Watson - это критерий для проверки наличия автокорреляции (спасибо @promsoftза поправку) При отсутствии автокорреляции значение критерия находится между 1 и 2. Рассчитывается следующим образом: На следующих графиках приведены нормальное значение критерия (значение критерия между 1 и 2), и граничные значения (около 0 и около 4) . В заголовке указано значение коэффициента. Ошибка представляет собою прямую линию, т.е. вектор ошибки коррелирует с собой же со сдвигом влево. В данном случае на графике изображена функция вида . Jarque-Bera (JB) и Prob (JB) - альтернативные методы измерения того же значения, что и Omnibus и Prob (Omnibus), с использованием асимметрии (перекос) и эксцесса. Нулевая гипотеза – распределение является нормальным, асимметрия равна нулю, а эксцесс равен трем. При небольших выборках тест Jarque-Bera склонен отклонять нулевую гипотезу когда она верна. где— перекос, — эксцесс. Cond. No (число обусловленности) — это мера чувствительности нашей модели по отношению к входящим данным. То есть при малейшем изменении данных коэффициенты (соответственно и отклик модели) сильно меняется (5). Мультиколлинеарность следует из большого числа обусловленности.  Приблизительно вычисляется c помощью собственных значений матрицыследующим образом: После того, как вы познали Дзен, предлагаю пути дальнейшего копания: Логистическая регрессия; GLM - обобщение линейной регрессии; Байесовская линейная регрессия; Факторный анализ. Пожалуйста, если есть какие-то неточности, ошибки, дополнения и т.д. — дайте знать, сделаем статью лучше и интереснее!