直方图产生的值低于预期
Histogram plot produces lower values than expected
让我们将 X 定义为:
以及与之相关的对象:
我想计算以下函数的值,并将其绘制在与 Y 的特征值相同的图形上。
我目前的工作
# Define dimensions of X
N=700;
T=900;
lambda=N/T;
# Randomize X
x=randn(N,T);
# Estimate standard deviation
s=std(x(:));
# Now we estimate y and it's eigenvalues
y=x*x'/T;
l=eig(y);
# Calculating lambda_plus and lambda_minus
lambda_plus=(s^2)*(1+sqrt(lambda))^2;
lambda_minus=(s^2)*(1-sqrt(lambda))^2;
x_lim = linspace(0.1, 3, 10^3)
# Taking into account indicator function
if (x_lim <= lambda_plus && x_lim>= lambda_minus);
smth=(1./(2*pi*lambda*x_lim*s^(2))).*sqrt((lambda_plus-x_lim).*(x_lim-lambda_minus));
else
smth = 0
endif
# Normalize histogram
[f, p] = hist(l, nbins = 20)
hold on;
bar(p, f / sum(f));
plot(x_lim, smth)
这个函数的问题是输出如下所示:
这看起来不应该。根据互联网上的 wikipedia these two plots should converge much more significantly. I found somewhere 非常相似的情节,看起来像这样:
我的问题是:我做错了什么?我选择了错误的比例吗?正如我在第二个绘图函数中看到的那样,它的值比我的要少得多,但我不知道它的计算有什么问题。你能帮我看看我做错了什么吗?
是的,这是一个尺度问题。您正在将直方图标准化为
bar(p, f / sum(f));
生成所有条形高度的 单位总和 。相反,您应该使用
bar(p, f / sum(f) / (p(2)-p(1)));
生产单位面积。
让我们将 X 定义为:
以及与之相关的对象:
我想计算以下函数的值,并将其绘制在与 Y 的特征值相同的图形上。
我目前的工作
# Define dimensions of X
N=700;
T=900;
lambda=N/T;
# Randomize X
x=randn(N,T);
# Estimate standard deviation
s=std(x(:));
# Now we estimate y and it's eigenvalues
y=x*x'/T;
l=eig(y);
# Calculating lambda_plus and lambda_minus
lambda_plus=(s^2)*(1+sqrt(lambda))^2;
lambda_minus=(s^2)*(1-sqrt(lambda))^2;
x_lim = linspace(0.1, 3, 10^3)
# Taking into account indicator function
if (x_lim <= lambda_plus && x_lim>= lambda_minus);
smth=(1./(2*pi*lambda*x_lim*s^(2))).*sqrt((lambda_plus-x_lim).*(x_lim-lambda_minus));
else
smth = 0
endif
# Normalize histogram
[f, p] = hist(l, nbins = 20)
hold on;
bar(p, f / sum(f));
plot(x_lim, smth)
这个函数的问题是输出如下所示:
这看起来不应该。根据互联网上的 wikipedia these two plots should converge much more significantly. I found somewhere 非常相似的情节,看起来像这样:
我的问题是:我做错了什么?我选择了错误的比例吗?正如我在第二个绘图函数中看到的那样,它的值比我的要少得多,但我不知道它的计算有什么问题。你能帮我看看我做错了什么吗?
是的,这是一个尺度问题。您正在将直方图标准化为
bar(p, f / sum(f));
生成所有条形高度的 单位总和 。相反,您应该使用
bar(p, f / sum(f) / (p(2)-p(1)));
生产单位面积。