R语言第八讲续 评估模型之自助法分析案例
題目
? ? ? ?今天來用自助法評估一下ISLR 程序包中的 Portfolio (金融資產(chǎn))數(shù)據(jù)集的預(yù)測函數(shù)
相關(guān)資料
? ??
自助法(Bootstraping)是另一種模型驗(yàn)證(評估)的方法(之前已經(jīng)介紹過單次驗(yàn)證和交叉驗(yàn)證)。其以自助采樣(Bootstrap Sampling)為基礎(chǔ),即有放回的采樣或重復(fù)采樣。(注:這是一種樣本內(nèi)抽樣的方法,即將樣本看作總體并從中進(jìn)行抽樣。)
具體做法是:在含有 m 個(gè)樣本的數(shù)據(jù)集中,每次隨機(jī)挑選一個(gè)樣本,?將其作為訓(xùn)練樣本,再將此樣本放回到數(shù)據(jù)集中,這樣有放回地抽樣 m 次,生成一個(gè)與原數(shù)據(jù)集大小相同的數(shù)據(jù)集,這個(gè)新數(shù)據(jù)集就是訓(xùn)練集。這樣有些樣本可能在訓(xùn)練集中出現(xiàn)多次,有些則可能從未出現(xiàn)。原數(shù)據(jù)集中大概有 36.8% 的樣本不會(huì)出現(xiàn)在新數(shù)據(jù)集中。因此,我們把這些未出現(xiàn)在新數(shù)據(jù)集中的樣本作為驗(yàn)證集。把前面的步驟重復(fù)進(jìn)行多次,這樣就可以訓(xùn)練出多個(gè)模型并得到它們的驗(yàn)證誤差,然后取平均值,作為該模型的驗(yàn)證誤差。
? ? ? ? 如果需要在多個(gè)不同的模型中進(jìn)行選擇,那么事先留出測試集,然后在剩余的數(shù)據(jù)集上用自助法驗(yàn)證模型,選擇驗(yàn)證誤差最小的模型作為最好的模型,然后用訓(xùn)練集+驗(yàn)證集數(shù)據(jù)按最好模型的設(shè)置訓(xùn)練出一個(gè)新的模型,作為最終的模型,最后用測試集測試最終的模型。
實(shí)驗(yàn)??
? ? ? ?為了在這個(gè) 數(shù)據(jù)集上說明自助法的使用,首先必須創(chuàng)建一個(gè)函數(shù)alpha. fn ()來輸入數(shù)據(jù)(X,Y) , 以 及表明用哪些觀測來估計(jì) α 的向量,然后輸出由入選的觀測所計(jì)算得到的 α 估計(jì)的結(jié)果。
# The Bootstrap#自助法# 兩個(gè)步驟:第一,創(chuàng)建一個(gè)計(jì)算感興趣的統(tǒng)計(jì)量的函數(shù)# 第二,用boot庫中的boot()有放回地抽取觀測來執(zhí)行自助法alpha.fn=function(data,index){X=data$X[index]Y=data$Y[index]return((var(Y)-cov(X,Y))/(var(X)+var(Y)-2*cov(X,Y))) }? ? ? ? 這個(gè)函數(shù)返回 (return) 或者說輸出,對參數(shù) index 選中的觀測用自助法公式計(jì)算得到的 α 的一個(gè)估計(jì)。比如說,下面的命令讓 R 用全部 100 個(gè)觀測來估計(jì) α。
? ?
? ? ? 下面的命令用 sample ()函數(shù)來隨機(jī)地從 1 到 100 中有放困地選取 100 個(gè)觀測。這相當(dāng)于創(chuàng)建 了一個(gè)新的自助法數(shù)據(jù)集,然后在新的數(shù)據(jù)集上重新計(jì)算α。
> set.seed(1) > alpha.fn(Portfolio,sample(100,100,replace=T))#[1] 0.5963833 [1] 0.7368375? ? ? ? 可以通過多次運(yùn)行這個(gè)命令,把所有相應(yīng)的 α 估計(jì)記錄下來,然后計(jì)算其標(biāo)準(zhǔn)差,來實(shí)現(xiàn)自助 法分析。但是. boot ()函數(shù)可以讓這個(gè)方法自動(dòng)進(jìn)行。下商產(chǎn)生 R=1000 個(gè) α 的自助法 估計(jì)。
> library(boot) > boot(Portfolio,alpha.fn,R=1000)#可以多次自動(dòng)運(yùn)行這個(gè)命令ORDINARY NONPARAMETRIC BOOTSTRAPCall: boot(data = Portfolio, statistic = alpha.fn, R = 1000)Bootstrap Statistics :original bias std. error t1* 0.5758321 -0.001695873 0.09366347?
總結(jié)
以上是生活随笔為你收集整理的R语言第八讲续 评估模型之自助法分析案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux基础 linhaifeng,L
- 下一篇: 启动不起来_国产开源工具:U盘启动工具V