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

熱線電話:13121318867

登錄
首頁(yè)大數(shù)據(jù)時(shí)代回歸系列(四)| 一個(gè)完整的線性回歸是怎樣做的
回歸系列(四)| 一個(gè)完整的線性回歸是怎樣做的
2020-09-07
收藏

作者:丁點(diǎn)helper 

來源:丁點(diǎn)幫你

前面的文章主要介紹了回歸的一些關(guān)鍵詞,比如回歸系數(shù)、樣本和總體回歸方程、預(yù)測(cè)值和殘差等,今天我們結(jié)合一個(gè)案例來看看如何做完整的回歸分析,準(zhǔn)確而言,是多重線性回歸(Multiple Linear Regreesion)。

回顧:多重線性回歸

多重線性回歸,一般是指有多個(gè)自變量X,只有一個(gè)因變量Y。前面我們主要是以簡(jiǎn)單線性回歸為例在介紹,兩者的差距主要在于自變量X的數(shù)量,在只有一個(gè)X時(shí),就稱簡(jiǎn)單線性回歸。

在實(shí)際應(yīng)用中,我們當(dāng)然很少只納入一個(gè)自變量。多重線性回歸一般也叫“多元線性回歸”,我更支持“多重”的叫法,因?yàn)椤岸嘣币话阋仓浮耙蜃兞縔”有多個(gè)。

通過前面的文章,我們知道做線性回歸就是要構(gòu)建Y與X的線性關(guān)系,主要目的有兩個(gè),一是確定X對(duì)Y的影響程度(即回歸系數(shù)的計(jì)算);二是通過X來預(yù)測(cè)Y。

這里最重要的一條準(zhǔn)則是:Y需要是定量變量,就是類似于“收入”、“得分”等。而對(duì)X沒有這樣的要求,可以是定量的,如“教育年限”、“年齡”等;也可以是“性別”、“民族”等分類變量。

案例 從某高校三年級(jí)女生體檢的數(shù)據(jù)中,隨機(jī)抽取20名作為樣本,數(shù)據(jù)包括體重(kg)、胸圍(cm)、肩寬(cm)及肺活量(L),分析女大學(xué)生肺活量的影響因素,數(shù)據(jù)見下表:

首先簡(jiǎn)單看看上表的數(shù)據(jù),我們想要研究女生肺活量的影響因素,所以回歸的因變量為“肺活量(Y)”,根據(jù)常識(shí)和數(shù)據(jù),這里的Y是定量變量。

搜集的其他數(shù)據(jù)作為潛在的影響因素(X)納入回歸方程,分別是:體重、胸圍、肩寬。我們也能簡(jiǎn)單就能判斷這三個(gè)自變量都是定量變量。

(對(duì)于變量類型如何判斷還不太了解的同學(xué),戳此回顧)

這里進(jìn)行回歸分析,一是判斷這些X是否都會(huì)影響Y(總體回歸系數(shù)是否不為0);二是通過構(gòu)造的回歸方程,未來根據(jù)X的值計(jì)算Y的預(yù)測(cè)值。

多重線性回歸的SPSS操作

回歸分析用SPSS操作的步驟如下:

SPSS數(shù)據(jù)錄入格式

SPSS回歸分析的菜單(Linear代表線性回歸

回歸操作窗口,Dependent為因變量,Independent為自變量,分別移入

上圖中的“Method”稱作“自變量篩選”方法,我們做線性回歸分析很重要的一點(diǎn)是找Y的影響因素,這里的“找”就意味著“篩選”。

比如本案例我們納入了三個(gè)自變量,通過回歸分析,就是要找到那些真正對(duì)Y產(chǎn)生影響的變量。最終的結(jié)果有可能三個(gè)X都有影響,則最終的回歸方程會(huì)有三個(gè)X,也有可能一個(gè)X都沒有。

我們看到Method的下拉菜單有不同的選項(xiàng):

Enter:將自變量強(qiáng)行全部納入回歸方程,不排除回歸系數(shù)P值大于0.05的情況;

Stepwise、Remove、Backward、Forward,這些都是軟件篩選自變量的方法,雖然名稱不一,但思想相近,主要就是根據(jù)回歸系數(shù)檢驗(yàn)的P值是否小于0.05(有的是0.1)判斷回歸方程中應(yīng)不應(yīng)該有這個(gè)變量。

一般來講,沒有哪個(gè)篩選方法最優(yōu),但實(shí)際應(yīng)用中常見的是Stepwise和Backward,建議大家自己進(jìn)行回歸分析時(shí)可以更換不同的方法嘗試,選擇自己認(rèn)為合適的方法。

本案例使用Stepwise法,中文稱為“逐步法”或“步進(jìn)法”。

多重線性回歸的結(jié)果分析

以下為SPSS分析結(jié)果展示:

表1:回歸方程的擬合程度

上表最左側(cè)一列為“Model”,表示的是SPSS篩選變量的過程,因?yàn)槲覀冞x擇的是stepwise,所以每進(jìn)行一步,即每篩選一個(gè)變量,就稱為一個(gè)Model,比如Model"1"表示只納入1個(gè)自變量,Model“2”表示納入2個(gè),“3”表示納入3個(gè),”4“表示最終模型剔除了一個(gè)自變量,僅納入2個(gè)自變量。

