You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中用dplyr计算N日已实现方差?(复刻Che等2023研究)

计算90日已实现方差(R + dplyr管道实现)

核心逻辑

已实现方差采用过去90个交易日的日对数收益率平方之和计算,全程保留原始数值尺度(不归一化到0-1区间),满足后续对数转换需求,与Miranda-Aggripino & Rey(2019)的设定一致。

完整代码实现

1. 加载依赖包

library(quantmod)
library(dplyr)
library(lubridate)
library(slider) # 适配dplyr的滚动计算工具
library(timeDate) # 用于过滤周末数据

2. 获取并预处理比特币数据

startDate <- as.Date("2022-12-29")
endDate <- as.Date("2024-01-17")

# 拉取BTC-USD数据并整理字段名
getSymbols("BTC-USD", from = startDate, to = endDate)
BTC_USD <- `BTC-USD`
names(BTC_USD) <- c("Open", "High", "Low", "Close", "Volume", "Adjusted")

# 提取收盘价、过滤周末、转换为dataframe适配dplyr
btc_df <- BTC_USD$Close %>%
  as.data.frame() %>%
  rename(close = Close) %>%
  mutate(date = index(BTC_USD)) %>%
  relocate(date) %>%
  filter(!isWeekend(as.timeDate(date)))

3. 用dplyr管道计算90日已实现方差

btc_realized_var <- btc_df %>%
  # 计算日对数收益率:ln(今日收盘价/昨日收盘价)
  mutate(log_return = log(close) - lag(log(close))) %>%
  # 计算对数收益率的平方项
  mutate(log_return_sq = log_return^2) %>%
  # 滚动求和:取当前行及前89行的平方和(共90个交易日)
  mutate(realized_var_90d = slide_dbl(log_return_sq, sum, .before = 89, .complete = TRUE)) %>%
  # 过滤前90天的缺失值(窗口未填满时无有效计算结果)
  filter(!is.na(realized_var_90d))

4. MSCI指数的复用逻辑

MSCI指数的计算流程与比特币完全一致,仅需替换数据获取部分:

# 示例:获取标普500替代MSCI指数(实际可替换为对应MSCI代码)
getSymbols("^GSPC", from = startDate, to = endDate)
msci_df <- `^GSPC`$Close %>%
  as.data.frame() %>%
  rename(close = Close) %>%
  mutate(date = index(`^GSPC`)) %>%
  relocate(date) %>%
  filter(!isWeekend(as.timeDate(date)))

# 计算MSCI指数的90日已实现方差
msci_realized_var <- msci_df %>%
  mutate(log_return = log(close) - lag(log(close))) %>%
  mutate(log_return_sq = log_return^2) %>%
  mutate(realized_var_90d = slide_dbl(log_return_sq, sum, .before = 89, .complete = TRUE)) %>%
  filter(!is.na(realized_var_90d))

关键说明

  • 采用对数收益率:避免简单收益率的偏态问题,符合已实现方差的标准计量定义。
  • 滚动计算参数:.before = 89确保窗口包含当前交易日在内共90个有效数据,.complete = TRUE避免部分窗口的计算偏误。
  • 原始尺度保留:计算得到的realized_var_90d未做任何归一化处理,可直接执行log(realized_var_90d)完成对数转换。

内容的提问来源于stack exchange,提问作者justaneconomist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 22:05:56