R語言計算IV值及使用
阿新 • • 發佈:2018-05-26
R語言 IV 更多風控建模、大數據分析等內容請關註公眾號《大數據風控的一點一滴》
在對變量分箱後,需要計算變量的重要性,IV是評估變量區分度或重要性的統計量之一,R語言計算IV值的代碼如下:
CalcIV <- function(df_bin, key_var, y_var){ N_0<-table(df_bin[, y_var])[1] N_1<-table(df_bin[, y_var])[2] iv_c<-NULL var_c<-NULL for (col in colnames(df_bin)){ if (col != key_var && col != y_var) { frq<-as.data.frame(table(df_bin[, col], df_bin[, y_var])) len<-length(unique(frq$Var1)) iv<-0 for (i in 1:len){ N_i_0<-frq$Freq[frq$Var1==i & frq$Var2==0] N_i_1<-frq$Freq[frq$Var1==i & frq$Var2==1] iv<-iv+(N_i_0/N_0- N_i_1/N_1)*log((N_i_0/N_0)/(N_i_1/N_1)) } iv_c<-c(iv_c, iv) var_c<-c(var_c, col) } } iv_df<-data.frame(var=var_c, iv=iv_c, stringsAsFactors = FALSE) return(iv_df) }
其中,df_bin是分箱後的數據集,key_var是主鍵,y_var是y變量(0是好,1是壞)。代碼運行結果如下:
R語言計算IV值及使用