我想在 Matlab 中执行 Bootstrap 。我有 100 个原始数据点,我希望 Bootstrap 的每次迭代仅选择 57 个点并随机替换。我该如何实现它?
我似乎无法在 Matlab 函数 bootstrp
中找到此功能。
问候,
最佳答案
要从向量中随机选择 n
个点并进行替换:使用 randi
生成(可能重复的)索引:
vector = (1:100).^2; %// example data
n = 57;
ind = randi(numel(vector),1,n); %// n random integers between 1 and numel(vector)
sample = vector(ind);
要直接使用 bootstrp
执行此操作:让 fun
表示要传递给 bootstrp
的函数。您只需选择每个 100 个值样本的前 57 个值:
vector = (1:100).^2; %// example data
n = 57;
nboot = 10;
bootstrp(nboot, @(x) fun(x(1:57)), vector)
关于Matlab Bootstrap未完成重采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21024678/