首页 > 解决方案 > 我如何在 R 中表示这个几何级数?

问题描述

我正在阅读有关创建做市商的论文,并正在尝试实施一些想法。我如何在 R 中表示这个系列?我知道第一个方程应该输出一个概率,而第二个应该输出一个接近投标价格的数字。

卖单的先验

计算投标价格

我刚刚使用了多个 seq() 函数来尝试解决这个问题,尽管错误可能来自我的分布公式。

Psell <- seq(from = v0 - 4*sd(ba$Price, na.rm = T), to = ba$Bid.Price[1] - 1, 
    by = (I + (1 - I)*.2)*dnorm(72.62, v0, sd(ba$Price, na.rm = T))) + 
  seq(from = ba$Bid.Price[1], to = v0 + 4*sd(ba$Price, na.rm = T) - 1,
      by = (I + (1 - I)*.2)*dnorm(72.62, v0, sd(ba$Price, na.rm = T)))

Psell <- tail(Psell, 1)

Pb <- (1/Psell) * (seq(from = v0 - 4*sd(ba$Price, na.rm = T), to = ba$Bid.Price[1] - 1, 
                       by = (I + (1 - I)*.2)*72.62*dnorm(72.62, v0, sd(ba$Price, na.rm = T))) + 
                     seq(from = ba$Bid.Price[1], to = v0 + 4*sd(ba$Price, na.rm = T) - 1,
                         by = (I + (1 - I)*.2)*72.62*dnorm(72.62, v0, sd(ba$Price, na.rm = T))))
Pb

Psell 返回 144.2665,Pb 返回 0.9908123

预计 Psell 的概率和 Pb 接近 72 的数字

如果我需要解释我使用的变量或其他任何内容,请告诉我!

谢谢!

标签: rprobability

解决方案


解决了:

使用序列生成系列所需的数字范围,然后使用 for 循环将我的操作应用于每个元素。

lst <- seq(from = v0 - 4*sd(ba$Price, na.rm = T), to = v0 + 4*sd(ba$Price, na.rm = T), by = 1)

count <- 0
for(i in 1:length(lst)){
  temp <- (I + (1 - I)*.2)*dnorm(lst[i], v0, sd(ba$Price, na.rm = T))
  count <- count + temp
}
count

count2 <- 0
for(i in 1:length(lst)){
  temp2 <- (I + (1 - I)*.2)*lst[i]*dnorm(lst[i], v0, sd(ba$Price, na.rm = T))
  count2 <- temp2 + count2
}

count2 * 1/count

推荐阅读