應用統計子主題E
動機
- 在金融學中,Beta(β)是一種衡量個別股票或投資組合相對於整個市場的系統性風險的指標。Beta值反映了股票價格相對於市場指數變動的敏感度,即該股票與市場之間的相關性程度。此主題想探討台積電對於市場指數變動的敏感度
程式說明
- 載入必要套件和抓取股票資料
rm(list=ls(all=TRUE))
library(quantmod)
# 設定起始日期和結束日期
start_date <- "2010-01-01"
end_date <- Sys.Date()
ticker <- "2330.TW"
# 獲取台積電的收盤價
TSMC <- getSymbols(ticker, from = start_date, to = end_date, src = "yahoo", auto.assign = FALSE)
TSMC_Ad <- Ad(TSMC)
# 獲取加權股價指數的收盤價
TWII <- getSymbols("^TWII", from = start_date, to = end_date, src = "yahoo", auto.assign = FALSE)
TWII_Ad <- Ad(TWII)- 計算資產和市場指數的日度報酬率
- 計算移動 Beta 值
# 設定移動窗口大小
window_size <- 120
# 初始化一個空的資料框來存儲移動 Beta 值
moving_beta <- data.frame(Date = index(TSMC_returns), Beta = rep(NA, length(TSMC_returns)))
# 計算移動 Beta 值
for (i in window_size:length(TSMC_returns)) {
# 提取移動窗口內的資料
TSMC_window <- TSMC_returns[(i - window_size + 1):i]
TWII_window <- TWII_returns[(i - window_size + 1):i]
# 進行迴歸分析
model <- lm(TSMC_window ~ TWII_window)
# 提取迴歸結果中的 Beta 值
beta <- coef(model)[2]
# 將 Beta 值存儲到資料框中
moving_beta$Beta[i] <- beta
}
# 移除含有 NA 的觀測值
moving_beta <- na.omit(moving_beta)- data.frame 轉換為 xts
library(xts)
# 提取第一行作為時間索引
index <- as.POSIXct(as.character(moving_beta[,1 ]))
# 刪除第一行
moving_beta <- moving_beta[, -1]
# 將 data.frame 轉換為 xts
Bata_xts <- xts(moving_beta, order.by = index)- 繪製移動 Beta 的走勢圖
library(dygraphs)
# 將 xts 物件轉換為 data.frame
Bata_df <- as.data.frame(Bata_xts)
# 繪製台積電和台灣加權股價指數的蠟燭圖和滾動相關係數圖
fig1 <- dygraph(OHLC(TSMC), main = "TSMC Candlestick Chart") %>%
dyCandlestick() %>%
dyOptions(colors = c("black", "red", "blue"))
fig2 <- dygraph(OHLC(TWII), main = "TWII Candlestick Chart") %>%
dyCandlestick() %>%
dyOptions(colors = c("black", "red", "blue"))
fig3 = dygraph(Bata_df, xlab = "Date", ylab = "Moving Beta") %>%
dySeries("V1", label = "Moving Beta") %>%
dyOptions(colors = c("#008")) %>%
dyOptions(gridLineColor = "lightgray")%>%
dyRangeSelector()結果
結論
Beta反映個別股票的波動性如何與市場整體的波動性相關聯。Beta值為1表示該股票的價格波動性與市場完全一致;Beta值高於1表示該股票波動性大於市場;Beta值低於1表示該股票波動性小於市場。
說明台積電對於市場敏感度高