【问题标题】:PDF and CDF for Biased die using Matlab with Central Limit Theorem使用具有中心极限定理的 Matlab 的偏置模具的 PDF 和 CDF
【发布时间】:2020-04-06 10:40:18
【问题描述】:

我正在尝试使用中心极限定理(CLT)为 10^4 个样本绘制偏模卷的 PDF 和 CDF。

骰子有偏差或不公平,其中偶数边的可能性是奇数边的两倍。这是 diefaces = [1,3,2,4,6,2]。在这种情况下,我可以在 Matlab 中使用什么来找到奇数的概率,其中 Sn = X1 + X2 + ... + Xn , n = 40。

这是我到目前为止所尝试的。我正在努力的部分是传递样本,在这种情况下是 10^4 和 n=40。感谢任何帮助....

clear
% Roll the dice "numberOfRolls" times
numberOfRolls = 10000; % Number of times you roll the dice.
% Biased die with even sides twice as likely as a odd number
diefaces = [1,3,2,4,6,2];
n = 1; % Number of dice.
maxFaceValue = 6;
% Pick a random number from diefaces along with the number of rolls which
% is not working :(
x = diefaces(randperm(numel(diefaces),1),10000)


    S1 = cumsum(x)
    hist1= histogram(S1(1,:),'Normalization','pdf','EdgeColor', 'blue', 'FaceColor',  'blue')

【问题讨论】:

  • 这应该让你走上正轨:stackoverflow.com/questions/13914066/…
  • Sn 是 6 面骰子的n 卷上的点(点)总数吗?是n 中的奇数个数吗?你能定义Sn吗?此外,Sn = S1 + S2 + ... + Sn 似乎很奇怪。您的意思是 Sn = X1 + X2 + ... + Xn 吗?然后你能定义 X_i (i = 1, 2,..., n) 吗?有了这些随机变量的明确定义,这个问题就变得很容易回答了。
  • @SecretAgentMan。 (再次感谢)刚刚更新了问题。我的意思是 Sn = X1 + X2 + .. + Xn。 Xi 代表不公平的 6 面骰子,偶数面的可能性是奇数面的两倍。其中 Xi 可以取 n = 1、2、3、4、5、10、20 和 40 的值。
  • 我得到了定制模具的 6 个面和 Sn 的定义。你说习代表掷骰子。 Xi是结果(1,2,2,3,4,6)吗?我不明白 Xi 怎么可能是 1、2、3、4、5、10、20 和 40。你能澄清一下吗?请edit 问题并明确定义所有随机变量(回答这些问题)。我想我们可以从那里着手。
  • @SecretAgentMan - 发布了实际问题。

标签: matlab probability convergence probability-distribution


【解决方案1】:

定义您的模具并为您的自定义模具获取有效的probability mass function (PMF)。您可以通过确保 sum(Prob) 等于 1 来验证 PMF。请注意,通过将 RelChance 设置为 [1 1 1 1 1 1] 可以获得公平骰子。

下面的骰子面概率是[1/9 2/9 1/9 2/9 1/9 2/9]

Die = [1 2 3 4 5 6];
RelChance = [1 2 1 2 1 2];            % Relative Chance
Prob = RelChance./sum(RelChance);     % probability mass function for die

您可以使用datasample() 来模拟掷骰子的结果(需要统计工具箱)。如果绝对必要的话,这很容易通过几种方法进行硬编码。

下面的代码读取sampleNumRolls很多次Die有概率Prob(ii)代表概率的 Die(ii)

% MATLAB R2019a
NumRolls = 13;                        % Number of rolls 
Rolls = datasample(Die,NumRolls,'Weights',Prob);

现在,使用它来实现既定目标。与这篇文章类似,创建一个数组X,其中第一行是 X1 的实现,第二行是 X2 的实现,依此类推。这不必太花哨。

再一次,使用cumsum() 获得沿列的累积总和。这意味着第一行是来自S1=X1 的实现,第二行是来自S2=X1+X2 的实现,第40 行是来自S40 = X1 + X2 + ... + X40 的经验样本。

n_max = 40;
NumRolls = 10000;
X = zeros(n_max,NumRolls);
for n = 1:n_max
    X(n,:) = datasample(Die,NumRolls,'Weights',Prob);
end
Sn = cumsum(X);

如何绘图?此时,由于我们的变量名称与流程匹配,其余步骤(绘图)与this post 相同,但有一些小的修改。由于这是离散(非连续)数据,我使用histogram()'Normalization','probability' 选项生成了下面的图。对probability density function (PDF) 的引用已相应地重新标记为probability mass function (PMF)


中心极限定理的连续版本发布在here

【讨论】:

    【解决方案2】:

    您可以生成 10000 次不公平掷骰的结果,其中偶数边的概率是奇数边的两倍。

    首先,让我们定义骰子的奇数边和偶数边

    odd = [1 3 5];
    even = [2 4 6];
    

    画出 10000 个均匀分布的数字。

    r = rand(10000,1);
    

    分配一些结果变量

    rolls = zeros(10000,1);
    

    如果您现在在1/3 处拆分随机数,则您有概率为1:2 的奇数和偶数。由于(我假设)在奇数和偶数内,概率是一致的(即获得 3 的概率与获得 1 的概率相同,依此类推),使用一致的随机数来分配相应的值。

    使用逻辑索引

    rolls(r>1/3) = even(randi(3,sum(r>1/3),1));
    rolls(r<=1/3) = odd(randi(3,sum(r<=1/3),1));
    

    绘制结果

    histogram(rolls)
    

    要使用 CLT 生成 PDF 和 CDF,请使用 answer to your previous question,但使用如上生成的分布。

    【讨论】:

    • 好方法,虽然如果是histogram(rolls,'Normalization','probability'),情节可能会更直观
    猜你喜欢
    • 1970-01-01
    • 2014-02-15
    • 2011-10-27
    • 2017-03-11
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    相关资源
    最近更新 更多