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 个观测来估计 α。
> 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语言第八讲续 评估模型之自助法分析案例相关推荐
- R语言第八讲 评估模型之交叉验证法分析案例
题目 评估Auto数据集上拟合多个线性模型所产生的测试错误率.Auto数据集是存在与ISLR程序包中的一个摩托车相关数据的数据集,读者可自行下载ISLR程序包,并将Auto数据集加载. 相关资料 交叉 ...
- R语言使用rpart包构建决策树模型、使用prune函数进行树的剪枝、交叉验证预防过拟合、plotcp可视化复杂度、rpart.plot包可视化决策树、使用table函数计算混淆矩阵评估分类模型性能
R语言使用rpart包构建决策树模型.使用prune函数进行树的剪枝.使用10折交叉验证选择预测误差最低的树来预防过拟合.plotcp可视化决策树复杂度.rpart.plot包可视化最终决策树.使用t ...
- R语言编写自定义函数、评估回归模型预测变量的相对重要性(Relative importance)、通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加、评估预测变量的重要度、并通过点图可视化
R语言编写自定义函数.评估回归模型预测变量的相对重要性(Relative importance).通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加.来评估预测变量的重要程度.并通过点图可 ...
- R语言使用caret包对GBM模型自定义参数调优:自定义优化参数网格、可视化核心参数与评估指标关系、Accuracy与树的深度、个数的关系、Kappa与树的深度、个数的关系
R语言使用caret包对GBM模型自定义参数调优:自定义优化参数网格.可视化核心参数与评估指标关系.Accuracy与树的深度.个数的关系.Kappa与树的深度.个数的关系 目录 R语言使用caret ...
- R语言使用caret包对GBM模型参数调优(自定义调优的评估指标,例如ROC指标):抽取预测标签及类概率、抽样ROC的指标并绘制密度图
R语言使用caret包对GBM模型参数调优(自定义调优的评估指标,例如ROC指标):抽取预测标签及类概率.抽样ROC的指标并绘制密度图 目录 R语言使用caret包对GBM模型参数调优(自定义调优的评 ...
- R语言编写自定义函数计算分类模型评估指标:准确度、特异度、敏感度、PPV、NPV、数据数据为模型预测后的混淆矩阵、比较多个分类模型分类性能(逻辑回归、决策树、随机森林、支持向量机)
R语言编写自定义函数计算分类模型评估指标:准确度.特异度.敏感度.PPV.NPV.数据数据为模型预测后的混淆矩阵.比较多个分类模型分类性能(逻辑回归.决策树.随机森林.支持向量机) 目录
- 预测分析:R语言实现2.4 评估线性回归模型
2.4 评估线性回归模型 再次利用lm()函数,用线性回归模型来拟合数据.我们的两套数据集会用到上述数据框里剩下的所有输入特征.R提供了一种编写公式的简写方式,它可以把某个数据框里的所有列作为特征,除 ...
- R语言使用lm函数拟合多项式回归模型:使用predict函数和训练好的模型进行预测推理、计算回归模型的评估指标MAE、MSE、RMSE、R方等指标
R语言使用lm函数拟合多项式回归模型:使用predict函数和训练好的模型进行预测推理.计算回归模型的评估指标MAE.MSE.RMSE.R方等指标 目录
- R语言编程 第一讲 变量与赋值
R语言编程 第一讲 变量与赋值 R语言的变量名 赋值符号 <- 与 = 的区别 赋值符号 <- 的更多细节 Copy-on-Modify与Modify-in-Place 函数调用 列表 数 ...
最新文章
- TensorRT 数据格式说明
- Spring Boot 为什么这么火?
- 2016设置方框的尺寸_四种模板脚手架分类、优缺点及参数设置对比
- where field in
- 为什么从前那些.NET开发者都不写单元测试呢?
- 计算机组成原理怎么考察的,计算机组成原理课程考察报告(论文).doc
- 公钥密码--Paillier
- 【剑指offer】面试题40:最小的k个数(java)
- 【逆强化学习-2】最大熵学习(Maximum Entropy Learning)
- 7-210 英文单词排序 (25 分)
- 洞察疫情,微软推出新冠数据分析网站 COVID Insights
- Python数据分析与展示[第二周]
- 算法的时间复杂度和空间复杂度(java)
- C#委托 模板和回调函数
- 使用phpquery采集小说
- paypal php 退款,PayPal的Restful-API方式退款、WEB支付、回调
- IPtables中SNAT、DNAT和MASQUERADE的含义 (转)
- 百度校园招聘笔试题(扫描版)
- 世界电影经典《第七封印》
- Android发带附件和图片的邮件