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

熱線電話:13121318867

登錄
首頁精彩閱讀R語言-選擇“最佳”的回歸模型
R語言-選擇“最佳”的回歸模型
2017-06-03
收藏

R語言-選擇“最佳”的回歸模型

嘗試獲取一個回歸方程時,實(shí)際上你就面對著從眾多可能的模型中做選擇的問題。是不是所有的變量都要包括?抑或去掉那個對預(yù)測貢獻(xiàn)不顯著的變量?還是需要添加多項(xiàng)式項(xiàng)和/或交互項(xiàng)來提高擬合度?最終回歸模型的選擇總是會涉及預(yù)測精度(模型盡可能地擬合數(shù)據(jù))與模型簡潔度(一個簡單且能復(fù)制的模型)的調(diào)和問題。如果有兩個幾乎相同預(yù)測精度的模型,你肯定喜歡簡單的那個。本節(jié)討論的問題,就是如何在候選模型中進(jìn)行篩選。注意,“最佳”是打了引號的,因?yàn)闆]有做評價的唯一標(biāo)準(zhǔn),最終的決定需要調(diào)查者的評判。

8.6.1 模型比較
用基礎(chǔ)安裝中的anova()函數(shù)可以比較兩個嵌套模型的擬合優(yōu)度。所謂嵌套模型,即它的一些項(xiàng)完全包含在另一個模型中。在states的多元回歸模型中,我們發(fā)現(xiàn)Income和Frost的回歸系數(shù)不顯著,此時你可以檢驗(yàn)不含這兩個變量的模型與包含這兩項(xiàng)的模型預(yù)測效果是否一樣好(見代碼清單8-11)。


此處,模型1嵌套在模型2中。 anova()函數(shù)同時還對是否應(yīng)該添加Income和Frost到線性模型中進(jìn)行了檢驗(yàn)。由于檢驗(yàn)不顯著(p=0.994),因此我們可以得出結(jié)論:不需要將這兩個變量添加到線性模型中,可以將它們從模型中刪除。
AIC(Akaike Information Criterion,赤池信息準(zhǔn)則)也可以用來比較模型,它考慮了模型的統(tǒng)計擬合度以及用來擬合的參數(shù)數(shù)目。 AIC值越小的模型要優(yōu)先選擇,它說明模型用較少的參數(shù)獲得了足夠的擬合度。該準(zhǔn)則可用AIC()函數(shù)實(shí)現(xiàn)(見代碼清單8-12)。

此處AIC值表明沒有Income和Frost的模型更佳。注意, ANOVA需要嵌套模型,而AIC方法不需要。比較兩模型相對來說更為直接,但如果有4個、 10個,或者100個可能的模型怎么辦呢?這便是下節(jié)的主題。

8.6.2 變量選擇
從大量候選變量中選擇最終的預(yù)測變量有以下兩種流行的方法:逐步回歸法(stepwise method)和全子集回歸(all-subsets regression)。
1. 逐步回歸
逐步回歸中,模型會一次添加或者刪除一個變量,直到達(dá)到某個判停準(zhǔn)則為止。例如, 向前逐步回歸(forward stepwise)每次添加一個預(yù)測變量到模型中,直到添加變量不會使模型有所改進(jìn)為止。 向后逐步回歸(backward stepwise)從模型包含所有預(yù)測變量開始,一次刪除一個變量直到會降低模型質(zhì)量為止。而向前向后逐步回歸(stepwise stepwise,通常稱作逐步回歸,以避免聽起來太冗長),結(jié)合了向前逐步回歸和向后逐步回歸的方法,變量每次進(jìn)入一個,但是每一步中,變量都會被重新評價,對模型沒有貢獻(xiàn)的變量將會被刪除,預(yù)測變量可能會被添加、刪除好幾次,直到獲得最優(yōu)模型為止。
逐步回歸法的實(shí)現(xiàn)依據(jù)增刪變量的準(zhǔn)則不同而不同。 MASS包中的stepAIC()函數(shù)可以實(shí)現(xiàn)逐步回歸模型(向前、向后和向前向后),依據(jù)的是精確AIC準(zhǔn)則。代碼清單8-13中,我們應(yīng)用的是向后回歸。

