R语言第八讲续 评估模型之自助法分析案例
題目
? ? ? ?今天來用自助法評估一下ISLR 程序包中的 Portfolio (金融資產(chǎn))數(shù)據(jù)集的預測函數(shù)
相關資料
? ??
自助法(Bootstraping)是另一種模型驗證(評估)的方法(之前已經(jīng)介紹過單次驗證和交叉驗證)。其以自助采樣(Bootstrap Sampling)為基礎,即有放回的采樣或重復采樣。(注:這是一種樣本內(nèi)抽樣的方法,即將樣本看作總體并從中進行抽樣。)
具體做法是:在含有 m 個樣本的數(shù)據(jù)集中,每次隨機挑選一個樣本,?將其作為訓練樣本,再將此樣本放回到數(shù)據(jù)集中,這樣有放回地抽樣 m 次,生成一個與原數(shù)據(jù)集大小相同的數(shù)據(jù)集,這個新數(shù)據(jù)集就是訓練集。這樣有些樣本可能在訓練集中出現(xiàn)多次,有些則可能從未出現(xiàn)。原數(shù)據(jù)集中大概有 36.8% 的樣本不會出現(xiàn)在新數(shù)據(jù)集中。因此,我們把這些未出現(xiàn)在新數(shù)據(jù)集中的樣本作為驗證集。把前面的步驟重復進行多次,這樣就可以訓練出多個模型并得到它們的驗證誤差,然后取平均值,作為該模型的驗證誤差。
? ? ? ? 如果需要在多個不同的模型中進行選擇,那么事先留出測試集,然后在剩余的數(shù)據(jù)集上用自助法驗證模型,選擇驗證誤差最小的模型作為最好的模型,然后用訓練集+驗證集數(shù)據(jù)按最好模型的設置訓練出一個新的模型,作為最終的模型,最后用測試集測試最終的模型。
實驗??
? ? ? ?為了在這個 數(shù)據(jù)集上說明自助法的使用,首先必須創(chuàng)建一個函數(shù)alpha. fn ()來輸入數(shù)據(jù)(X,Y) , 以 及表明用哪些觀測來估計 α 的向量,然后輸出由入選的觀測所計算得到的 α 估計的結(jié)果。
# The Bootstrap#自助法# 兩個步驟:第一,創(chuàng)建一個計算感興趣的統(tǒng)計量的函數(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))) }? ? ? ? 這個函數(shù)返回 (return) 或者說輸出,對參數(shù) index 選中的觀測用自助法公式計算得到的 α 的一個估計。比如說,下面的命令讓 R 用全部 100 個觀測來估計 α。
? ?
? ? ? 下面的命令用 sample ()函數(shù)來隨機地從 1 到 100 中有放困地選取 100 個觀測。這相當于創(chuàng)建 了一個新的自助法數(shù)據(jù)集,然后在新的數(shù)據(jù)集上重新計算α。
> set.seed(1) > alpha.fn(Portfolio,sample(100,100,replace=T))#[1] 0.5963833 [1] 0.7368375? ? ? ? 可以通過多次運行這個命令,把所有相應的 α 估計記錄下來,然后計算其標準差,來實現(xiàn)自助 法分析。但是. boot ()函數(shù)可以讓這個方法自動進行。下商產(chǎn)生 R=1000 個 α 的自助法 估計。
> library(boot) > boot(Portfolio,alpha.fn,R=1000)#可以多次自動運行這個命令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