创建一个数组,显示基于两个独立矩阵的概率,显示两个时期的结果概率

Create an array showing the probability based on two separate matrices showing probability of outcomes in two periods

我在 R 中有两个矩阵,显示足球比赛上半场和下半场每条得分线的概率。我想将这些组合起来得到一个对象(我猜是一个 4 维数组)给我每个 HT/FT 得分线组​​合的概率。

这是我目前的情况,为了简单起见,我假设每支球队每半场最多可以进 3 个球,但实际上我允许的比这个多

# Probability of teams scoring 0,1,2,3 goals in each half
t1_h1 <- c(0.5, 0.3, 0.1, 0.1)
t2_h1 <- c(0.8, 0.1, 0.06, 0.04)
t1_h2 <- c(0.5, 0.4, 0.05, 0.05)
t2_h2 <- c(0.7, 0.1, 0.1, 0.1)

# Create matrix showing probability of possible first half scorelines 
h1 <- t(t1_h1 %*% t(t2_h1))    
h1
     [,1]  [,2]  [,3]  [,4]
[1,] 0.40 0.240 0.080 0.080
[2,] 0.05 0.030 0.010 0.010
[3,] 0.03 0.018 0.006 0.006
[4,] 0.02 0.012 0.004 0.004

# Create matrix showing probability of possible second half scorelines 
h2 <- t(t1_h2 %*% t(t2_h2))
h2
         [,1] [,2]  [,3]  [,4]
[1,] 0.35 0.28 0.035 0.035
[2,] 0.05 0.04 0.005 0.005
[3,] 0.05 0.04 0.005 0.005
[4,] 0.05 0.04 0.005 0.005

所以例如从h1你可以看到它在HT是0-0的概率是0.4,它是0-1的概率是0.250等等

我想最终得到一个给出每种可能组合的概率的对象 HT/FT。例如,它会告诉我它在 HT 为 0-0 而在 FT 为 0-0 的概率为 0.40 * 0.35 = 0.14。或者它在 HT 1-1 和 FT 1-1(即下半场没有进球)的概率是 0.03 * 0.35 = 0.0105。应该也够聪明,知道HT 1-0,FT 0-0的概率为零(FT进球不能小于HT进球)

最终得到一个显示 HT/Second 半分而不是 HT/FT 的对象可能更容易,所以我们可以忽略最后一个限制,即 FT 分数不能小于 HT 分数。

它认为你要找的是outer:

myscores <- outer(t(t1_h1 %*% t(t2_h1)), t(t2_h2 %*% t(t1_h2)))
dim(myscores)  # 4 4 4 4

如你所说,它是四维的

myscores[1,1,1,1] # 0.14
myscores[3,1,1,1] # 0.0105

计算你想要的概率。通过遵循您问题中矩阵的坐标来导航此对象。