Блог им. SciFi

Расчет бета-коэффициентов на R двумя способами

    • 14 июня 2016, 03:38
    • |
    • SciFi
  • Еще
Посчитал беты акций своего инвест. портфеля двумя способами — с помощью пакета PortfolioAnalytics и через линейную регрессию с индексом ММВБ. Результаты расчетов совпали. 

Затем я составил таблицы для бет, взяв две истории — с 2012 года по настоящее время и с 2015.

Таблицы

Расчет бета-коэффициентов на R двумя способами
С 2012 г.

Расчет бета-коэффициентов на R двумя способами
C 2015 г.

Видно, что Роснефть и Норникель бегают за рынком. ФосАгро, Акрон и банк Открытие не зависят от рыночных настроений.

Код на R:

rong>
#install.packages("PortfolioAnalytics")
#install.packages("quantmod")
#install.packages("rusquant", repos="http://R-Forge.R-project.org")

library(PortfolioAnalytics)
library(quantmod)
library(rusquant)

rm(list = ls())
# Очистка среды R от лишних переменных в памяти, если требуется

fund.names <- c("MICEX", "BANE", "ALRS", "TGKA", "GMKN", "RUALR", "PHOR", "AKRN", "ROSN", "OFCB")
# Создаем массив из тикеров, для которых будем получать данные

if ( ! exists("BANE") ) {
  getSymbols(fund.names, src = "Finam", from = "2012-01-01")
  # Получение котировок
}

prices.data <- merge(MICEX[,4], BANE[,4], ALRS[,4], TGKA[,4], GMKN[,4], RUALR[,4], PHOR[,4], AKRN[,4], ROSN[,4], OFCB[,4])
returns.data <- CalculateReturns(prices.data)
returns.data <- na.omit(returns.data)
colnames(returns.data) <- fund.names
# Подготовка данных по ценам закрытия

beta <- CAPM.beta(returns.data$BANE, returns.data$MICEX, Rf = 0)
print(round(beta, 2))
# Расчет беты первым способом,
# через использование встроенной функции пакета PortfolioAnalytics

model <- lm(BANE ~ MICEX, returns.data)
beta <- coef(model)[2]
print(round(beta, 2))
# Расчет беты вторым способом, 
# через построение линейной регрессии между доходностями актива и индекса

betas <- array(1:length(fund.names))
for (i in 1:length(fund.names)) {
  curReturns <- returns.data[,i]
  beta <- CAPM.beta(curReturns, returns.data$MICEX, Rf = 0)
  betas[i] <- round(beta, 2)
}
fund.betas <- data.frame(fund.names, betas)
# Для списка активов получаем бета коэффициенты и сохраняем их в таблицу

ordered.fund.betas <- fund.betas[order(-betas),]
# Сортируем по убыванию бет

View(ordered.fund.betas)
# Отображаем отсортированную таблицу 
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
722 | ★10
9 комментариев
А как в экселе рассчитать? Как там бета считается?
avatar
Жаль, что рейта не хватает, чтобы плюсануть. ((( 
Доделаю кое-какие расчёты по удалению детерминированной составляющей сигнала и выложу статейку о декомпозиции рыночных данных на детерминированную (тренд+сезонность) + стохастическую с аппроксимацией и прогнозом на K шагов вперёд. Пока что использую вейвлеты + современные методы спектрального анализа (MUSIC+ESPRIT).
Бобровский Дмитрий, ничего не понял )))
А можно простым языком?
avatar
Бобровский Дмитрий, а я все жду, когда Вы напишете, таки, скрипт по нашему спору. Сколько уже прошло, 2 месяца? Вам сколько времени нужно, год может быть?:) Наше пари все еще в силе? Исходя их того, что Вы брали срок неделю, Вы де-факто уже проиграли, не так ли?:)
sortarray sortarray, блииииин, прощения прошу, я забыл совсем. ((( Давайте так: т.к. я сроки протянул, засчитаем мне поражение. 1000 рублей вышлю на любой указанный счёт (лучше сбер онлайн, т.к. у меня карта сбера). Свои долги всегда возвращаю. А скрипт потом напишу, руки просто дойти должны. Кстати, если будет возможно, скиньте джавовый скрипт Ваш на мыло мне.
Пасиба!
Бобровский Дмитрий, пришло. Спасибо Вам за Вашу честность и порядочность!
sortarray sortarray, и Вам. В споре рождается истина. )) А скрипт всё же допишу, руки дойдут, обещаю. Вообще, планирую тут делиться интересными идеями по анализу временных рядов. В частности, буду выкладывать свои наработки, как это делает SciFi.
Бобровский Дмитрий, да, это мотивирует и часто полезные советы попадаются. Кроме этого, наработки сохраняются в каком-то оформленном и законченном виде. На самом деле я экспериментирую на R гораздо больше, нейронные сети даже пробовал. Но выкладываю только законченные наработки. 
avatar

Читайте на SMART-LAB:
Фото
Доллар теряет поддержку ставок: евро и фунт используют слабость NFP
Заметный разрыв в направлениях монетарной политики ФРС и других ключевых центробанков начал сокращаться в четверг. Триггером стала статистика по...
Инвестиции без спешки: торгуем в выходные
Алексей Девятов Рынок часто движется импульсами, и тем важнее оценивать активы без спешки, не отвлекаясь на инфошум. Для этого отлично...
Фото
Акционеры ПАО «АПРИ» приняли решения по вопросам годового Общего собрания
Акционеры ПАО «АПРИ» приняли решения по вопросам годового Общего собрания Сегодня состоялось годовое заседание Общего собрания...
Фото
Мой инвест портфель. Структура портфеля, последние действия по портфелю. Состав портфеля валютных облигаций
Сегодня делал действия по портфелю. Кроме того, решил пособирать инфу по счетам и посмотреть как там дела.  

теги блога SciFi

....все тэги



UPDONW
Новый дизайн