【问题标题】: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


    【解决方案1】:

    嗯,我怀疑您没有使用您认为正在使用的运算符。 division is not just limited to scalars,在这里您意外地从矩阵运算中得到了一个标量结果。

    提示:当您计算 t 的第 i 个值时,您可能只想使用第 i 个项来表示均值和标准差。

    【讨论】:

      【解决方案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(清除工作区)命令行。有时之前运行的脚本可能会产生很多垃圾,可能会破坏结果,而清除命令窗口肯定会让调试更容易,至少对我来说是这样。

      【讨论】:

      • 嗯它不让我选择这个作为答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2015-06-30
      • 2021-03-26
      • 1970-01-01
      • 2020-03-31
      相关资源
      最近更新 更多