Есть несколько постов о том, как выбирать функции. Один из методов описывает важность функции на основе t-статистики. В R, varImp(model)
примененном к линейной модели со стандартизованными характеристиками, используется абсолютное значение t-статистики для каждого параметра модели. Итак, в основном мы выбираем функцию на основе ее t-статистики, то есть, насколько точным является коэффициент. Но говорит ли точность моего коэффициента что-то о прогнозирующих способностях функции?
Может ли случиться так, что моя функция имеет низкую t-статистику, но все же повысит (скажем, точность) модели? Если да, то когда нужно исключить переменные на основе t-статистики? Или это просто отправная точка для проверки предсказательных способностей неважных переменных?
varImp()
она предназначена для информационной или диагностической функции и не используется напрямую для выбора или исключения функций.Ответы:
Т-статистика может почти ничего не сказать о прогнозирующей способности объекта, и их не следует использовать для того, чтобы отсеивать предиктор или допускать предикторы в прогностическую модель.
Значения P говорят, что ложные характеристики важны
Рассмотрим следующую настройку сценария в R. Давайте создадим два вектора, первый - просто случайных бросков монет:5000
Второй вектор - наблюдений, каждое из которых случайным образом отнесено к одному из случайных классов одинакового размера:5005000 500
Теперь мы вписываемся линейная модель для прогнозирования с
y
учетомrand.classes
.Правильное значение для всех коэффициентов равна нулю, ни один из них не имеют никакого предсказательной силы. Тем не менее, многие из них значимы на уровне 5%
На самом деле, мы должны ожидать, что около 5% из них будут значительными, даже если у них нет предсказательной силы!
P-значения не могут обнаружить важные функции
Вот пример в другом направлении.
Я создал два коррелированных предиктора, каждый из которых обладает предсказательной силой.
Значения p не могут определить предсказательную силу обеих переменных, поскольку корреляция влияет на то, насколько точно модель может оценить два отдельных коэффициента по данным.
Статистические данные не предназначены для того, чтобы рассказать о предсказательной силе или важности переменной. Это злоупотребление этими измерениями, чтобы использовать их таким образом. Есть намного лучшие варианты, доступные для выбора переменной в прогнозирующих линейных моделях, рассмотрите использование
glmnet
.(*) Обратите внимание, что здесь я перебиваю перехват, поэтому все сравнения проводятся с нулевой базовой точкой, а не с групповым средним значением первого класса. Это было предложение @ whuber.
Так как это привело к очень интересному обсуждению в комментариях, оригинальный код был
и
что привело к следующей гистограмме
источник
lm(y ~ rand.class - 1)
. Это не меняет достоверность всех ваших замечаний (+1). Чтобы быть еще более убедительным, сбалансируйте размеры группы:rand.class <- cut(1:N, N.classes)
На t-статистику влияют размер эффекта и размер выборки. Возможно, размер эффекта не равен нулю, но размер выборки недостаточно велик, чтобы сделать его значительным.
В вашем случае любая функция с ненулевым эффектом улучшит производительность, но у вас может не хватить данных, чтобы сделать значение p этой функции значимым.
источник