创建一个数组,显示基于两个独立矩阵的概率,显示两个时期的结果概率
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
计算你想要的概率。通过遵循您问题中矩阵的坐标来导航此对象。
我在 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
计算你想要的概率。通过遵循您问题中矩阵的坐标来导航此对象。