题目

今天来用自助法评估一下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 个观测来估计 α。

> library(ISLR)
> alpha.fn(Portfolio,1:100)#[1] 0.5758321
[1] 0.5758321

下面的命令用 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语言第八讲续 评估模型之自助法分析案例相关推荐

  1. R语言第八讲 评估模型之交叉验证法分析案例

    题目 评估Auto数据集上拟合多个线性模型所产生的测试错误率.Auto数据集是存在与ISLR程序包中的一个摩托车相关数据的数据集,读者可自行下载ISLR程序包,并将Auto数据集加载. 相关资料 交叉 ...

  2. R语言使用rpart包构建决策树模型、使用prune函数进行树的剪枝、交叉验证预防过拟合、plotcp可视化复杂度、rpart.plot包可视化决策树、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用rpart包构建决策树模型.使用prune函数进行树的剪枝.使用10折交叉验证选择预测误差最低的树来预防过拟合.plotcp可视化决策树复杂度.rpart.plot包可视化最终决策树.使用t ...

  3. R语言编写自定义函数、评估回归模型预测变量的相对重要性(Relative importance)、通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加、评估预测变量的重要度、并通过点图可视化

    R语言编写自定义函数.评估回归模型预测变量的相对重要性(Relative importance).通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加.来评估预测变量的重要程度.并通过点图可 ...

  4. R语言使用caret包对GBM模型自定义参数调优:自定义优化参数网格、可视化核心参数与评估指标关系、Accuracy与树的深度、个数的关系、Kappa与树的深度、个数的关系

    R语言使用caret包对GBM模型自定义参数调优:自定义优化参数网格.可视化核心参数与评估指标关系.Accuracy与树的深度.个数的关系.Kappa与树的深度.个数的关系 目录 R语言使用caret ...

  5. R语言使用caret包对GBM模型参数调优(自定义调优的评估指标,例如ROC指标):抽取预测标签及类概率、抽样ROC的指标并绘制密度图

    R语言使用caret包对GBM模型参数调优(自定义调优的评估指标,例如ROC指标):抽取预测标签及类概率.抽样ROC的指标并绘制密度图 目录 R语言使用caret包对GBM模型参数调优(自定义调优的评 ...

  6. R语言编写自定义函数计算分类模型评估指标:准确度、特异度、敏感度、PPV、NPV、数据数据为模型预测后的混淆矩阵、比较多个分类模型分类性能(逻辑回归、决策树、随机森林、支持向量机)

    R语言编写自定义函数计算分类模型评估指标:准确度.特异度.敏感度.PPV.NPV.数据数据为模型预测后的混淆矩阵.比较多个分类模型分类性能(逻辑回归.决策树.随机森林.支持向量机) 目录

  7. 预测分析:R语言实现2.4 评估线性回归模型

    2.4 评估线性回归模型 再次利用lm()函数,用线性回归模型来拟合数据.我们的两套数据集会用到上述数据框里剩下的所有输入特征.R提供了一种编写公式的简写方式,它可以把某个数据框里的所有列作为特征,除 ...

  8. R语言使用lm函数拟合多项式回归模型:使用predict函数和训练好的模型进行预测推理、计算回归模型的评估指标MAE、MSE、RMSE、R方等指标

    R语言使用lm函数拟合多项式回归模型:使用predict函数和训练好的模型进行预测推理.计算回归模型的评估指标MAE.MSE.RMSE.R方等指标 目录

  9. R语言编程 第一讲 变量与赋值

    R语言编程 第一讲 变量与赋值 R语言的变量名 赋值符号 <- 与 = 的区别 赋值符号 <- 的更多细节 Copy-on-Modify与Modify-in-Place 函数调用 列表 数 ...

最新文章

  1. TensorRT 数据格式说明
  2. Spring Boot 为什么这么火?
  3. 2016设置方框的尺寸_四种模板脚手架分类、优缺点及参数设置对比
  4. where field in
  5. 为什么从前那些.NET开发者都不写单元测试呢?
  6. 计算机组成原理怎么考察的,计算机组成原理课程考察报告(论文).doc
  7. 公钥密码--Paillier
  8. 【剑指offer】面试题40:最小的k个数(java)
  9. 【逆强化学习-2】最大熵学习(Maximum Entropy Learning)
  10. 7-210 英文单词排序 (25 分)
  11. 洞察疫情,微软推出新冠数据分析网站 COVID Insights
  12. Python数据分析与展示[第二周]
  13. 算法的时间复杂度和空间复杂度(java)
  14. C#委托 模板和回调函数
  15. 使用phpquery采集小说
  16. paypal php 退款,PayPal的Restful-API方式退款、WEB支付、回调
  17. IPtables中SNAT、DNAT和MASQUERADE的含义 (转)
  18. 百度校园招聘笔试题(扫描版)
  19. 世界电影经典《第七封印》
  20. Android发带附件和图片的邮件

热门文章

  1. html字体加大标签与写法介绍
  2. bzoj1053: [HAOI2007]反素数ant
  3. OpenGL于MFC使用汇总(三)——离屏渲染
  4. date format 精辟讲解
  5. '[linux下tomcat 配置
  6. GARFIELD@01-19-2005
  7. git命令:将多个commit提交记录修改为1条
  8. Postgre体系结构图
  9. std::vector中resize()和reserve()区别
  10. 字节取消大小周,部分员工:心疼,每个月少拿 1W 块