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

熱線電話:13121318867

登錄
首頁精彩閱讀R語言對回歸模型進行回歸診斷
R語言對回歸模型進行回歸診斷
2017-02-15
收藏

R語言對回歸模型進行回歸診斷

R語言中,對數(shù)據(jù)進行回歸建模是一件很簡單的事情,一個lm()函數(shù)就可以對數(shù)據(jù)進行建模了,但是建模了之后大部分人很可能忽略了一件事情就是,對回歸模型進行診斷,判斷這個模型到低是否模型的假定;如果不符合假定,模型得到的結(jié)果和現(xiàn)實中會有巨大的差距,甚至一些參數(shù)的檢驗因此失效。

因為在對回歸模型建模的時候我們使用了最小二乘法對模型參數(shù)的估計,什么是最小二乘法,通俗易懂的來說就是使得估計的因變量和樣本的離差最小,說白了就是估計出來的值誤差最??;但是在使用最小二乘法的前提是有幾個假設的。

這里我就引用《R語言實戰(zhàn)》的內(nèi)容了,在我大學中的《計量經(jīng)濟學》這本書講的更為詳細,不過這里主要是介紹使用R語言對模型進行回歸診斷,所以我們就不說太詳細了;

假定

正態(tài)性:對于固定的自變量值,因變量值成正態(tài)分布,也就是說因變量的是服從正態(tài)分布

獨立性:Yi值之間相互獨立,也就是說Yi之間不存在自相關(guān)

線性:因變量和自變量是線性相關(guān)的,如果是非線性相關(guān)的話就不可以了

方差:因變量的方法不隨著自變量的水平還不同而變化,也可稱之為同方差

為了方便大家使用和對照,這里就使用書上的例子給大家介紹了,在系統(tǒng)自帶的安裝包中women數(shù)據(jù)集,我們就想通過身高來預測一下體重;在做回歸診斷之前我們得先建模;

首先我們先看一下數(shù)據(jù)是長什么樣子的,因為我們不能盲目的拿到數(shù)據(jù)后建模,一般稍微規(guī)范的點流程是先觀察數(shù)據(jù)的分布情況,判斷線性相關(guān)系數(shù),然后在考慮是否建立回歸模型,然后在進行回歸診斷;

R代碼如下:

data(‘women’)

women

結(jié)果如下

初步觀察數(shù)據(jù)大概告訴我們體重就是跟隨著身高增長而增長的,再通過畫一下散點圖觀察。

R代碼如下

plot(women)

然后我們在判斷一下各個變量之間的線性相關(guān)系數(shù),然后再考慮要不要建模

R代碼如下

cor(women)

結(jié)果如下

相關(guān)系數(shù)的結(jié)果上看,身高和體重的相關(guān)程度高達0.9954,可以認為是完全有關(guān)系的。

根據(jù)以上的判斷我們認為可以建立模型去預測了,這時候我們使用LM()函數(shù)去建模,并通過summary函數(shù)去得到完整的結(jié)果。

R代碼如下

model <- lm(weight~height,data=women)

summary(model)

出現(xiàn)這個問號原因是由于電腦字符集問題;稍微解讀一下這個結(jié)果,RESIDUALS是殘差的五分位數(shù),不知道五分位的可以百度一下,這里不多說,下面的結(jié)果height的回歸系數(shù)是3.45,標準差是0.09114,T值為37.85,P值為1.09e-14,并顯著通過假設檢驗,殘差的標準差為1.525,可決系數(shù)為0.991,認為自變量可以解釋總體方差的99.1%,調(diào)整后的可決系數(shù)為0.9903,這是剔除掉自變量的個數(shù)后的可決系數(shù),這個比較有可比性,一般我都看這個調(diào)整后的可決系數(shù)。結(jié)果就解讀那么多,因此得到的結(jié)果就是

上面只是借用了一個小小例子來講解了一下R語言做回歸模型的過程,接下來我們將一下如何進行回歸診斷,還是原來的那個模型,因為使用LM函數(shù)中會有一些對結(jié)果評價的內(nèi)容,因此我們用PLOT函數(shù)將畫出來;

R代碼如下

par(mfrow=c(2,2))

plot(model)

結(jié)果如下

左上:代表的殘差值和擬合值的擬合圖,如果模型的因變量和自變量是線性相關(guān)的話,殘差值和擬合值是沒有任何關(guān)系的,他們的分布應該是也是在0左右隨機分布,但是從結(jié)果上看,是一個曲線關(guān)系,這就有可能需要我們家一項非線性項進去了

右上:代表正態(tài)QQ圖,說白了就是標準化后的殘差分布圖,如果滿足正態(tài)假定,那么點應該都在45度的直線上,若不是就違反了正態(tài)性假

左下:位置尺度圖,主要是檢驗是否同方差的假設,如果是同方差,周圍的點應該隨機分布

右下:主要是影響點的分析,叫殘差與杠桿圖,鑒別離群值和高杠桿值和強影響點,說白了就是對模型影響大的點

根據(jù)左上的圖分布我們可以知道加個非線性項,R語言實戰(zhàn)里面是加二次項,這里我取對數(shù),主要是體現(xiàn)理解

R代碼如下

model1 <- lm(weight~height+log(height),data=women)

plot(model1)

summary(model1)

結(jié)果如下

診斷圖

模型擬合結(jié)果圖

綜合起來我們新模型貌似更優(yōu)了;我就介紹到這里,具體大家可以看書籍


數(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)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 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); }