ECDF 的置信范围
机器算法验证
统计学意义
置信区间
Python
matlab
2022-04-08 15:36:53
1个回答
在 Matlab 的控制台类型中:
edit ecdf
它在编辑器中打开源代码。
转到第 194 行:
if nargout>2 || (nargout==0 && isequal(bounds,'on'))
这是计算下限和上限(置信度)边界的代码块的开始[Flo, Fup]
:代码块长 30 行,非常简单。为了您的方便,贴在下面:
if nargout>2 || (nargout==0 && isequal(bounds,'on'))
% Get standard error of requested function
if cdf_sf % 'cdf' or 'survivor'
se = NaN(size(D));
if N(end)==D(end)
t = 1:length(N)-1;
else
t = 1:length(N);
end
se(t) = S(t) .* sqrt(cumsum(D(t) ./ (N(t) .* (N(t)-D(t))))); % <--- line 203
else % 'cumhazard'
se = sqrt(cumsum(D ./ (N .* N)));
end
% Get confidence limits
zalpha = -norminv(alpha/2);
halfwidth = zalpha*se;
Flo = max(0, Func - halfwidth);
Flo(isnan(halfwidth)) = NaN; % max drops NaNs, put them back
if cdf_sf % 'cdf' or 'survivor'
Fup = min(1, Func + halfwidth);
Fup(isnan(halfwidth)) = NaN; % max drops NaNs
else % 'cumhazard'
Fup = Func + halfwidth; % no restriction on upper limit
end
Flo = [NaN; Flo];
Fup = [NaN; Fup];
else
Flo = [];
Fup = [];
end
格林伍德公式的平方根,即
在第 203 行中实现为:
se(t) = S(t) .* sqrt(cumsum(D(t) ./ (N(t) .* (N(t)-D(t)))));
你能从这里拿走吗?让我知道。
其它你可能感兴趣的问题