R語(yǔ)言非線性模型的實(shí)現(xiàn)
什么是非線性回歸
在非線性回歸中,分析師通常采用一個(gè)確定的函數(shù)形式和相應(yīng)的參數(shù)來(lái)擬合數(shù)據(jù)。最常用的參數(shù)估計(jì)方法是利用非線性最小二乘法(R中的nls函數(shù))。該方法使用線性函數(shù)來(lái)逼近非線性函數(shù),并且通過(guò)不斷迭代這個(gè)過(guò)程來(lái)得到參數(shù)的最優(yōu)解(本段來(lái)自維基百科)。非線性回歸的良好性質(zhì)之一是估計(jì)出的參數(shù)都有清晰的解釋(如Michaelis-Menten模型的Vmax是指最大速率),而變換數(shù)據(jù)后得到的線性模型其參數(shù)往往難以解釋。
實(shí)例一
首先,繪制出原數(shù)據(jù)的散點(diǎn)圖。代碼試下如下:
data9.3<-read.csv("C:/Users/Administrator/Desktop/data9.3.csv",head=TRUE) attach(data9.3) plot(x,y)
輸出結(jié)果為:
可以看出,這時(shí) y 與 x之間呈現(xiàn)出非線性,因此需要對(duì)數(shù)據(jù)進(jìn)行非線性回歸分析。
代碼實(shí)現(xiàn)如下:
nls9.3<-nls(y~a-a/(1+(x/c)^b),start=list(a=100,b=5,c=4.8)) summary(nls9.3) e<-resid(nls9.3) ebar<-mean(e) SE<-deviance(nls9.3) # 殘差平方和,由于e的均值不等于0,所以SE不等于殘差的離差平方和 SSE<-sum((e-ebar)^2) # 殘差的離差平方和 prey<-fitted(nls9.3) # y的預(yù)測(cè)值 pybar<-mean(prey) # y的預(yù)測(cè)值的均值 ybar<-mean(y) # y的均值 SST<-sum((y-ybar)^2) # 總離差平方和 Rsquare<-1-SE/SST # 相關(guān)指數(shù)
輸出結(jié)果為:
由以上輸出結(jié)果可知,對(duì)參數(shù)的估計(jì)經(jīng)過(guò)6步迭代計(jì)算后收斂,而且相關(guān)指數(shù) R 2 = 0.9986,說(shuō)明非線性回歸擬合效果很好。同時(shí),上述結(jié)果中對(duì)參數(shù)的顯著性檢驗(yàn)顯示參數(shù)均通過(guò)顯著性檢驗(yàn)。
但是,在小樣本的情況下,不可線性化的非線性回歸的殘差通暢不滿足正態(tài)性,進(jìn)而使用 t分布進(jìn)行檢驗(yàn)也是無(wú)效的,因此顯著性檢驗(yàn)的結(jié)果并不具有重要意義。
另外,聽過(guò)對(duì)中間量的查看,回歸的利差平方和 S S R = 15156.55 ,而總離差平方和 S S T = 14917.89<S S R ,可見非線性回歸不再滿足平方和分解式。
該實(shí)例中殘差均值為 0.2856 ≠ 0,當(dāng)然,如果回歸擬合的效果好,殘差均值會(huì)接近0.
通過(guò)上述分析可以認(rèn)為, y與 x符合下面的非線性回歸:
實(shí)例二——Gompertz模型
回歸實(shí)現(xiàn)的代碼如下:
data9.4<-read.csv("C:/Users/Administrator/Desktop/data9.4.csv",head=TRUE) y<-data9.4[,2] t<-data9.4[,1] model<-nls(y~k*(a^(b^t)),start=list(a=0.5,b=0.5,k=120),lower=c(0,0,116),upper=c(1,1,10000),algorithm="port") summary(model) c<-coef(model) # 將模型的回歸系數(shù)賦值給c tt<-c(1:30) yp<-c[3]*(c[1]^(c[2]^tt)) # 計(jì)算時(shí)間取值為tt時(shí)對(duì)應(yīng)的y的預(yù)測(cè)值 t1=t+1979 # 計(jì)算對(duì)應(yīng)的年份 t2<-tt+1979 plot(t1,y,type="o",ann=FALSE,ylim=c(0,160),xlim=c(1975,2015)) lines(t2,yp)
輸出結(jié)果為:
擬合結(jié)果為:
這里可以不用糾結(jié)這個(gè)模型是怎么得到的,這是一個(gè)計(jì)量經(jīng)濟(jì)學(xué)上的模型,已經(jīng)給出了確切的表達(dá)式為 。
舉這個(gè)例子的目的是了解由于回歸迭代中的參數(shù)超過(guò)范圍而導(dǎo)致代碼運(yùn)算產(chǎn)生無(wú)限不收斂的情況時(shí),如何對(duì)參數(shù)取值做出限定,并使用高斯-牛頓迭代算法(設(shè)定參數(shù)algorithm=“port”)。
到此這篇關(guān)于R語(yǔ)言非線性模型的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)R語(yǔ)言非線性模型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
R語(yǔ)言常用函數(shù)總結(jié)梳理(基本對(duì)象字符處理?數(shù)學(xué)?統(tǒng)計(jì))
這篇文章主要介紹了R語(yǔ)言常用函數(shù)總結(jié)梳理(基本對(duì)象字符處理?數(shù)學(xué)?統(tǒng)計(jì)),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10R語(yǔ)言數(shù)據(jù)可視化繪制Circular?bar?plot實(shí)現(xiàn)環(huán)形柱狀圖
這篇文章主要為大家介紹了R語(yǔ)言繪制Circular?bar?plot實(shí)現(xiàn)環(huán)形柱狀圖的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02R語(yǔ)言 實(shí)現(xiàn)將1對(duì)多數(shù)據(jù)與1對(duì)1數(shù)據(jù)互換
這篇文章主要介紹了R語(yǔ)言 實(shí)現(xiàn)將1對(duì)多數(shù)據(jù)與1對(duì)1數(shù)據(jù)互換的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03R語(yǔ)言學(xué)習(xí)ggplot2繪制統(tǒng)計(jì)圖形包全面詳解
這篇文章主要為大家詳細(xì)介紹了R語(yǔ)言學(xué)習(xí)ggplot2繪制統(tǒng)計(jì)圖形包的全面知識(shí)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11R語(yǔ)言決策基礎(chǔ)知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理了一篇關(guān)于R語(yǔ)言決策基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-03-03R語(yǔ)言線性回歸知識(shí)點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于R語(yǔ)言線性回歸知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。2021-05-05R語(yǔ)言繪制數(shù)據(jù)可視化小提琴圖Violin plot with dot畫法
這篇文章主要為大家介紹了R語(yǔ)言繪制數(shù)據(jù)可視化小提琴圖Violin plot with dot畫法的示例詳解有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-02-02R語(yǔ)言差異檢驗(yàn):非參數(shù)檢驗(yàn)操作
這篇文章主要介紹了R語(yǔ)言差異檢驗(yàn):非參數(shù)檢驗(yàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04