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

熱線電話:13121318867

登錄
首頁精彩閱讀R語言-如何處理違背回歸假設(shè)的問題
R語言-如何處理違背回歸假設(shè)的問題
2017-05-31
收藏

R語言-如何處理違背回歸假設(shè)的問題

我們已經(jīng)花費了不少篇幅來學(xué)習(xí)回歸診斷,你可能會問:“如果發(fā)現(xiàn)了問題,那么能做些什么呢?”有四種方法可以處理違背回歸假設(shè)的問題:
刪除觀測點;
變量變換;
添加或刪除變量;
使用其他回歸方法。
下面讓我們依次學(xué)習(xí)。

8.5.1 刪除觀測點
刪除離群點通常可以提高數(shù)據(jù)集對于正態(tài)假設(shè)的擬合度,而強影響點會干擾結(jié)果,通常也會被刪除。刪除最大的離群點或者強影響點后,模型需要重新擬合。若離群點或強影響點仍然存在,重復(fù)以上過程直至獲得比較滿意的擬合。
不過,我對刪除觀測點持謹(jǐn)慎態(tài)度。若是因為數(shù)據(jù)記錄錯誤,或是沒有遵守規(guī)程,或是受試對象誤解了指導(dǎo)說明,這種情況下的點可以判斷為離群點,刪除它們是十分合理的。
不過在其他情況下,所收集數(shù)據(jù)中的異常點可能是最有趣的東西。發(fā)掘為何該觀測點不同于其他點,有助于你更深刻地理解研究的主題,或者發(fā)現(xiàn)其他你可能沒有想過的問題。我們一些最偉大的進步正是源自于意外地發(fā)現(xiàn)了那些不符合我們先驗認(rèn)知的東西(抱歉,我說得夸張了)。

8.5.2 變量變換
當(dāng)模型不符合正態(tài)性、線性或者同方差性假設(shè)時,一個或多個變量的變換通常可以改善或調(diào)整模型效果。變換多用Y λ 替代Y, λ 的常見值和解釋見表8-5。

若Y是比例數(shù),通常使用logit變換[ln (Y/1-Y )]。
當(dāng)模型違反了正態(tài)假設(shè)時,通??梢詫憫?yīng)變量嘗試某種變換。 car包中的powerTransform()函數(shù)通過λ 的最大似然估計來正態(tài)化變量X λ。代碼清單8-10是對數(shù)據(jù)states的應(yīng)用。

結(jié)果表明,你可以用Murder0.6來正態(tài)化變量Murder。由于0.6很接近0.5,你可以嘗試用平方根變換來提高模型正態(tài)性的符合程度。但在本例中, λ= 1的假設(shè)也無法拒絕(p=0.145),因此沒有強有力的證據(jù)表明本例需要變量變換,這與圖8-9的Q-Q圖結(jié)果一致。

當(dāng)違反了線性假設(shè)時,對預(yù)測變量進行變換常常會比較有用。 car包中的boxTidwell()函數(shù)通過獲得預(yù)測變量冪數(shù)的最大似然估計來改善線性關(guān)系。下面的例子為用州的人口和文盲率來預(yù)測謀殺率,對模型進行了Box-Tidwell變換:

結(jié)果顯示,使用變換Population0.87和Illiteracy1.36能夠大大改善線性關(guān)系。但是對Population(p=0.75)和Illiteracy(p=0.54)的計分檢驗又表明變量并不需要變換。這些結(jié)果與圖8-11的成分殘差圖是一致的。
響應(yīng)變量變換還能改善異方差性(誤差方差非恒定)。在代碼清單8-7中,你可以看到car包中spreadLevelPlot()函數(shù)提供的冪次變換應(yīng)用,不過, states例子滿足了方差不變性,不需要進行變量變換。
謹(jǐn)慎對待變量變換
統(tǒng)計學(xué)中流傳著一個很老的笑話:如果你不能證明A,那就證明B,假裝它就是A。(對于統(tǒng)計學(xué)家來說,這很滑稽好笑。)此處引申的意思是,如果你變換了變量,你的解釋必須基于變換后的變量,而不是初始變量。如果變換得有意義,比如收入的對數(shù)變換、距離的逆變換,解釋起來就會容易得多。但是若變換得沒有意義,你就應(yīng)該避免這樣做。比如,你怎樣解釋自殺意念的頻率與抑郁程度的立方根間的關(guān)系呢?

8.5.3 增刪變量
改變模型的變量將會影響模型的擬合度。有時,添加一個重要變量可以解決我們已經(jīng)討論過的許多問題,刪除一個冗余變量也能達(dá)到同樣的效果。刪除變量在處理多重共線性時是一種非常重要的方法。如果你僅僅是做預(yù)測,那么多重共線性并不構(gòu)成問題,但是如果還要對每個預(yù)測變量進行解釋,那么就必須解決這個問題。最常見的方法就是刪除某個存在多重共線性的變量(某個變量 vif 2 ? ) 。另外一個可用的方法便是嶺回歸——多元回歸的變體,專門用來處理多重共線性問題。

8.5.4 嘗試其他方法

正如剛才提到的,處理多重共線性的一種方法是擬合一種不同類型的模型(本例中是嶺回歸)。其實,如果存在離群點和/或強影響點,可以使用穩(wěn)健回歸模型替代OLS回歸。如果違背了正態(tài)性假設(shè),可以使用非參數(shù)回歸模型。如果存在顯著的非線性,能嘗試非線性回歸模型。如果違背了誤差獨立性假設(shè),還能用那些專門研究誤差結(jié)構(gòu)的模型,比如時間序列模型或者多層次回歸模型。最后,你還能轉(zhuǎn)向廣泛應(yīng)用的廣義線性模型,它能適用于許多OLS回歸假設(shè)不成立的情況。在第13章中,我們將會介紹其中一些方法。至于什么時候需要提高OLS回歸擬合度,什么時候需要換一種方法,這些判斷是很復(fù)雜的,需要依靠你對主題知識的理解,判斷出哪個模型提供最佳結(jié)果。既然提到最佳結(jié)果,現(xiàn)在我們就先討論一下回歸模型中的預(yù)測變量選擇問題。
8.6 選擇“最佳”的回歸模型
嘗試獲取一個回歸方程時,實際上你就面對著從眾多可能的模型中做選擇的問題。是不是所有的變量都要包括?抑或去掉那個對預(yù)測貢獻不顯著的變量?還是需要添加多項式項和/或交互項來提高擬合度?最終回歸模型的選擇總是會涉及預(yù)測精度(模型盡可能地擬合數(shù)據(jù))與模型簡潔度(一個簡單且能復(fù)制的模型)的調(diào)和問題。如果有兩個幾乎相同預(yù)測精度的模型,你肯定喜歡簡單的那個。本節(jié)討論的問題,就是如何在候選模型中進行篩選。注意,“最佳”是打了引號的,因為沒有做評價的唯一標(biāo)準(zhǔn),最終的決定需要調(dià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); }