表格第2-4列分別為”R、R Square、Adjusted R Square“,一般的教科書講的很多,表示的是回歸方程對(duì)因變量的解釋程度,數(shù)值越大,解釋度越高。但它又是一個(gè)比較尷尬的數(shù),實(shí)際應(yīng)用簡(jiǎn)單參考即可。

表2:回歸方程的整體檢驗(yàn)

這里的Model和上表1中表示的是同一個(gè)意思,代表了包括不同自變量的回歸方程。對(duì)于回歸方程的檢驗(yàn),一般來講,都是有統(tǒng)計(jì)學(xué)意義的,看最后一列(Sig.),即P值均小于0.05。

表3:回歸系數(shù)結(jié)果

表3中的Model詳細(xì)展示了變量的篩選過程,比如在Model 3中,回歸方程將三個(gè)自變量”肩寬、體重、胸圍“全部納入,但是發(fā)現(xiàn),”肩寬“這個(gè)變量的Sig.(P值)大于0.1了,于是就將它剔除出去,從而得到模型4——只納入”體重和胸圍“兩個(gè)自變量,對(duì)照后面的P值結(jié)果,均小于0.05。

以上只是一種篩選變量的一種方法(Stepwise),通過統(tǒng)計(jì)軟件P值自動(dòng)進(jìn)行,這并不意味,所有的線性回歸分析均只能通過這種方法篩選,我們常說需要結(jié)合專業(yè)知識(shí)判斷,在做回歸分析時(shí)也不例外。

如果回歸分析的結(jié)果與專業(yè)知識(shí)相悖,比如根據(jù)專業(yè)知識(shí)有影響的變量卻被軟件剔除,那我們首先得慎重思考回歸的結(jié)果是否可信,比如是否滿足前文提及的LINE條件,是否出現(xiàn)了多重共線性問題等等;如果經(jīng)過診斷分析發(fā)現(xiàn)這些問題都不存在,在研究報(bào)告或論文中,仍可以如實(shí)地報(bào)告結(jié)果,為后面的研究提供參考。

本案例,我們還是依照統(tǒng)計(jì)軟件的結(jié)果篩選變量,得到的最終回歸方程為:

根據(jù)上表,我們寫出本研究的回歸方程:

上述結(jié)果表示,可以認(rèn)為體重和胸圍是影響該校一年級(jí)女大學(xué)生肺活量的主要因素,保持胸圍不變,體重增加1kg,估計(jì)肺活量平均增加0.081L(回歸系數(shù)”0.081“的含義,在多重線性回歸分析中也可稱作”偏回歸系數(shù)“);保持體重不變,胸圍增大1cm,估計(jì)肺活量平均增加0.046L(回歸系數(shù)”0.046“的含義)。

另外,上表最后一列提供了一個(gè)”標(biāo)準(zhǔn)化偏回歸系數(shù)“,這是將XY分別標(biāo)準(zhǔn)化之后再進(jìn)行回歸分析,如下:

”標(biāo)準(zhǔn)化偏回歸系數(shù)“可以用來比較不同的自變量X對(duì)Y的影響程度。本例中,體重和胸圍的標(biāo)準(zhǔn)化偏回歸系數(shù)分別為0.644和0.436,意味著體重對(duì)肺活量的影響大于胸圍對(duì)肺活量的影響。

以上即為回歸分析的全過程,最后留給大家一個(gè)思考題,這里進(jìn)行的分析,表示的是X和Y的相關(guān)關(guān)系,還是因果關(guān)系?歡迎在評(píng)論區(qū)留言討論。

數(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ù)說明請(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); }