【问题标题】:Exploring a t-distribution探索 t 分布
【发布时间】:2019-01-12 10:59:58
【问题描述】:
我的任务是为一个家庭作业问题创建一个 t 分布。我已经创建了代码,但得到的结果看起来不像 t 分布。我做错了什么?
任务:
u=0
n=20
for i=1:5000;
r=randn(20,1);
x(i)=mean(r);
s(i)=std(r);
t(i)=(x-u)/(s/sqrt(n)) ;
end
hist(t)
【问题讨论】:
标签:
matlab
statistics
normal-distribution
【解决方案2】:
正如 Matt 所指出的,您忘记了迭代均值和标准差值。你现在正在做的是划分两个数组。 Matlab 将您的代码解释为数组 x 和转置数组 s 的标量积。这就是为什么结果是标量并且错误不容易发现的原因。
更新的代码应该没问题:
clc
clear
u=0.0
n=20
for i=1:5000
r=randn(n,1);
x(i)=mean(r);
s(i)=std(r);
t(i)=(x(i)-u)/(s(i)/sqrt(n)) ;
end
hist(t)
为我生成的结果:
提示:对于小型脚本,我建议您添加 clc(清除命令窗口)和 clear(清除工作区)命令行。有时之前运行的脚本可能会产生很多垃圾,可能会破坏结果,而清除命令窗口肯定会让调试更容易,至少对我来说是这样。