Традиционно статистики и эконометристы использовали статистические подходы для решения таких задач, как регрессия и классификация. Между статистическим подходом и машинным обучением (оптимизационный подход ссылка) есть много сходств и различий. Мы видели немного подхода ML ранее в ссылке выше.

В этом посте давайте взглянем на статистические модели линейной регрессии, используя популярную библиотеку на Python под названием statsmodels, которая была вдохновлена ​​языком статистического программирования R.

Прежде чем читать дальше, было бы здорово освежить в памяти приведенные ниже темы.

1) Подход на основе машинного обучения для регрессии

2) Проверка гипотез

3) Центральная предельная теорема (здесь мы ссылаемся на стандартную_ошибку)

Чтобы ознакомиться, код доступен по ссылке

Давайте воспользуемся теми же данными о рекламе и посмотрим, сможем ли мы на этот раз предсказать продажи на основе нескольких предикторов (переменных).

Давайте для начала выберем телевидение в качестве предиктора, прогнозируя продажи с использованием регрессии обычных наименьших квадратов (OLS).

Эта простая модель линейной регрессии объясняет 61,2 % (см. значение R-квадрата) общей дисперсии, что также означает, что около 38,8 % все еще необъяснимы. .

Мы видим, что p-значение, связанное с этим предиктором (TV) в продаже, близко к 0. Таким образом, модель довольно уверенно оценивает этот коэффициент.

Чтобы понять это за кулисами, проводится проверка гипотез. Нулевая гипотеза здесь заключается в том, что между переменной TV и продажами нет существенной линейной зависимости, коэффициент (B1) равен 0. После завершения проверки гипотезы мы видим, что значение p очень низкое, и, следовательно, мы отвергаем нулевую гипотезу.

Мы узнали о p-значениях и коэффициентах. Что это за t-статистика? Это мера количества стандартных отклонений, которые оценивают (коэффициент B1 со шляпой) от нуля.

t = (B1_hat — 0)/стандартная_ошибка(B1_hat)

Standard_error — это стандартное отклонение этой тестовой статистики.

Чем больше значение t-статистики, тем дальше коэффициент от 0 и маловероятно, что нулевая гипотеза верна, что подтверждает тот факт, что телевидение является очень хорошим предсказателем продаж на основе данных о рекламе.

Это достаточно хорошо?

давайте попробуем добавить в модель еще одно переменное радио.

вуаля! хорошее улучшение R-квадрата, и теперь он приближается к 89,7%.

Давайте теперь добавим все три предиктора

Это много цифр. Мы поймем важные.

Здесь мы видим довольно низкие p-значения для телевидения и радио. Принимая во внимание, что газета имеет высокое значение p, что делает газету явно незначительной, поэтому мы не можем отвергнуть нулевую гипотезу! (как говорят статистики, газета как предсказатель продаж не годится).

В ПОРЯДКЕ. Наша модель сейчас хороша?

Да; но какой смысл добавлять газету в модель, если она не добавляет никаких улучшений. Конечно. Мы можем считать телевидение и радио хорошими предсказателями продаж. Если бы мне пришлось проводить какую-либо маркетинговую кампанию, я бы сделал ставку на эти два канала. Хорошо, подождите! Насколько вы уверены в этой модели, если это правильно?

Что ж, мы изучили t-статистику и получили p-значения отдельных предикторов. Разве этого недостаточно?

Ну может быть, просто пока мало :) Почему? что говорит индивидуальный коэффициент? например, коэффициент TV в качестве предиктора указывает, что из 100 раз 95 раз мы будем наблюдать, что истинный коэффициент TV (то есть B1 без шляпы!) находится в доверительном диапазоне [0,043 0,049] для B1_hat. Так почему же это проблема сейчас? Ну, есть контраргумент, что в 5% случаев истинный коэффициент будет принимать эти экстремальные значения. Ну и что ?

Добавление дополнительных переменных/предикторов только усугубит этот эффект на 5% * 5% * … и так далее. Поэтому, когда задействовано больше предикторов, индивидуальное значение p не дает нам абсолютного способа оценить нашу модель в целом. Поэтому нам нужна надежная статистика, а не t-статистика, чтобы проверить, достаточно ли хороша эта модель.

На помощь приходит Спаситель F-статистика. F-статистика вычисляется, как показано ниже.

F = ((TSS / RSS)/p)/(RSS/(n-p-1)))

Где,

TSS => Общая сумма квадратов или общая дисперсия

RSS =› необъяснимая сумма квадратов (также 1 — R-квадрат)

n =› количество наблюдений

p =› количество используемых предикторов

В нашем случае F-статистика равна 570, что значительно больше 1. Следовательно, мы можем с уверенностью заключить, что нулевая гипотеза (B1_hat = B2_hat = … = Bp_hat = 0) неверна и может быть отвергнута.

