主要内容

Bootstrp.

Bootstrap采样

描述

例子

bootstat.= bootstp(nboot.Bootfun.D.吸引了nboot.引导数据示例D.,使用该功能计算每个样本的统计信息Bootfun.,并将结果返回bootstat..这Bootstrp.函数通过使用行的排列采样来创建每个引导程序样本D..输出参数的每一行bootstat.包含申请结果Bootfun.一个引导样本。

例子

bootstat.= bootstp(nboot.Bootfun.D.1、……D.N)吸引了nboot.引导来自数据的样本dl,...,dn.Nonscalar数据参数dl,...,dn必须具有相同数量的行,N.这Bootstrp.函数通过从索引中取样并替换来创建每个引导示例1:n ..并选择非卡拉尔的相应行dl,...,dn.该函数通过了非卡拉数据的样本和不变的标量数据参数dl,...,dnBootfun.

例子

bootstat.= bootstp(___名称,值除了先前语法中的任何输入参数组合之外,还使用一个或多个名称值对参数指定选项。例如,您可以将观察权重和并行计算自卷迭代。

例子

[bootstat.Bootsam.] = bootstrp(___也退货Bootsam., 一个N-经过-nboot.Bootstrap矩阵样本指标,其中N是原始非标量数据中的行数。每一列中Bootsam.对应于一个引导示例,并包含从非划分数据绘制的值的行索引以创建该样本。

获取引导示例指标而不将函数应用于样本,设置Bootfun.清空 ([]).

例子

全部折叠

估计自动启动手段的内核密度。

从均值为5的指数分布中生成100个随机数。

RNG('默认'重复性的%Y = EXPRND(5,100,1);

计算从向量中取出的100个自动样本的样本y

m = bootstp(100,@均值,y);

绘制一个bootstrapped均值的密度估计值。

[fi, xi] = ksdensity (m);情节(xi, fi)

图中包含一个轴。轴包含一个类型为line的对象。

计算和绘制100个引导样本的手段和标准偏差。

从均值为5的指数分布中生成100个随机数。

RNG('默认'重复性的%Y = EXPRND(5,100,1);

计算100个引入的手段的样本和从向量中取出的随机样本的标准偏差y

stats = bootstrp(100,@(x)[均值(x)std(x)],y);

绘制引导估计对。

情节(统计数据(:,1),统计数据(:,2),'o')包含('吝啬的') ylabel (“标准差”

图中包含一个轴。轴包含一个类型为line的对象。

采取患者数据的引导样本,计算每个数据样本的平均测量,并可视化结果。

加载耐心数据集。创建一个矩阵患者包含年龄,重量和高度测量。每一排患者对应一个病人。

加载耐心患者= [年龄重量高];

从数据中创建200引导数据示例患者.要创建每个样本,随机选择用替换100行(即,尺寸(patientData, 1))患者.对于每个样品,计算平均年龄,重量和高度测量。每一排bootstat.包含一个引导样本的三个平均测量值。

RNG('默认'重复性的%bootstat = bootstrp(200,@均值,upartdata);

可视化所有200引导数据样本的平均测量。注意,具有更大平均重量的引导样本往往具有更大的平均高度。

散射3(BootStat(:,1),BootStat(:,2),Bootstat(:,3))XLabel('平均年龄') ylabel ('平均重量') zlabel (的平均身高)查看([ -  75 10])

图中包含一个轴。轴包含一个散点类型的对象。

使用示例数据的引导重采样计算相关系数标准错误。

加载lawdata其中包含了15名学生的LSAT成绩和法学院平均绩点。

加载lawdataRNG('默认'重复性的%尺寸(LSAT)
ans =.1×215日1
大小(gpa)
ans =.1×215日1

通过重新采样15个数据点来创建1000个数据样本,并计算每个数据样本的两个变量之间的相关性。

[bootstat,bootsam] = bootstp(1000,@ corr,lsat,gpa);

显示前5个引导的相关系数。

bootstat(1:5,:)
ans =.5×10.9874 0.4918 0.5459 0.8458 0.8959

显示为前5个引导样本选择的数据的索引。

Bootsam(:,1:5)
ans =.15×513 3 11 8 12 14 7 1 7 4 2 14 5 10 8 14 12 1 11 11 10 15 2 12 14 2 13 5 15 5 1 11 11 9 9 13 5 10 3 15 15 15 3 3 15 11 1 2 4⋮

创建一个直方图,其显示所有引导样本的相关系数的变化。

直方图(bootstat)

图中包含一个轴。轴包含类型直方图的对象。

样本最小值为正,说明LSAT分数和GPA之间的关系不是偶然的。

最后,计算估计相关系数的引导标准。

se = std(bootstat)
se = 0.1285

将引导样本与不同的观察权重进行比较。创建一个自定义函数,可计算每个样本的统计信息。

从数字1到6创建50个引导示例。要创建每个示例,Bootstrp.随机选择从数字1到6,六次替换。这个过程类似于六次滚动。对于每个样本,自定义函数Countfun.(在本示例的末尾显示)计算样本中的1S的数量。

RNG('默认'重复性的%counts = bootstp(50,@ countfun,(1:6)');

注意:如果使用此示例的实时脚本文件,则Countfun.函数已经包含在文件的末尾。否则,您需要在.m文件的末尾创建此函数,或将其作为MATLAB®路径上的文件添加。

从数字1到6创建50个引导示例,但为数字分配不同的权重。每一次Bootstrp.从数字1到6随机选择,选择1的可能性是0.5,选2的概率是0.1, 等等。再次,Countfun.计算每个样本中的1s的数量。

重量= [0.5 0.1 0.1 0.1 0.1 0.1]';proceedcounts = bootstp(50,@ countfun,(1:6)','重量',重量);

用直方图比较两组bootstrap样本。

直方图(计数)直方图(掌权)传奇xlabel(“样本中的1s数量”) ylabel ('样本数量')举行

图中包含一个轴。轴包含2个类型直方图的2个对象。

两组自举样本具有不同的分布;特别地,第二组中的样品倾向于容纳更多1S。例如,在第一组中的50个样本中,只有两个样本包含超过两个1s。相比之下,在第二组中的50个样本(具有观察重量), 1 2 + 1 4. + 4. + 2 = 3. 2 样品包含两个以上的1s。

这段代码创建了函数Countfun.

函数numperofones = countfun(样本)numperofones = sum(sample == 1);结尾

通过自举残差估计线性回归中系数向量的标准误差。

注意:这个例子用途回归,当你只是需要一个回归模型的系数估计或残差,并且你需要重复拟合一个模型多次时,这是有用的,就像在bootstrapping的情况。如果需要进一步研究拟合的回归模型,可以使用Fitlm.

加载样例数据。

加载hal

执行线性回归,并计算残差。

x = [尺寸(尺寸(加热)),成分];Y =热;b =回归(y,x);Yfit = x * b;Resid = Y  -  Yfit;

通过引导残差来估计标准错误。

se = std(bootstrp(1000,@(bootr)回归(yfit + bootr,x),stare))
se =1×556.1752 0.5940 0.5815 0.5989 0.5691

输入参数

全部折叠

要绘制的引导样本数,指定为一个正整数标量。要创建每个引导示例,Bootstrp.随机选择替换N离开了N(非卡尔)数据的行D.d1,...,dn

例子:One hundred.

数据类型:单身的|双倍的

函数应用于每个示例,指定为函数句柄。函数可以是自定义函数或内置函数。您必须指定Bootfun.@的象征。

有关使用自定义函数的示例,请参阅将引导样本与不同的观察权重进行比较

例子:@吝啬的

数据类型:function_handle.

从,指定为列向量或矩阵的数据。这ND.对应观察。当您使用多个数据输入参数时d1,...,dn,您可以指定一些参数为标量值,但所有非标量参数必须具有相同的行数。

如果您使用单个矢量参数D.,你可以指定它为一个行向量。Bootstrp.然后对向量的元素进行采样。

数据类型:单身的|双倍的|逻辑|char|细绳|细胞|分类

名称-值对的观点

指定可选的逗号分离对名称,值论点。名称是参数名称和价值是对应的值。名称必须出现在引号内。您可以按如下顺序指定几个名称和值对参数name1,value1,...,namen,valuen

例子:Bootstp(4,@均值,(1:2)','权重',[0.4 0.6]')指定从值绘制四个引导样本12并采取每个样本的平均值。对于每次抽奖,获得a的概率10.4和获得a的概率20.6

观察权重,指定为逗号分隔的配对组成'重量'和具有至少一个正元素的非负载体。元素的数量重量必须等于行数N在数据D.d1,...,dn.要获取一个引导样本,Bootstrp.随机选择替换N在......之外N使用权重的数据行为多项式采样概率。

数据类型:单身的|双倍的

在Bootstrap采样期间并行计算自动启动迭代和设置随机数的选项,指定为包含的逗号分隔对'选项'和结构。创建选项结构与实例化.该表列出了选项字段及其值。

字段名称 价值 默认的
UseParallel 将此值设置为真正的并行计算bootstrap迭代。 错误的
Userumstreams.

将此值设置为真正的以可重复的方式并行地运行计算。

计算可重复的,设置溪流到允许子流的类型:“mlfg6331_64”'MRG32K3A'

错误的
溪流 将此值指定为arandstream.对象或此类对象的单元数组。对象时,使用单个对象UseParallel值是真正的Userumstreams.值是错误的.在这种情况下,使用与并行池大小相同的单元格数组。 如果您未指定溪流, 然后Bootstrp.使用默认流或流。

笔记

您需要并行计算工具箱™来并行运行计算。

例子:'选项',statset('deverypallellel',true)

数据类型:塑造

输出参数

全部折叠

Bootstrap示例统计信息,作为列向量或矩阵返回nboot.行。这一世th排bootstat.对应于应用的结果Bootfun.一世引导程序示例。如果Bootfun.返回一个矩阵或数组,然后Bootstrp.函数首先将此输出转换为行向量,然后将其存储在bootstat.

Bootstrap示例索引,返回为N-经过-nboot.数字矩阵,N是原始非标量数据中的行数。每一列中Bootsam.对应于一个引导示例,并包含从非划分数据绘制的值的行索引以创建该样本。

例如,如果每个数据都输入参数d1,...,dn包含16个值,和nboot = 4., 然后Bootsam.是一个16 × 4矩阵。第一列包含从中提取的16个值的索引d1,...,dn对于第一个引导示例,第二列包含第二个引导示例的索引,依此类推。所有输入数据集的引导索引都是相同的d1,...,dn

尖端

  • 获取Bootstrap示例索引Bootsam.在不向样本应用功能,设置Bootfun.清空 ([]).

扩展能力

之前介绍过的R2006a