R中一个简单的仿真例子来自教科书

时间:2014-02-23 09:40:17

标签: r statistics

我从教科书“金融工程的统计和数据分析”中找到了这段代码,但我对此代码中的某些行感到困惑:

此代码试图回答在接下来的45个交易日中至少有一个交易日结束时股票价值低于950,000美元的概率是多少?他们也提供平均值和SD。

代码:

niter = 1e5 # number of iterations
below = rep(0,niter) # set up storage
set.seed(2009)
for (i in 1:niter)
{
    r = rnorm(45,mean=.05/253,
    sd=.23/sqrt(253)) # generate random numbers
    logPrice = log(1e6) + cumsum(r)
    minlogP = min(logPrice) # minimum price over next 45 days
    below[i] = as.numeric(minlogP < log(950000))
}

mean(below)

几个问题:

  1. 我不了解logPrice = log(1e6) + cumsum(r),为什么我们使用log(1e6)以及为什么我们有cumsum(r)
  2. 这是什么目的:below[i] = as.numeric(minlogP < log(950000))
  3. 为什么我们使用log(950000)?为什么我们需要log

1 个答案:

答案 0 :(得分:0)

  1. 我猜这个价格是10万美元,因此是log(1e6)。返回必须在45天内累计,因此cumsum(r)

  2. 您正在检查价格是否低于$ 950,000

  3. 在定量中,股票收益是正态分布的,股票价格(总是+ ve)是对数正态的。