Полное раскрытие: это домашнее задание. Я включил ссылку на набор данных ( http://www.bertelsen.ca/R/logistic-regression.sav )
Моя цель - максимально повысить прогноз неплательщиков кредитов в этом наборе данных.
Каждая модель, которую я придумала до сих пор, предсказывает> 90% неплательщиков, но <40% неплательщиков, в целом эффективность классификации составляет ~ 80%. Итак, мне интересно, есть ли эффекты взаимодействия между переменными? В рамках логистической регрессии, кроме тестирования каждой возможной комбинации, есть ли способ определить потенциальные эффекты взаимодействия? Или, альтернативно, способ повысить эффективность классификации неплательщиков.
Я застрял, любые рекомендации будут полезны при выборе слов, R-кода или синтаксиса SPSS.
Мои основные переменные описаны на следующей гистограмме и диаграмме рассеяния (за исключением дихотомической переменной)
Описание основных переменных:
age: Age in years
employ: Years with current employer
address: Years at current address
income: Household income in thousands
debtinc: Debt to income ratio (x100)
creddebt: Credit card debt in thousands
othdebt: Other debt in thousands
default: Previously defaulted (dichotomous, yes/no, 0/1)
ed: Level of education (No HS, HS, Some College, College, Post-grad)
Дополнительные переменные являются просто преобразованиями вышеупомянутого. Я также попытался преобразовать несколько непрерывных переменных в категориальные переменные и внедрить их в модель, но не повезло.
Если вы хотите быстро вставить его в R, вот оно:
## R Code
df <- read.spss(file="http://www.bertelsen.ca/R/logistic-regression.sav", use.value.labels=T, to.data.frame=T)
источник
Ответы:
В несбалансированных наборах данных, таких как этот, вы обычно можете улучшить производительность классификации, отказавшись от использования установленной вероятности .5 в качестве вашей точки отсечения для классификации случаев по умолчанию и по умолчанию. Например, я получаю правильные показатели классификации 0,88 и 0,58 с точкой отсечения 0,4 для глм со всеми взаимодействиями 2-го порядка. (Что, вероятно, приводит к переоснащению и, похоже, имеет некоторые проблемы с рангами, но это другая история.)
Код:
частичный вывод:
источник
Я не эксперт по логистической регрессии, но разве это не проблема несбалансированных данных? Вероятно, у вас гораздо больше неплательщиков, чем неплательщиков, что может изменить прогноз, чтобы лучше справляться с большим классом. Попробуйте выкинуть несколько неплательщиков и посмотреть, что получится.
источник
В логистической регрессии, сильно искаженных распределениях исходных переменных (где гораздо больше не событий к событиям или наоборот), необходимо скорректировать точку отсечения или триггер вероятности, но это не окажет большого влияния на общую классификацию efficieny. Это всегда будет оставаться примерно одинаковым, но вы в настоящее время недооцениваете события, так как «случайная» вероятность в таком наборе данных всегда повышает вероятность того, что вы классифицируетесь как не-события. Это должно быть скорректировано для. На самом деле, в такой ситуации нередко наблюдается снижение общей эффективности классификации, поскольку ранее она была раздута вследствие просчета из-за случайности.
Подумайте об этом так: если у вас есть событие, когда 90% этого не делают, а 10% делают это, то, если вы поместите всех в группу «не делайте этого», вы автоматически получите 90% прав, и это был даже не пытаясь, просто чистый шанс, раздутый от асимметрии его распределения.
Проблема взаимодействий не связана с этим перекосом и должна основываться на теории. Скорее всего, вы всегда будете улучшать классификацию, добавляя дополнительные термины, в том числе просто добавляя взаимодействия, но вы делаете это, часто перегружая модель. Затем вы должны вернуться и быть в состоянии интерпретировать это.
Аналитик Matt P Data, Университет Иллинойса, Урбана Шампейн
источник
Вы можете просто попытаться включить все эффекты взаимодействия. Затем вы можете использовать L1 / L2-регуляризованную логистическую регрессию, чтобы минимизировать перенастройку и воспользоваться любыми полезными функциями. Мне очень нравится пакет glmnet Хасти / Тибширани (http://cran.r-project.org/web/packages/glmnet/index.html).
источник
Я знаю, что ваш вопрос касается логистической регрессии и поскольку это домашнее задание, поэтому ваш подход может быть ограничен. Однако, если вы заинтересованы во взаимодействиях и точности классификации, может быть интересно использовать что-то вроде CART для моделирования этого.
Вот некоторый код R для создания основного дерева. Я установил rpart на фрейме данных enire здесь. Возможно, не самый лучший подход без предварительных знаний и метода перекрестной проверки:
Я не уверен сразу, как составить классификационную таблицу. Это не должно быть слишком сложно исходя из прогнозируемых значений объекта модели и исходных значений. У кого-нибудь есть какие-нибудь советы здесь?
источник
predict
метод прогнозирования,table(originalClasses,predictedClasses)
для построения таблицы. Я пробовал RF (обычно он имеет точность, как в переоборудованной CART, но не переоснащение), и результат был не намного лучше, чемglm
.