簡體   English   中英

使用R將對數返回值轉換為時間序列預測的實際價格

[英]convert log returns to actual price of a time series forecast using R

我得到了這些模擬數據,並使用rugarch軟件包擬合了ARMA-GARCH模型。 到目前為止,我的代碼如下:

    ar.sim<-arima.sim(model=list(ar=c(.9,-.2),ma=c(-.7,.1)),n=100)
    logr=diff(log(na.omit(ar.sim)))
require(rugarch)
    gar<-ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(2, 1)), 
                        mean.model = list(armaOrder = c(2, 1)), 
                        distribution.model = "norm");
    fitg=ugarchfit(spec = gar,data = ar.sim,solver = "hybrid");
    ugarchforecast(fitg,n.ahead =10) 

在此模型中,我使用了日志返回。 因此,我的預測也基於對數回報。 但是我需要實際價格。 我用谷歌搜索找到了任何R函數,可以將此日志返回值轉換為實際價格。 但是我找不到任何東西。

R中有任何函數可以從此日志返回值中提取實際價格嗎,我需要手動執行此操作嗎?

價格應為[初始價格] * exp(累計對數收益)。 例如:

df <- data.frame(price = c(90, 108, 81, 105, 180))

df$log = log(df$price)
df$logr = c(NA, diff(df$log))
df$logr_na0 = ifelse(is.na(df$logr), 0, df$logr)
df$cuml_log= cumsum(df$logr_na0)
df$reconstructed_price_norm = exp(df$cuml_log)

initial_price <- 90
df$reconstructed_price = initial_price * df$reconstructed_price_norm

產量

> df
  price      log       logr   logr_na0   cuml_log reconstructed_price_norm reconstructed_price
1    90 4.499810         NA  0.0000000  0.0000000                 1.000000                  90
2   108 4.682131  0.1823216  0.1823216  0.1823216                 1.200000                 108
3    81 4.394449 -0.2876821 -0.2876821 -0.1053605                 0.900000                  81
4   105 4.653960  0.2595112  0.2595112  0.1541507                 1.166667                 105
5   180 5.192957  0.5389965  0.5389965  0.6931472                 2.000000                 180

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM