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

熱線電話:13121318867

登錄
首頁精彩閱讀SPSS分析技術:非線性回歸;非線性回歸與曲線直線化有哪些異同點及優(yōu)劣勢
SPSS分析技術:非線性回歸;非線性回歸與曲線直線化有哪些異同點及優(yōu)劣勢
2017-06-05
收藏

SPSS分析技術:非線性回歸;非線性回歸與曲線直線化有哪些異同點及優(yōu)劣勢

本文介紹的非線性回歸就是針對以上更為復雜的問題而提出的一個通用的模型框架,它采用迭代方法對用戶設置的各種復雜曲線模型進行擬合,同時將殘差的定義從最小二乘法向外大大擴展(例如最小一乘法等方法)為用戶提供了極為強大的分析能力。

曲線直線化和非線性回歸

因變量和自變量是非線性關系時,可以通過曲線直線化和非線性回歸對它們之間的關系進行擬合。許多較為簡單的非線性模型可以通過變量變換轉化為線性模型,它們又被稱為可變換為線性的模型。可變換為線性的模型有許多優(yōu)點,諸如易于求得某些參數(shù)的初始值等。雖然曲線回歸簡單快捷、易于理解,但是曲線回歸(曲線直線化)的數(shù)據(jù)變換會導致隨機誤差項分布的變換,這將影響到最小二乘法所得解的含義以及模型的適用條件。例如假定變換前模型的誤差項服從正態(tài)分布,對于變換后的數(shù)據(jù)來說,其相應的誤差項很可能就不再服從正態(tài)分布回歸分析的假設不僅只有正態(tài)性,也包括方差齊性、獨立性等要求,因此變換后的線性模型采用最小二乘法求得的最佳參數(shù)估計值并不一定是原模型的最佳估計。顯然,在較為復雜的非線性模型中,曲線直線化有其固有的問題,因此在精度要求較高,或者模型較復雜的非線性回歸問題中,采用曲線直線化來估計非線性方程并不是一個好的策略。

線性回歸的基本原理可以從其回歸模型講起。非線性回歸模型一般可以表示為如下形式:

線性回歸參數(shù)估計的基本思想非常類似于線性模型,分析者必須先給出一個能夠表示估計誤差的曲線函數(shù),然后使得該函數(shù)取值最小化,并求得此時的參數(shù)估計值。以常用的最小二乘法為例,它也是設法找到使得各數(shù)據(jù)點離模型回歸線縱向距離的平方和達到最小值,但此處的模型回歸線就是相應的曲線,而不是線性回歸中的直線,或者曲線擬合中變換后的直線。

由于曲線函數(shù)并非直線,使得模型無法直接計算出最小二乘估計的參數(shù)值,因此非線性回歸模型一般采用高斯-牛頓法進行曲線函數(shù)參數(shù)的估計。這種估計方法是對曲線函數(shù)作泰勒級數(shù)展開,以達到線性近似的目的,并反復迭代求解。首先為所有未知參數(shù)指定一個初始值,然后將原方程按泰勒級數(shù)展開,并只取一階各項作為線性函數(shù)的逼近,其余各項均歸入誤差,然后采用最小二乘法對該模型中的參數(shù)進行估計,用參數(shù)估計值替代初始值,得到一個新的曲線函數(shù);再將新得到的曲線函數(shù)展開,進行線性化,從而又可以求出一批參數(shù)估計值;如此反復,直至參數(shù)估計值收斂為止。這種參數(shù)估計方法的計算非常復雜,必須借助于計算機完成,在許多時候,初始值的設定對模型能否順利求解是有顯著影響的。非線性回歸模型在SPSS中可以采用未約束和定義參數(shù)約束兩個過程來擬和,前者用于一般的非線性模型,后者可用于帶約束條件的非線性模型的擬合,適用范圍更廣,算法也不相同。

案例分析

為了對比(曲線回歸)曲線直線化和非線性回歸這兩種回歸方式的不同。下面依然采用文章:SPSS分析技術:曲線直線化;一氧化碳中毒如何避免?的案例,在這篇文章中,通過對數(shù)據(jù)進行變換,原來通風時間和毒物濃度間的曲線關系被轉換成了直線,從而可以通過直接進行線性回歸得到分析結果。

分析步驟

選擇菜單【分析】-【回歸】-【非線性】,在跳出的對話框中進行如下設置。將一氧化碳濃度(毒物濃度)選入因變量;因為我們觀察因變量與自變量之間的關系服從指數(shù)函數(shù),所以在模型表達式中輸入指數(shù)函數(shù)公式y(tǒng)=a*exp(b*time)。因為指數(shù)函數(shù)有兩個待確定參數(shù),在右下角的輸入兩個參數(shù)的擬合初始值1。

結果解釋

1、迭代過程。由于迭代過程記錄太長,這里省略中間部分。觀察殘差平方和的變化,可見隨著迭代地進行,殘差平方和變得越來越小,也就是說模型無法解釋的變異部分越來越少。但這一過程不是無限進行下去的,當進行了15步迭代,共擬合了32個模型后,殘差平方和以及各參數(shù)的估計值均穩(wěn)定下來,模型達到收斂標準。

2、模型方差分析的結果。相應的原假設為所擬合的模型對因變量的預測無貢獻。由于這里進行的是非線性回歸,方差分析的F值和p值只有參考意義,因此結果中并不給出,可以手工計算。顯然,最終的p值遠小于0. 05,拒絕原假設,可以認為模型對于因變量的預測是有作用的。方框中的最下方計算出了模型的決定系數(shù)為0.989,第6章曲線直線化的p值等于0. 961,可見非線性回歸模型的擬合效果從決定系數(shù)來看是更好,可惜曲線直線化的決定系數(shù)與非線性回歸的決定系數(shù)是不可比的(后面會介紹原因)。

3、回歸系數(shù)估計值;

4、兩種方法比較。

上面用非線性回歸的方法得到了模型表達式的估計值。顯然,該表達式和曲線直線化所得到的結果并不相同,a和b兩個系數(shù)的值相差不小。究竟哪一個方程更好呢?雖然從決定系數(shù)上看似乎是非線性回歸的方程更優(yōu),但是曲線擬合中計算出的決定系數(shù)實際上是曲線直線化后直線方程的決定系數(shù),并不一定代表變換前的變異解釋程度,即兩個模型的決定系數(shù)是不可比的。


為了能直觀地對兩個模型進行比較,這里分別對本案例的數(shù)據(jù)分別擬合兩個模型,并利用【保存】子對話框求得各自的模型預測值與預測殘差,并繪制圖形如下圖所示。下圖是原始數(shù)據(jù)、曲線回歸模型、非線性回歸模型三者的比較,從中可見在通風時間大于4 分鐘時,兩個模型的預測效果基本接近,似乎是非線性回歸模型更好一些。但是在小于4 分鐘時,則曲線擬和模型的預測效果明顯較差。特別是第1和第2分鐘的數(shù)據(jù),顯然預測誤差較大。綜合比較之下,非線性回歸模型的擬合效果要更好。


數(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(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 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); }