离散随机变量的“一个接一个”实现

问题描述

我遇到了以下问题:

给定n+1个离散随机变量:

X = {1,...,n} with P(x=i) = p_i
Y_i = {1,n_i} with P(y_i = j) = p_ij and i = 1,n

我们执行以下操作:

  1. 我们从 X 中抽取,结果决定了我们为下一步选择哪个 Y_i:如果 x = a,我们使用 Y_a。
  2. 我们从这个 Y_a 中抽取。

现在我的问题是:

  1. 如何获得整体的期望值和方差?
  2. 这个“过程”可以由单个随机变量定义吗?
  3. 假设我们只知道所有 Y_i 的 EV 和 Var,而不知道所有(甚至不知道)概率。我们还能算出整个过程的EV和Var吗?
  4. 如果 2) 可以完成,如何在 R 中有效地做到这一点?

一个我尝试过的例子:

X = {1,2} with P(x = 1) = 0.3 and P(x = 2) = 0.7
Y_1 = {2,3} with P(y_1 = 1) = 0.5 and P(y_1 = 3) = 0.5
Y_2 = {1,5,20} with P(y_2 = 1) = 0.3,P(y_2 = 5) = 0.6 and P(y_2 = 20) = 0.1

我曾尝试将这些组合到一个随机变量 Z,但我不确定是否可以这样做:

Z = {2,3,1,20} with probabilities (0.5*0.3,0.5*0.3,0.3*0.7,0.6*0.7,0.1*0.7)

加权 EV 是正确的,但“加权”Var 是不同的——如果对独立随机变量使用线性组合的 Var 公式是正确的。 (也许只是组合 Var 的公式是错误的。)

我使用了 R 和包“discreteRV”:

install.packages("discreteRV")
library(discreteRV)

#defining the RVs
Y_1 <- RV(outcomes = c(2,3),probs = c(0.5,0.5)) #occures 30% of the time
Y_2 <- RV(outcomes = c(1,20),probs = c(0.3,0.6,0.1)) #occures 70% of the time

Z <- RV(outcomes = c(2,probs = c(0.5*0.3,0.1*0.7))


#calculating the EVs
E(Z)
E(Y_1)*0.3 + E(Y_2)*0.7

#calculating the VARs
V(Z)
V(Y_1)*(0.3)^2 + V(Y_2)*(0.7)^2

感谢您的帮助。

解决方法

实际上Z有更大的样本空间由Y1Y2展开,不是两个分量的线性叠加。换句话说,我们应该将 Z 呈现为 Z = [0.3*Y1,0.7*Y2] 而不是 Z = 0.3*Y1 + 0.7*Y2

既然我们有

V(Z) = E(Z**2)-E(Z)**2

> E(Z**2) -E(Z)**2
[1] 20.7684

> V(Z)
[1] 20.7684

我们很容易发现,在术语E(Z)**2中,在Y1Y2之间存在交叉产品术语,这使得V(Z) != V(Y_1)*(0.3)^2 + V(Y_2)*(0.7)^2

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...