norm_crnd.m

来自「计量工具箱」· M 代码 · 共 33 行

M
33
字号
function y = norm_crnd(n,epsilon,sigma)
% PURPOSE: random numbers from a contaminated normal distribution
% y = (1-epsilon)*N(0,1) + epsilon*N(0,sigma^2)
%---------------------------------------------------
% USAGE:   y = norm_crnd(n,eps,sigma)
% where:   n = size of the vector returned
%        sig = a scalar variance (sigma^2)
%        eps = scalar 0 < eps < 1
%---------------------------------------------------      
% RETURNS: y = random vector of contaminated 
%              normal random draws 
%---------------------------------------------------
% SEE ALSO: norm_d, norm_rnd, norm_inv, norm_cdf
%---------------------------------------------------

% written by:
% James P. LeSage, Dept of Economics
% University of Toledo
% 2801 W. Bancroft St,
% Toledo, OH 43606
% jlesage@spatial-econometrics.com

u = unif_rnd(n,0,1);
for i = 1:n
    if u(i)<= epsilon
       v(i) = sigma;
    else
       v(i) = 1;
    end
end
g = randn(n,1);
y = g.*v';

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?