Какие методы доступны для объединения (или объединения) многих категорий в несколько с целью использования их в качестве входных данных (предиктора) в статистической модели?
Рассмотрим переменную, например, степень студента колледжа (дисциплина, выбранная студентом). Он неупорядочен и категоричен, но потенциально может иметь десятки различных уровней. Допустим, я хочу использовать майор в качестве предиктора в регрессионной модели.
Использование этих уровней для моделирования приводит к возникновению всевозможных проблем, потому что их так много. Для их использования была бы выброшена большая статистическая точность, а результаты трудно интерпретировать. Мы редко интересуемся конкретными специальностями - мы гораздо больше заинтересованы в широких категориях (подгруппах) основных специальностей. Но не всегда понятно, как разделить уровни на такие категории более высокого уровня или даже сколько категорий более высокого уровня использовать.
Для типичных данных я был бы рад использовать факторный анализ, матричную факторизацию или метод дискретного скрытого моделирования. Но майоры - это взаимоисключающие категории, поэтому я не решаюсь использовать их ковариацию для чего-либо.
Кроме того, я не забочусь о главных категориях самостоятельно. Я забочусь о создании категорий более высокого уровня, которые согласованы в отношении моего результата регрессии . В случае бинарного результата это предлагает мне что-то вроде линейного дискриминантного анализа (LDA) для генерации категорий более высокого уровня, которые максимизируют дискриминационную производительность. Но LDA - это ограниченная техника, и мне кажется, что грязные данные утащили меня. Более того, любое непрерывное решение будет трудно интерпретировать.
Между тем, что-то, основанное на ковариациях, например, анализ множественной корреспонденции (MCA), кажется мне подозрительным в этом случае из-за внутренней зависимости между взаимоисключающими фиктивными переменными - они лучше подходят для изучения нескольких категориальных переменных, а не нескольких категорий та же переменная.
изменить : чтобы быть понятным, речь идет о сворачивающихся категориях (не выбирая их), а категории являются предикторами или независимыми переменными. Оглядываясь назад, эта проблема кажется подходящим временем, чтобы «упорядочить их всех и позволить Богу разобраться в них». Рад видеть этот вопрос интересным для многих людей!
Ответы:
Если я правильно понял, вы представляете линейную модель, в которой один из предикторов является категоричным (например, майор колледжа); и вы ожидаете, что для некоторых подгрупп его уровней (подгрупп категорий) коэффициенты могут быть точно такими же. Поэтому, возможно, коэффициенты регрессии для математики и физики одинаковы, но отличаются от коэффициентов для химии и биологии.
В простейшем случае у вас была бы линейная модель «одностороннего ANOVA» с одним категориальным предиктором: где кодирует уровень категориальной переменной ( категория). Но вы можете предпочесть решение, которое объединяет некоторые уровни (категории) вместе, например,
Это говорит о том, что можно попытаться использовать штраф за регуляризацию, который оштрафует решения с разными альфа-значениями. Один штрафной термин, который сразу приходит на ум, этоЭто напоминает лассо и должно обеспечивать различий , а это именно то, что вы хотите: вы хотите, чтобы многие из них были равны нулю. Параметр регуляризации должен быть выбран с перекрестной проверкой.
Я никогда не имел дело с такими моделями, и первое, что пришло мне в голову, - это выше. Тогда я решил посмотреть, реализовано ли что-то подобное. Я сделал некоторые поиски Google , и вскоре понял , что это называется слияние категорий; поиск
lasso fusion categorical
даст вам много ссылок для чтения. Вот некоторые из них, которые я кратко рассмотрел:Герхард Тутц, Регрессия для категориальных данных, см. Стр. 175-175 в Google Книгах . Тутц упоминает следующие четыре статьи:
Лэнд и Фридман, 1997, слияние переменных: новый метод адаптивной регрессии сигнала
Bondell and Reich, 2009, Одновременный отбор факторов и уровни коллапса в ANOVA
Gertheiss and Tutz, 2010, Разреженное моделирование категориальных объясняющих переменных
Tibshirani et al. 2005, разреженность и гладкость с помощью слитого лассо несколько важны, даже если они не совсем одинаковы (речь идет о порядковых переменных)
Gertheiss and Tutz 2010, опубликованный в «Анналах прикладной статистики», выглядит как недавний и очень читаемый документ, содержащий другие ссылки. Вот его резюме:
Мне нравятся их лассо-подобные пути решения, которые показывают, как уровни двух категориальных переменных объединяются вместе, когда сила регуляризации увеличивается:
источник
Я боролся с этим в проекте, над которым я работал, и на данный момент я решил, что действительно нет хорошего способа объединить категории, и поэтому я пытаюсь использовать иерархическую / смешанную модель эффектов, где эквивалентом вашего майора является случайный эффект.
Кроме того, в подобных ситуациях кажется, что на самом деле нужно принять два смешанных решения: 1) как объединить категории, которые есть у вас, когда вы подходите под модель, и 2) какая объединенная категория становится «другой», когда вы по умолчанию включите любую новую майоры, которые кто-то придумывает после того, как вы подходите к своей модели. (Случайный эффект может обработать этот второй случай автоматически.)
Когда в слиянии есть какое-либо суждение (в отличие от полностью автоматизированных процедур), я скептически отношусь к «другой» категории, которая часто представляет собой сумку с категориями, в которой мало чего, а не какая-то принципиальная группировка.
Случайный эффект обрабатывает множество уровней, динамически объединяет («черпает силы») разные уровни, может предсказывать ранее невидимые уровни и т. Д. Одним из недостатков может быть то, что распределение уровней почти всегда считается нормальным.
источник
Один из способов справиться с этой ситуацией - перекодировать категориальную переменную в непрерывную, используя так называемое «целевое кодирование» (так называемое «ударное кодирование») [1]. Пусть будет входной переменной с категориальными уровнями , и пусть будет выходной / целевой / ответной переменной. Замените на , гдеZ z1,...,zK Y Z Impact(Z)
для непрерывного многозначных . Для двоичного значения используйте вместо просто .Y Y logit∘E E
В библиотеке category_encoders есть реализация Python [2].
Вариант под названием «ударное кодирование» был реализован в пакете R Vtreat [3] [4]. Пакет (и сам код воздействия) описан в статье этих авторов от 2016 года [5] и в нескольких сообщениях в блоге [6]. Обратите внимание, что текущая реализация R не обрабатывает полиномиальные (категориальные с более чем 2 категориями) или многовариантные (векторные значения) ответы.
источник
Если у вас есть вспомогательная независимая переменная, которую логично использовать в качестве привязки для категориального предиктора, рассмотрите возможность использования алгоритма оптимальной оценки Фишера, который связан с его линейным дискриминантным анализом. Предположим, что вы хотите отобразить специализацию колледжа в единую непрерывную метрику, и предположим, что надлежащим якорем является количественный тест SAT перед поступлением. Вычислите среднюю количественную оценку для каждого майора и замените майор этим средним значением. Вы можете легко распространить это на несколько якорей, создав несколько степеней свободы, с помощью которых можно обобщить основные.
Обратите внимание, что в отличие от некоторых предыдущих предложений, оптимальная оценка представляет собой подход к обучению без надзора, поэтому степени свободы (число параметров, оцениваемых по отношению к Y) немногочисленны и четко определены, что привело к правильному статистическому выводу (если частые, точные стандартные ошибки, достоверность (совместимость) интервалы и р-значения).
Мне очень нравится предложение о наказании по адресу https://stats.stackexchange.com/users/28666/amoeba @amoeba.
источник
В статье « Схема предварительной обработки для категориальных атрибутов с высокой степенью кардинальности в задачах классификации и прогнозирования » использует иерархическую структуру в атрибутах категории во вложенной «эмпирической байесовской» схеме на каждом пуле / уровне, чтобы отобразить категориальную переменную в вероятности апостериорного класса, которая может быть использован непосредственно или как вход в другие модели.
источник
Здесь есть несколько вопросов, и на некоторые из них задают и отвечают ранее. Если проблема заключается в том, что вычисление занимает много времени: есть несколько методов для решения этой проблемы, посмотрите крупномасштабную регрессию с разреженной матрицей признаков и статью Maechler and Bates .
Но вполне может быть, что проблема заключается в моделировании, я не уверен, что обычные методы обработки категориальных предикторных переменных действительно дают достаточные рекомендации при наличии категориальных переменных с очень многими уровнями, см. Этот сайт для тега
[many-categories]
. Есть, конечно, много способов, которые можно попробовать, один может быть (если это хорошая идея для вашего примера, я не могу знать, вы не сказали нам свое конкретное приложение), своего рода иерархическая категориальная переменная (переменные), то есть вдохновленная системой, используемой в биологической классификации, см. https://en.wikipedia.org/wiki/Taxonomy_(biology), Там индивид (растение или животное) классифицируется сначала по домену, затем по королевству, типу, классу, порядку, семье, роду и, наконец, по видам. Таким образом, для каждого уровня в классификации вы можете создать факторную переменную. Если ваши уровни, скажем, продукты продаются в супермаркете, вы можете создать иерархическую классификацию, начинающуюся с [продукты питания, кухонные принадлежности, другое], тогда продукты питания можно классифицировать как [мясо, рыба, овощи, крупы, ...] и скоро. Просто возможность, которая дает предварительную иерархию, конкретно не связанную с результатом.Но ты сказал:
Тогда вы можете попробовать слить лассо , увидеть другие ответы в этой теме, которые можно рассматривать как способ объединения уровней в более крупные группы, целиком основанные на данных, а не на предварительной организации уровней, как подразумевается в моем предложении об иерархической структуре. организация уровней.
источник