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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀SAS信用評(píng)分之模型擬合以及驗(yàn)證的大坑
SAS信用評(píng)分之模型擬合以及驗(yàn)證的大坑
2017-05-12
收藏

SAS信用評(píng)分之模型擬合以及驗(yàn)證的大坑

今天的內(nèi)容是來(lái)講我這段時(shí)間被模型擬合和模型驗(yàn)證坑過的那些事。我也是千辛萬(wàn)苦終于是把模型給建出來(lái)了。此處應(yīng)該有掌聲。因?yàn)槟P屠鲜切Ч缓眠@件事,我躲在被窩里哭了好幾次。好吧,講正事。

leslie模型擬合

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

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

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

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

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

我們回到我們那個(gè)篩選出來(lái)的30幾個(gè)變量的問題上。其實(shí)這個(gè)方法是一個(gè)關(guān)注我公眾號(hào)的大神告訴我的,謝謝大神。讓我來(lái)演示一下代碼。
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;

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

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

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

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

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

leslie模型檢驗(yàn)

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

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

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

跨期驗(yàn)證某變量的分布:

原模型某變量的分布:

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

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


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

若不方便掃碼,搜微信號(hào):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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }