首页 > 移动平台 > 详细

bootstrapping中标准差计算

时间:2021-04-29 09:48:43      阅读:24      评论:0      收藏:0      [点我收藏+]

根据文献,我需要的bootstrapping标准差为

技术分享图片

d(t)是我的原始叠加结果,b(t)是第i次bootstrapping的结果。

而Matlab中std函数提供的标准差:

技术分享图片

所以直接采用std计算bootstrapping的标准差是不行的

所以写了一个bootstrapping的标准差的脚本:

function [boot_e] = boot_error(b_data,d)
%calculate standard error for bootstrapping data
%   b_data is a matrix, each sampling result is arranged in column. 
%   b_data 是一个矩阵,每一个抽样结果按列排列。
%   d is the observing data.
boot_num=size(b_data,2);
d_copy=repmat(d,[1,boot_num]);
diff2=(d_copy-b_data).^2;
Numerator_tmp=sum(diff2,2);
denominator=boot_num*(boot_num-1);
boot_e=sqrt(Numerator_tmp./denominator);
end

 复杂一点的,防止数据中有NaN的修改一下

function [boot_e] = boot_error(b_data,d)
%calculate standard error for bootstrapping data
%   b_data is a matrix, each sampling result is arranged in column. 
%   b_data 是一个矩阵,每一个抽样结果按列排列。
%   d is the observing data.
boot_num=size(b_data,2);
d_copy=repmat(d,[1,boot_num]);
diff2=(d_copy-b_data).^2;
Numerator_tmp=sum(diff2,2,‘omitnan‘);
boot_num_real=sum(~isnan(b_data), 2);
denominator=boot_num_real.*(boot_num_real-1);
boot_e=sqrt(Numerator_tmp./denominator);
end

 

bootstrapping中标准差计算

原文:https://www.cnblogs.com/shixun/p/14716261.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!