99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀SAS信用評分之模型擬合以及驗證的大坑
SAS信用評分之模型擬合以及驗證的大坑
2017-05-12
收藏

SAS信用評分之模型擬合以及驗證的大坑

今天的內(nèi)容是來講我這段時間被模型擬合和模型驗證坑過的那些事。我也是千辛萬苦終于是把模型給建出來了。此處應(yīng)該有掌聲。因為模型老是效果不好這件事,我躲在被窩里哭了好幾次。好吧,講正事。

leslie模型擬合

首先,我們來講下模型擬合的事情,其實模型擬合在我這里就是我到底要選擇什么變量進入模型,我到底應(yīng)該選擇多少個變量進入模型。我之前發(fā)過一個循環(huán)產(chǎn)出變量組合代碼,然后算ks值的代碼。具體鏈接在這里:SAS信用評分之邏輯回歸的變量選擇 現(xiàn)在回頭看有點瞎,哈哈哈哈哈。

你可能剛開始200個變量變量輸入proc logistic過程,你設(shè)置參數(shù) sls=0.05,sle=0.05(SLE:sas中在變量選舉進入的參數(shù),SLE(sets criterion for entry into model) 是變量進入模型的標準即統(tǒng)計意義水平值P<0.3,是定邏輯回歸中變量納入的主要條件。SLS:sas中在變量選舉進入的參數(shù),SLS(sets criterion for staying in model)是變量在模型中保留的標準即統(tǒng)計意義水平值P<0.3,是定邏輯回歸中變量保留的主要條件。邏輯回歸變量進入后,因為新的變量進入導(dǎo)致老的變量對整個模型的貢獻不足,從中移出的閥值。)0.3是默認條件。那么卡方檢驗小于0.05的變量都會被篩選出來。

假設(shè)你的領(lǐng)導(dǎo)發(fā)話了,你最終的模型的變量個數(shù)要控制在10-14個,但是這時候可能篩選出來有30幾個。那么這30幾個你要怎么知道那十幾個組合,ks很好,而且達到了要求,之前有人說用主成分分析,主成分分析的理論好像也有這個道理。但是需要注意的是:
 小知識 

主成分分析:利用降維(線性變換)的思想,在損失很少信息的前提下把多個指標轉(zhuǎn)化為幾個綜合指標(主成分),用綜合指標來解釋多變量的方差- 協(xié)方差結(jié)構(gòu),即每個主成分都是原始變量的線性組合,且各個主成分之間互不相關(guān),使得主成分比原始變量具有某些更優(yōu)越的性能(主成分必須保留原始變量90%以上的信息),從而達到簡化系統(tǒng)結(jié)構(gòu),抓住問題實質(zhì)的目的綜合指標即為主成分。

但是在我腦子存在的邏輯回歸理論是,邏輯回歸是一個非線性回歸,自然就推翻了主成分分析來降維的方案。具體的為什么不可以用主成分分析,歡迎大神在留言區(qū)給出更具體的解釋。

我們回到我們那個篩選出來的30幾個變量的問題上。其實這個方法是一個關(guān)注我公眾號的大神告訴我的,謝謝大神。讓我來演示一下代碼。
Ods Output ParameterEstimates=aa ;

proc logistic data=raw.rong_test12 outest=bb ;

model APPL_STATUS_1(event="1")=

woe_new_industry  

woe_new_G_MARITAL_P  

woe_new_Q_TLNINE_CNT

woe_new_EDUCATION

woe_new_query_time_n

woe_new_OPERATOR_num_N

woe_new_q_lcc_six

woe_new_a_muser_rate

woe_new_cq_cc_rate

woe_new_o_recently_C

woe_new_q_cc_o

woe_new_q_othree_cnt

woe_new_ACCOUNT_HOUSELOAN

woe_new_c_DELQ_cnt

/selection=score start=14 stop=14 best=10

outROC=ROC_train;

output out=pp

    p=pred_status lower=pi_l upper=pi_u ;

run;

其實這個代碼中,可能你覺得有疑問就是start=14 stop=14 best=10這三個參數(shù)是什么意思。這三個參數(shù)的大概的意思就是表達,我要14個變量,然后,你顯示前十種最好的組合給我。
 小知識 

卡方檢驗就是統(tǒng)計樣本的實際觀測值與理論推斷值之間的偏離程度,實際觀測值與理論推斷值之間的偏離程度就決定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趨于符合,若兩個值完全相等時,卡方值就為0,表明理論值完全符合。 

然后代碼跑出來就有“評分卡方”評分的前十個的變量組合,這時候你要是設(shè)定best=20,那就是前20。至于這個得分是怎么計算的,我等級還不夠,所以我沒辦法解釋。Sorry啦。

那么這10種組合你就可以去挑選,符合業(yè)務(wù)的啊,或者說ks值比較高的,或者說你做點其他的檢驗計算,就看你的領(lǐng)導(dǎo)對于模型的評估啦。

以上就是模型擬合的內(nèi)容,其實還是選擇變量的內(nèi)容啦。

leslie模型檢驗

驗證的內(nèi)容。其實驗證同個數(shù)據(jù)源的測試數(shù)據(jù)集的測試這個是比較簡單的,畢竟這批數(shù)據(jù)是跟你的訓(xùn)練數(shù)據(jù)集一起產(chǎn)生的。有點麻煩是關(guān)于跨期數(shù)據(jù)的驗證,這里的跨期的意思,是譬如我取得是2015.8-2016.8的數(shù)據(jù),那么我會用2016.9-2016.10的數(shù)據(jù)作為跨期數(shù)據(jù)來驗證下原模型的效果。

這部分我就沒什么代碼給你們啦,只是在這里要說一個注意的點,這也是一個關(guān)注我的公眾號的大神告訴我的。就是在跨期驗證的時候,可能效果不是很理想,但是這時候呢,你不要急于泄氣。

現(xiàn)在我舉一個例子,說下你大概就懂了。

跨期驗證某變量的分布:

原模型某變量的分布:

這是一個連續(xù)變量在跨期驗證以及原模型中分段的分布。那么既然分段的壞賬率我們沒辦法控制,但是需要控制的是,分段的分布我們還是應(yīng)該調(diào)節(jié)到和原來模型的分布是差不多,所以在生成跨期數(shù)據(jù)的時候,需要每個變量都檢查跟原來的分布是不是一致,假設(shè)對于連續(xù)變量分布有5%-10%的偏差就建議調(diào)節(jié)一下分段范圍,讓分段接近一下原模型的分布。

假設(shè)這個辦法都讓你的模型效果都達到不到領(lǐng)導(dǎo)要求的話,而且你的變量也是沒辦法怎么衍生,或者也沒有什么其他變量可以拿來用的話。假設(shè)在數(shù)據(jù)量足夠的情況下,建議可以分成兩部分,譬如分成男女分開建模。這種分開建模的方式也只是建議,還是你要征得領(lǐng)導(dǎo)同意啦。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }