最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解R語言中的多項式回歸、局部回歸、核平滑和平滑樣條回歸模型

 更新時間:2021年03月10日 11:31:17   作者:Kaizong Ye  
這篇文章主要介紹了R語言中的多項式回歸、局部回歸、核平滑和平滑樣條回歸模型,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在標(biāo)準(zhǔn)線性模型中,我們假設(shè) 。當(dāng)線性假設(shè)無法滿足時,可以考慮使用其他方法。

多項式回歸

擴(kuò)展可能是假設(shè)某些多項式函數(shù),

同樣,在標(biāo)準(zhǔn)線性模型方法(使用GLM的條件正態(tài)分布)中,參數(shù)  可以使用最小二乘法獲得,其中  在  。

即使此多項式模型不是真正的多項式模型,也可能仍然是一個很好的近似值 。實際上,根據(jù) Stone-Weierstrass定理,如果  在某個區(qū)間上是連續(xù)的,則有一個統(tǒng)一的近似值  ,通過多項式函數(shù)。

僅作說明,請考慮以下數(shù)據(jù)集

db = data.frame(x=xr,y=yr)
plot(db)

 

與標(biāo)準(zhǔn)回歸線

reg = lm(y ~ x,data=db)
abline(reg,col="red")

考慮一些多項式回歸。如果多項式函數(shù)的次數(shù)足夠大,則可以獲得任何一種模型,

reg=lm(y~poly(x,5),data=db)

但是,如果次數(shù)太大,那么會獲得太多的“波動”,

reg=lm(y~poly(x,25),data=db)

并且估計值可能不可靠:如果我們更改一個點,則可能會發(fā)生(局部)更改

yrm=yr;yrm[31]=yr[31]-2 
lines(xr,predict(regm),col="red")

局部回歸

實際上,如果我們的興趣是局部有一個很好的近似值  ,為什么不使用局部回歸?

使用加權(quán)回歸可以很容易地做到這一點,在最小二乘公式中,我們考慮

在這里,我考慮了線性模型,但是可以考慮任何多項式模型。在這種情況下,優(yōu)化問題是

可以解決,因為

例如,如果我們想在某個時候進(jìn)行預(yù)測 , 考慮 。使用此模型,我們可以刪除太遠(yuǎn)的觀測值,

更一般的想法是考慮一些核函數(shù)  給出權(quán)重函數(shù),以及給出鄰域長度的一些帶寬(通常表示為h),

這實際上就是所謂的 Nadaraya-Watson 函數(shù)估計器 
在前面的案例中,我們考慮了統(tǒng)一核 ,

但是使用這種權(quán)重函數(shù)具有很強的不連續(xù)性不是最好的選擇,嘗試高斯核,

這可以使用

w=dnorm((xr-x0))
reg=lm(y~1,data=db,weights=w)

在我們的數(shù)據(jù)集上,我們可以繪制

w=dnorm((xr-x0))
plot(db,cex=abs(w)*4)
lines(ul,vl0,col="red")
axis(3)
axis(2)
reg=lm(y~1,data=db,weights=w)
u=seq(0,10,by=.02)
v=predict(reg,newdata=data.frame(x=u))
lines(u,v,col="red",lwd=2)

在這里,我們需要在點2進(jìn)行局部回歸。下面的水平線是回歸(點的大小與寬度成比例)。紅色曲線是局部回歸的演變

讓我們使用動畫來可視化曲線。

但是由于某些原因,我無法在Linux上輕松安裝該軟件包。我們可以使用循環(huán)來生成一些圖形

name=paste("local-reg-",100+i,".png",sep="")
png(name,600,400)
for(i in 1:length(vx0)) graph (i)

然后,我使用

當(dāng)然,可以考慮局部線性模型,

return(predict(reg,newdata=data.frame(x=x0)))}

甚至是二次(局部)回歸,

lm(y~poly(x,degree=2), weights=w)

當(dāng)然,我們可以更改帶寬

請注意,實際上,我們必須選擇權(quán)重函數(shù)(所謂的核)​​。但是,有(簡單)方法來選擇“最佳”帶寬h。交叉驗證的想法是考慮

  是使用局部回歸獲得的預(yù)測。  

我們可以嘗試一些真實的數(shù)據(jù)。

library(XML)
 
data = readHTMLTable(html)

整理數(shù)據(jù)集,

plot(data$no,data$mu,ylim=c(6,10))
segments(data$no,data$mu-1.96*data$se,

我們計算標(biāo)準(zhǔn)誤差,反映不確定性。

for(s in 1:8){reg=lm(mu~no,data=db, 
lines((s predict(reg)[1:12]

所有季節(jié)都應(yīng)該被認(rèn)為是完全獨立的,這不是一個很好的假設(shè)。

smooth(db$no,db$mu,kernel = "normal",band=5)

我們可以嘗試查看帶寬較大的曲線。

db$mu[95]=7
 
plot(data$no,data$mu
 
lines(NW,col="red")

樣條平滑

接下來,討論回歸中的平滑方法。假設(shè) ,  是一些未知函數(shù),但假定足夠平滑。例如,假設(shè)  是連續(xù)的,  存在,并且是連續(xù)的,   存在并且也是連續(xù)的等等。如果  足夠平滑,  可以使用泰勒展開式。 因此,對于 

也可以寫成

第一部分只是一個多項式。

使用 黎曼積分,觀察到

因此,

我們有線性回歸模型。一個自然的想法是考慮回歸 https://latex.codecogs.com/gif.latex?Y,對于 https://latex.codecogs.com/gif.latex?\boldsymbol{X} 

給一些節(jié)點 https://latex.codecogs.com/gif.latex?\ {x_1,\ cdots,x_k \}。

plot(db)

如果我們考慮一個節(jié)點,并擴(kuò)展階數(shù)1,

B=bs(xr,knots=c(3),Boundary.knots=c(0,10),degre=1)
 
lines(xr[xr<=3],predict(reg)[xr<=3],col="red")
lines(xr[xr>=3],predict(reg)[xr>=3],col="blue")

可以將用該樣條獲得的預(yù)測與子集(虛線)上的回歸進(jìn)行比較。

lines(xr[xr<=3],predict(reg)[xr<=3
 
lm(yr~xr,subset=xr>=3)

這是不同的,因為這里我們有三個參數(shù)(關(guān)于兩個子集的回歸)。當(dāng)要求連續(xù)模型時,失去了一個自由度。觀察到可以等效地寫

lm(yr~bs(xr,knots=c(3),Boundary.knots=c(0,10)

回歸中出現(xiàn)的函數(shù)如下

現(xiàn)在,如果我們對這兩個分量進(jìn)行回歸,我們得到

matplot(xr,B
 
abline(v=c(0,2,5,10),lty=2)

如果加一個節(jié)點,我們得到

預(yù)測是

lines(xr,predict(reg),col="red")

http://freakonometrics.hypotheses.org/files/2013/10/Selection_147.png

我們可以選擇更多的節(jié)點

lines(xr,predict(reg),col="red")

我們可以得到一個置信區(qū)間

polygon(c(xr,rev(xr)),c(P[,2],rev(P[,3]))
 
points(db)

如果我們保持先前選擇的兩個節(jié)點,但考慮泰勒的2階的展開,我們得到

matplot(xr,B,type="l")
abline(v=c(0,2,5,10),lty=2)

如果我們考慮常數(shù)和基于樣條的第一部分,我們得到

B=cbind(1,B)
lines(xr,B[,1:k]%*%coefficients(reg)[1:k],col=k-1,lty=k-1)

如果我們將常數(shù)項,第一項和第二項相加,則我們得到的部分在第一個節(jié)點之前位于左側(cè),

k=3
lines(xr,B[,1:k]%*%coefficients(reg)[1:k]

http://freakonometrics.hypotheses.org/files/2013/10/Selection_165.png

通過基于樣條的矩陣中的三個項,我們可以得到兩個節(jié)點之間的部分,

lines(xr,B[,1:k]%*%coefficients(reg)[1:k]

最后,當(dāng)我們對它們求和時,這次是最后一個節(jié)點之后的右側(cè)部分,

k=5

這是我們使用帶有兩個(固定)節(jié)點的二次樣條回歸得到的結(jié)果。可以像以前一樣獲得置信區(qū)間

polygon(c(xr,rev(xr)),c(P[,2],rev(P[,3]))
 
points(db)
lines(xr,P[,1],col="red")

使用函數(shù) https://latex.codecogs.com/gif.latex?(x-x_i)_+,可以確保點的連續(xù)性 https://latex.codecogs.com/gif.latex?x_i。

再一次,使用線性樣條函數(shù),可以增加連續(xù)性約束,

lm(mu~bs(no,knots=c(12*(1:7)+.5),Boundary.knots=c(0,97),
 
lines(c(1:94,96),predict(reg),col="red")

但是我們也可以考慮二次樣條,

abline(v=12*(0:8)+.5,lty=2)
 
lm(mu~bs(no,knots=c(12*(1:7)+.5),Boundary.knots=c(0,97),


到此這篇關(guān)于詳解R語言中的多項式回歸、局部回歸、核平滑和平滑樣條回歸模型的文章就介紹到這了,更多相關(guān)R語言多項式回歸、局部回歸內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R語言 用均值替換、回歸插補及多重插補進(jìn)行插補的操作

    R語言 用均值替換、回歸插補及多重插補進(jìn)行插補的操作

    這篇文章主要介紹了R語言 用均值替換、回歸插補及多重插補進(jìn)行插補的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • R語言boxplot函數(shù)深入講解

    R語言boxplot函數(shù)深入講解

    這篇文章主要介紹了R語言boxplot函數(shù)深入講解,文中圖文講解的很透徹,有感興趣的同學(xué)可以研究下
    2021-03-03
  • R語言學(xué)習(xí)之字符串和時間格式化詳解

    R語言學(xué)習(xí)之字符串和時間格式化詳解

    這篇文章主要為大家詳細(xì)介紹了R語言中字符串和時間格式化的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • R語言技巧Rcpp與Eigen庫之間的相互轉(zhuǎn)換

    R語言技巧Rcpp與Eigen庫之間的相互轉(zhuǎn)換

    這篇文章主要為大家介紹了R語言中Rcpp與Eigen庫之間的相互轉(zhuǎn)換的技巧操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • 輕松學(xué)會R語言識別Excel日期

    輕松學(xué)會R語言識別Excel日期

    想知道如何用R語言識別Excel中的日期嗎?別擔(dān)心,我們有你需要的全部信息!本指南將向你展示如何使用R語言輕松識別Excel表格中的日期數(shù)據(jù),讓你在數(shù)據(jù)分析中游刃有余,快來掌握這一技巧,讓數(shù)據(jù)處理更加高效!
    2023-12-12
  • R語言學(xué)習(xí)筆記之lm函數(shù)詳解

    R語言學(xué)習(xí)筆記之lm函數(shù)詳解

    這篇文章主要介紹了R語言學(xué)習(xí)筆記之lm函數(shù)詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 詳解R語言實現(xiàn)前向逐步回歸(前向選擇模型)

    詳解R語言實現(xiàn)前向逐步回歸(前向選擇模型)

    本文主要介紹了詳解R語言實現(xiàn)前向逐步回歸,從實現(xiàn)原理開始,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • R語言讀取柵格數(shù)據(jù)的方法(raster包讀取)

    R語言讀取柵格數(shù)據(jù)的方法(raster包讀取)

    這篇文章主要介紹了R語言讀取柵格數(shù)據(jù)的方法,本文就只是對R語言raster包讀取、處理柵格數(shù)據(jù)加以基本的方法介紹,需要的朋友可以參考下
    2023-05-05
  • R語言-使用ifelse進(jìn)行數(shù)據(jù)分組

    R語言-使用ifelse進(jìn)行數(shù)據(jù)分組

    這篇文章主要介紹了R語言-使用ifelse進(jìn)行數(shù)據(jù)分組,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言繪圖基礎(chǔ)教程(新手入門推薦!)

    R語言繪圖基礎(chǔ)教程(新手入門推薦!)

    數(shù)據(jù)作圖是數(shù)據(jù)分析的重要方法之一,R提供了豐富的作圖函,下面這篇文章主要給大家介紹了關(guān)于R語言繪圖基礎(chǔ)教程的相關(guān)資料,文中通過實例代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11

最新評論

阿拉善盟| 麻阳| 尼木县| 马龙县| 鄱阳县| 商河县| 赤水市| 辰溪县| 隆尧县| 健康| 太仆寺旗| 盐源县| 新竹市| 呼伦贝尔市| 乐亭县| 郎溪县| 田东县| 陵川县| 通辽市| 六安市| 嘉禾县| 久治县| 尚义县| 育儿| 辽源市| 正宁县| 哈尔滨市| 桐乡市| 凌源市| 安塞县| 贺兰县| 博乐市| 崇礼县| 金乡县| 邵武市| 西乌珠穆沁旗| 蛟河市| 永吉县| 法库县| 武夷山市| 济源市|