Примечание: когда p > n, линейная регрессия не работает с методом наименьших квадратов, и даже F-статистика не имеет значения. В этом случае мы займемся этим позже с помощью других средств, таких как уменьшение размерности (подробнее об этом позже).

Зачем использовать линейную модель, а когда ее не использовать?

Линейная модель исходит из предположения о линейности, согласно которому истинное распределение является линейным по своей природе по отношению к предикторным переменным.

В реальном мире в основном предположение о линейности может не сработать. Тогда зачем использовать линейную модель?

Это легко объяснить, а также неплохая модель для начала, если только предположения о линейности не нарушаются.

В машинном обучении существует теорема о бесплатном обеде, которая гласит, что не существует единственной модели серебряной пули, которая могла бы решить все проблемы. Таким образом, проблемное пространство довольно велико, и для его упрощения нам нужно сделать некоторые предположения о мире. Если эти предположения жесткие, наша модель может не соответствовать действительности (обычно это называется предвзятостью). Если мы сделаем модели сверхгибкими, это может привести к сложности и переоснащению (если вы зададите вопрос, который увидела модель, она ответит на него правильно, но помимо этого, будет тяжело). Переоснащение приводит к высокой дисперсии. Таким образом, нужно найти компромисс между смещением и дисперсией, чтобы построить достаточно хорошую модель, которая резонирует с реальной системой.

Вернемся к задачам с линейными моделями:

1) Предположение о линейности становится ложным — что, если базовые данные не являются действительно линейными, и в этом случае линейная модель даст нам прямую линию, и будут большие остаточные ошибки. Чтобы противостоять этому, у нас есть варианты включения нелинейных предикторов, таких как TV ** 2 или sqrt (TV), в зависимости от того, что лучше для нас, или попробовать другие модели, такие как древовидные или другие нелинейные подходы.

2) термины ошибок коррелированы — обычно это случай данных временных рядов, которые автокоррелированы. Это означает, что вчерашняя стоимость акций будет определять, например, сегодняшнюю стоимость акций. Иногда мы видим такие закономерности за пределами данных временных рядов, например, в опросах (где одни и те же люди из семьи, как правило, имеют схожие пищевые привычки, что может вызвать некоторую неожиданную корреляцию). В общем случае тест Durbin Watson показывает наличие автокорреляции в погрешностях. В нашем случае у нас есть значение 2 и, следовательно, таких проблем нет.

3) паттерн в терминах ошибок — график ошибок должен быть равномерно распределен и не должно быть никаких лежащих в его основе паттернов, иначе мы получим ситуацию, известную как гетероскедастичность (скороговорка!). Этому можно противодействовать, применяя преобразования, такие как log или sqrt, к переменной ответа Y (продажи в этом примере).

4) Выбросы. Они склонны смещать наиболее подходящую линию вверх или вниз. Мы могли бы противодействовать этому, используя методы вменения или отбросить эти точки данных в зависимости от проблемы, которую мы пытаемся решить.

5) Высокие точки влияния — экстремальные значения предикторов (например, экстремальные значения для телевидения или радио здесь, в этой задаче). Иногда это становится затруднительно, когда телевизор или радио по отдельности могут не отличаться от остальных, но их комбинация может иметь экстремальное значение. Может быть определено количественно с помощью статистики кредитного плеча

6) Коллинеарность. Если сами предикторы коррелируют друг с другом, то результат не может быть легко точно объяснен индивидуальным эффектом предикторов. Например, если мы заинтересованы в прогнозировании переменной ответа, называемой индекс_здоровья, на основе роста, веса и ИМТ, то мы видим, что переменные вес/рост сильно коррелируют с ИМТ и, следовательно, затрудняют прогнозирование индекса здоровья как линейной комбинации этих значений. 3 предиктора. Чтобы противостоять этому, мы могли бы использовать таблицу корреляции, чтобы найти эту нежелательную корреляцию между переменными-предикторами. Но проблема усложняется, если коррелируют несколько переменных (более двух переменных). Вот тут-то нам и приходит на помощь VIF (фактор инфляции дисперсии), чтобы обнаружить такую ​​проблему. Однако для исправления нам нужно отбросить одну из переменных / уменьшить размерность до гораздо более простых представлений (подробнее об этом позже).

VIF - это отношение дисперсии коэффициента (скажем, TV) при подборе полной модели к дисперсии (TV) при подборе только с ней. Мы увидим, как мы можем вычислить VIF, используя библиотеку statsmodels, как показано ниже.

Здесь, игнорируя первую запись, остальные (телевидение, радио и газета) имеют значения VIF ~ 1, и, следовательно, в наших рекламных данных нет проблемы мультиколлинеарности. Эти значения были бы экстремальными, если бы в противном случае существовала проблема мультиколлинеарности.