1 SAS/STAT. HOME WORK 3. LOGIT ФИО DATA Набор данных Develop.csv – информация о клиентах банка и факте покупки страхового продукта – этот факт мы будем прогнозировать. Variable ATM ATMAmt AcctAge Age Branch CC CCBal CCPurc CD CDBal CRScore CashBk Checks DDA DDABal Dep DepAmt DirDep HMOwn HMVal ILS ILSBal IRA IRABal InArea Income Ins Inv InvBal LOC LOCBal LORes MM Label ATM ATM Withdrawal Amount Age of Oldest Account Age Branch of Bank Credit Card Credit Card Balance Credit Card Purchases Certificate of Deposit CD Balance Credit Score Number Cash Back Number of Checks Checking Account Checking Balance Checking Deposits Amount Deposited Direct Deposit Owns Home Home Value Installment Loan Loan Balance Retirement Account IRA Balance Local Address Income TARGET Investment Investment Balance Line of Credit Line of Credit Balance Length of Residence Money Market 2 Variable MMBal MMCred MTG MTGBal Moved NSF NSFAmt POS POSAmt Phone Res SDB Sav SavBal Teller Label Money Market Balance Money Market Credits Mortgage Mortgage Balance Recent Address Change Number Insufficient Fund Amount NSF Number Point of Sale Amount Point of Sale Number Telephone Banking Area Classification Safety Deposit Box Saving Account Saving Balance Teller Visits ОТВЕТ Как обычно, но со следующими особенностями: файл с кодом – полная программа – ответ на все пункты (ХОРОШО КОММЕНТИРОВАННАЯ). Документ – с картинками, табличками и пр. и ВЫВОДАМИ. TASKS 1. Перед началом работы полезно «познакомиться» с данными. Построить базовые статистики для интервальных переменных и гистограммы для категориальных, посмотреть наличие пропущенных значений, а также посмотреть сколько «1» встречается в значения категориальных переменных. 2. Для «честной» проверки качества моделей и их обобщающей способности разделить данные на два набора: TRAIN – 70% наблюдений и VALIDATE – 30% наблюдений (см. TRAIN_VAL.sas). Все преобразования нужно проводить над двумя наборами, чтобы они были «идентичны» и, в конечном итоге, модель, построенную на первом, можно было бы применить ко второму (проскорить (score) его), а потом сравнить качество. При этом расчет всех параметров производится на тренировочной выборке, а к валидационной применяется преобразование с уже рассчитываемым параметром – он не рассчитывается на валидационной выборке. Например, если мы заменяем пропущенное значение переменной на медиану, то мы считаем медиану только по данным в тренировочной выборке. Полученное значение ставим вместо пропущенных значений и в тренировочной выборке и в валидационной. Подход когда вы сначала провели все преобразования, а потом разбили выборку на две части – в корне неправильный. 3. Некоторые переменные имеют пропущенные значения – нужно их заменить. [P1] Например на медиану/среднее, не забыв создать индикаторы пропущенных значений (см. ex1_missing_imputation.sas). 3 [P2] На практике пропущенные значения заменяют наиболее вероятным, т.е. строят модель, предсказывающую что должно стоять на месте пропущенного значения, используя остальные переменные. Попробуйте проделать это для одной из переменных с пропущенными значениями. Не требуйте многого от этой модели – она может быть простая, особо не гонитесь за точностью. [P3] Разбить наблюдения на группы («кластеризовать»), при наличии пропущенного значения, поставить среднее по группе, куда попало наблюдение (см. ex2_missing_imputation.sas). 4. Рассмотреть методы кодирования категориальных переменных в PROC LOGISTIC (см. тут). Использовать их для нескольких любых переменных, кроме Branch. 5. Рассмотреть пример (см. ex3_cat_inputs.sas) кодирования переменной Branch методом, описанным на лекции. Применить его. 6. Variable screening & logit plots. [P1] Провести первичный одномерный отбор переменных (screening) (см. ex4_screen_spearman_hoef.sas). (Не будьте очень суровы: одномерный есть одномерный – переменная может быть незначимой, но в пересечении с какой-то другой окажется очень полезной.) [P2] Обратить внимание на линейность зависимости между переменными и целевой используя logit-графики для оригинальных переменных (см. ex5_logit_plots.sas) и [P3] для сгруппированных (binned) (см. ex5_logit_plots.sas). Ожидается, что группировка поможет нам побороть нелинейность (заодно повысить устойчивость модели). Если нужно, провести подходящие преобразования переменных. 7. Выбрать 3 модели-кандидата, используя три разных метода и набор TRAIN. 8. Сравнить модели используя KS (PROC NPAR1WAY) и ROC (PROC LOGISTIC) на наборах TRAIN и VALIDATE. Выбрать лучшую. Выбрать наиболее «устойчивую» (значения статистик качества на TRAIN и VALIDATE примерно равны) (см. ex6_KS.sas и ex7_ROC_comp.sas).