Dan*_*Dan 8 random statistics matlab matrix
使用以下两种方法为montecarlo模拟生成一系列路径之间是否存在统计差异(请注意,路径中我指的是350点的向量,通常是分布式的):
一个)
for path = 1:300000
Zn(path, :) = randn(1, 350);
end
Run Code Online (Sandbox Code Playgroud)
或更高效的B)
Zn = randn(300000, 350);
Run Code Online (Sandbox Code Playgroud)
我只希望确保没有滑稽相加的关联或方法B中的行之间的依赖也许就像方法乙通常分布在2维,其中A是用1种尺寸,其不存在于方法A,所以也许这使得两个统计上有所不同?
如果存在差异,那么我需要知道相同的均匀分布(即rand而不是randn)
只需添加@natan(+1)的答案,运行以下代码:
%# Store the seed
Rng1 = rng;
%# Get a matrix of random numbers
X = rand(3, 3);
%# Restore the seed
rng(Rng1);
%# Get a matrix of random numbers one vector at a time
Y = nan(3, 3);
for n = 1:3
Y(:, n) = rand(3, 1);
end
%# Test for differences
if any(any(X - Y ~= 0)); disp('Error'); end;
Run Code Online (Sandbox Code Playgroud)
你会注意到X和之间没有区别Y.也就是说,在一步构建矩阵和从一系列向量构建矩阵之间没有区别.
但是,我和我的代码之间存在差异.注意我按列而不是行rand填充矩阵,因为当用于在一个步骤中构造矩阵时,它按列填充.顺便说一句,我不确定你是否意识到,但作为一般规则,你应该总是尝试对矩阵列而不是行执行向量运算.我在前几天回答了关于SO的问题时解释了原因; 看到这里更多......
关于独立/依赖的问题,人们需要小心使用的语言.所产生的数字序列rand是完全依赖.对于绝大多数统计测试而言,它们看起来是独立的 - 尽管如此,理论上,人们可以构建一个统计测试来证明一系列数字之间的依赖关系rand.
最后的想法,如果你有一份Greene的"计量经济学分析",他在第17.2节中对随机数生成进行了简洁的讨论.
| 归档时间: |
|
| 查看次数: |
273 次 |
| 最近记录: |