開始時模型包含4個(全部)預(yù)測變量,然后每一步中, AIC列提供了刪除一個行中變量后模型的AIC值, <none>中的AIC值表示沒有變量被刪除時模型的AIC。第一步, Frost被刪除, AIC從97.75降低到95.75;第二步, Income被刪除, AIC繼續(xù)下降,成為93.76,然后再刪除變量將會增加AIC,因此終止選擇過程。
逐步回歸法其實(shí)存在爭議,雖然它可能會找到一個好的模型,但是不能保證模型就是最佳模型,因?yàn)椴皇敲恳粋€可能的模型都被評價了。為克服這個限制,便有了全子集回歸法。
2. 全子集回歸
全子集回歸,顧名思義,即所有可能的模型都會被檢驗(yàn)。分析員可以選擇展示所有可能的結(jié)果,也可以展示n 個不同子集大?。ㄒ粋€、兩個或多個預(yù)測變量)的最佳模型。 例如, 若nbest=2,先展示兩個最佳的單預(yù)測變量模型,然后展示兩個最佳的雙預(yù)測變量模型,以此類推,直到包含所有的預(yù)測變量。全子集回歸可用leaps包中的regsubsets()函數(shù)實(shí)現(xiàn)。你能通過R平方、調(diào)整R平方或Mallows Cp統(tǒng)計量等準(zhǔn)則來選擇“最佳”模型。

R平方含義是預(yù)測變量解釋響應(yīng)變量的程度;調(diào)整R平方與之類似,但考慮了模型的參數(shù)數(shù)目。 R平方總會隨著變量數(shù)目的增加而增加。當(dāng)與樣本量相比,預(yù)測變量數(shù)目很大時,容易導(dǎo)致過擬合。R平方很可能會丟失數(shù)據(jù)的偶然變異信息,而調(diào)整R平方則提供了更為真實(shí)的R平方估計。另外, Mallows Cp統(tǒng)計量也用來作為逐步回歸的判停規(guī)則。廣泛研究表明,對于一個好的模型,它的Cp統(tǒng)計量非常接近于模型的參數(shù)數(shù)目(包括截距項(xiàng))。
在代碼清單8-14中,我們對states數(shù)據(jù)進(jìn)行了全子集回歸。結(jié)果可用leaps包中的plot()函數(shù)繪制(如圖8-17所示),或者用car包中的subsets()函數(shù)繪制(如圖8-18所示)。

初看圖8-17可能比較費(fèi)解。第一行中(圖底部開始),可以看到含intercept(截距項(xiàng))和Income的模型調(diào)整R平方為0.33,含intercept和Population的模型調(diào)整R平方為0.1。跳至第12行,你會看到含intercept、 Population、 Illiteracy和Income的模型調(diào)整R平方值為0.54,而僅含intercept、 Population和Illiteracy的模型調(diào)整R平方為0.55。此處,你會發(fā)現(xiàn)含預(yù)測變量越少的模型調(diào)整R平方越大(對于非調(diào)整的R平方,這是不可能的)。圖形表明,雙預(yù)測變量模型(Population和Illiteracy)是最佳模型。
在圖8-18中,你會看到對于不同子集大小,基于Mallows Cp統(tǒng)計量的四個最佳模型。越好的模型離截距項(xiàng)和斜率均為1的直線越近。圖形表明,你可以選擇這幾個模型,其余可能的模型都可以不予考慮:含Population和Illiteracy的雙變量模型;含Population、 Illiteracy和Frost的三變量模型,或Population、 Illiteracy和Income的三變量模型(它們在圖形上重疊了,不易分辨) ;含Population、 Illiteracy、 Income和Frost的四變量模型。
大部分情況中,全子集回歸要優(yōu)于逐步回歸,因?yàn)榭紤]了更多模型。但是,當(dāng)有大量預(yù)測變量時,全子集回歸會很慢。一般來說,變量自動選擇應(yīng)該被看做是對模型選擇的一種輔助方法,而不是直接方法。擬合效果佳而沒有意義的模型對你毫無幫助,主題背景知識的理解才能最終指引你獲得理想的模型。

數(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(), // 加隨機(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)的第一個參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗(yàn)證碼的宕機(jī) 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); }