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