Модель ценообразования капитальных активов (CAPM) является почтенным, но часто злонамеренным инструментом для характеристики связей между активами и рыночными ценами. Хотя во реализации и интерпретации CAPM возникает много проблем, одна из проблем, с которой сталкиваются практикующие специалисты, заключается в оценке коэффициентов CAPM с неполными данными о ценах акций.
В этом примере показано, как использовать отсутствующие функции регрессии данных для оценки коэффициентов CAPM. Пример можно запустить непосредственно с помощью CAPMdemo.m
расположен на matlabroot
/toolbox/finance/findemos
.
Учитывая множество предположений, которые можно найти в ссылках (см. Sharp [11], Lintner [6], Jarrow [5] и Sharpe, et. al. [12]), CAPM делает вывод, что возвраты активов имеют линейную связь с рыночными возвратами. В частности, учитывая возврат всех акций, которые представляют собой рынок, обозначенный как M, и возврат безрискового актива, обозначенного как C, CAPM утверждает, что возврат каждого актива Ri на рынке имеет ожидаемую форму
для активов i = 1,..., n, где βi является параметром, который определяет степень взаимодействия между данным активом и базовым рынком. Другими словами, ожидаемый возврат каждого актива равен возврату безрискового актива плюс скорректированная на риск ожидаемый возврат за вычетом безрисковых возвратов активов. Набор параметров β 1, ..., βn называется betas актива.
Бета-версия актива имеет форму
Beta - волатильность цен финансового инструмента относительно волатильности цен рынка или индекса в целом. Бета-версия обычно используется в отношении акций. Высокобетовый инструмент более рискован, чем низкобетовый инструмент. Если актив имеет бета = 1, считается, что актив переходит с рынком; если у актива есть бета > 1, считается, что актив более волатильен, чем рынок. И наоборот, если у актива есть бета < 1, считается, что он менее волатильен, чем рынок.
Стандартная модель CAPM является линейной моделью с дополнительными параметрами для каждого актива, чтобы охарактеризовать остаточные ошибки. Для каждого из n активов с m выборками наблюдаемых < reservedrangesplaceholder2 > возвратов активов, Mk рыночных возвратов и Ck безрисковых возвратов активов модель оценки имеет вид
для выборок k = 1,..., m и активы i = 1,..., n, где αi является параметром, который задает несистемный возврат актива, βi является бета-версией актива и Vk,i является остаточной ошибкой для каждого актива со связанными случайными переменными Vi.
Набор параметров α 1 ,..., αn называются alphas актива. Строгая форма CAPM определяет, что альфа должны быть нулем и что отклонения от нуля являются результатом временного дисбаланса. На практике, однако, активы могут иметь ненулевые альфа, где большая часть активного управления инвестициями посвящена поиску активов с эксплуатируемыми ненулевыми альфа.
Чтобы допустить возможность ненулевых альфа, модель оценки обычно стремится оценить альфа и выполнить тесты, чтобы определить, являются ли альфа статистически равными нулю.
Остаточные ошибки, Vi приняты, имеют моменты
и
для активов i,j = 1, ..., n, где параметры S 11, ..., Snn называются остаточными или несистемными дисперсиями/ковариациями.
Квадратный корень остаточного отклонения каждого актива, например sqrt (Sii) для i = 1 ,..., n, называется остаточным или несистемным риском актива, поскольку он характеризует остаточную вариацию цен на активы, которая не объясняется изменениями рыночных цен.
Хотя бета-версии могут быть оценены для компаний с достаточно длинной историей возвратов активов, трудно оценить беты для недавних IPO. Однако, если существует набор достаточно наблюдаемых компаний, который, как можно ожидать, будет иметь некоторую степень корреляции с движением цен на акции новой компании, то есть компаний в той же отрасли, что и новая компания, можно получить вмененные оценки для новых бет компании с стандартными программами регрессии недостающих данных.
Чтобы проиллюстрировать, как использовать стандартные программы регрессии недостающих данных, оцените беты для 12 технологических запасов, где один запас (GOOG) является IPO.
Загрузка дат, общих возвратов и символов тикера для 12 запасов из MAT-файла CAPMuniverse
.
load CAPMuniverse whos Assets Data Dates
Name Size Bytes Class Attributes Assets 1x14 1568 cell Data 1471x14 164752 double Dates 1471x1 11768 double
Активы в модели имеют следующие символы, где последние две серии являются прокси для рынка и безрискового актива:
Assets(1:7) Assets(8:14)
ans = 'AAPL' 'AMZN' 'CSCO' 'DELL' 'EBAY' 'GOOG' 'HPQ' ans = 'IBM' 'INTC' 'MSFT' 'ORCL' 'YHOO' 'MARKET' 'CASH'
Данные охватывают период с 1 января 2000 года по 7 ноября 2005 года с ежедневными общими возвратами. Две акции в этой вселенной имеют отсутствующие значения, которые представлены NaN
s. Один из двух запасов имел IPO в течение этого периода и, таким образом, имеет значительно меньше данных, чем другие запасы.
Вычислите отдельные регрессии для каждого запаса, где запасы с отсутствующими данными имеют оценки, которые отражают их пониженную наблюдаемость.
[NumSamples, NumSeries] = size(Data); NumAssets = NumSeries - 2; StartDate = Dates(1); EndDate = Dates(end); fprintf(1,'Separate regressions with '); fprintf(1,'daily total return data from %s to %s ...\n', ... datestr(StartDate,1),datestr(EndDate,1)); fprintf(1,' %4s %-20s %-20s %-20s\n','','Alpha','Beta','Sigma'); fprintf(1,' ---- -------------------- '); fprintf(1,'-------------------- --------------------\n'); for i = 1:NumAssets % Set up separate asset data and design matrices TestData = zeros(NumSamples,1); TestDesign = zeros(NumSamples,2); TestData(:) = Data(:,i) - Data(:,14); TestDesign(:,1) = 1.0; TestDesign(:,2) = Data(:,13) - Data(:,14); % Estimate CAPM for each asset separately [Param, Covar] = ecmmvnrmle(TestData, TestDesign); % Estimate ideal standard errors for covariance parameters [StdParam, StdCovar] = ecmmvnrstd(TestData, TestDesign, ... Covar, 'fisher'); % Estimate sample standard errors for model parameters StdParam = ecmmvnrstd(TestData, TestDesign, Covar, 'hessian'); % Set up results for output Alpha = Param(1); Beta = Param(2); Sigma = sqrt(Covar); StdAlpha = StdParam(1); StdBeta = StdParam(2); StdSigma = sqrt(StdCovar); % Display estimates fprintf(' %4s %9.4f (%8.4f) %9.4f (%8.4f) %9.4f (%8.4f)\n', ... Assets{i},Alpha(1),abs(Alpha(1)/StdAlpha(1)), ... Beta(1),abs(Beta(1)/StdBeta(1)),Sigma(1),StdSigma(1)); end
Этот фрагмент кода генерирует следующую таблицу.
Separate regressions with daily total return data from 03-Jan-2000 to 07-Nov-2005 ... Alpha Beta Sigma -------------------- -------------------- -------------------- AAPL 0.0012 ( 1.3882) 1.2294 ( 17.1839) 0.0322 ( 0.0062) AMZN 0.0006 ( 0.5326) 1.3661 ( 13.6579) 0.0449 ( 0.0086) CSCO -0.0002 ( 0.2878) 1.5653 ( 23.6085) 0.0298 ( 0.0057) DELL -0.0000 ( 0.0368) 1.2594 ( 22.2164) 0.0255 ( 0.0049) EBAY 0.0014 ( 1.4326) 1.3441 ( 16.0732) 0.0376 ( 0.0072) GOOG 0.0046 ( 3.2107) 0.3742 ( 1.7328) 0.0252 ( 0.0071) HPQ 0.0001 ( 0.1747) 1.3745 ( 24.2390) 0.0255 ( 0.0049) IBM -0.0000 ( 0.0312) 1.0807 ( 28.7576) 0.0169 ( 0.0032) INTC 0.0001 ( 0.1608) 1.6002 ( 27.3684) 0.0263 ( 0.0050) MSFT -0.0002 ( 0.4871) 1.1765 ( 27.4554) 0.0193 ( 0.0037) ORCL 0.0000 ( 0.0389) 1.5010 ( 21.1855) 0.0319 ( 0.0061) YHOO 0.0001 ( 0.1282) 1.6543 ( 19.3838) 0.0384 ( 0.0074)
The Alpha
столбец содержит альфа-оценки для каждого запаса, который близок к нулю, как ожидалось. В сложение t-статистика (которая заключена в круглые скобки) обычно отвергает гипотезу о том, что альфа ненулевые на уровне значимости 99,5%.
The Beta
столбец содержит бета-оценки для каждого запаса, который также имеет t-статистику, заключенную в круглые скобки. Для всех акций, кроме GOOG, гипотеза о том, что беты ненулевые, принята на уровне значимости 99,5%. Похоже, однако, что GOOG не имеет достаточных данных для получения значимой оценки для беты, поскольку его t-статистика подразумевала бы отказ от гипотезы ненулевой беты.
The Sigma
столбец содержит остаточные стандартные отклонения, то есть оценки для несистемных рисков. Вместо t -статистики связанные стандартные ошибки для остаточных стандартных отклонений заключаются в круглые скобки.
Чтобы оценить беты на акции для всех 12 акций, создайте модель совместной регрессии, которая группирует все 12 акций в рамках одного проекта. (Поскольку каждый запас имеет одну и ту же матрицу проекта, эта модель на самом деле является примером, казалось бы, несвязанной регрессии.) Стандартная программа для оценки параметров модели является ecmmvnrmle
, и стандартной программой для оценки стандартных ошибок является ecmmvnrstd
.
Поскольку GOOG имеет значительное количество отсутствующих значений, прямое использование отсутствующей стандартной программы данных ecmmvnrmle
требуется 482 итерации, чтобы сходиться. Для этого может потребоваться много времени. Для краткости параметрические и ковариационные оценки после первых 480 итераций содержатся в MAT-файле и используются в качестве начальных оценок для вычисления бет запасов.
load CAPMgroupparam whos Param0 Covar0
Name Size Bytes Class Attributes Covar0 12x12 1152 double Param0 24x1 192 double
Теперь оцените параметры для набора 12 запасов.
fprintf(1,'\n'); fprintf(1,'Grouped regression with '); fprintf(1,'daily total return data from %s to %s ...\n', ... datestr(StartDate,1),datestr(EndDate,1)); fprintf(1,' %4s %-20s %-20s %-20s\n','','Alpha','Beta','Sigma'); fprintf(1,' ---- -------------------- '); fprintf(1,'-------------------- --------------------\n'); NumParams = 2 * NumAssets; % Set up grouped asset data and design matrices TestData = zeros(NumSamples, NumAssets); TestDesign = cell(NumSamples, 1); Design = zeros(NumAssets, NumParams); for k = 1:NumSamples for i = 1:NumAssets TestData(k,i) = Data(k,i) - Data(k,14); Design(i,2*i - 1) = 1.0; Design(i,2*i) = Data(k,13) - Data(k,14); end TestDesign{k} = Design; end % Estimate CAPM for all assets together with initial parameter % estimates [Param, Covar] = ecmmvnrmle(TestData, TestDesign, [], [], [],... Param0, Covar0); % Estimate ideal standard errors for covariance parameters [StdParam, StdCovar] = ecmmvnrstd(TestData, TestDesign, Covar,... 'fisher'); % Estimate sample standard errors for model parameters StdParam = ecmmvnrstd(TestData, TestDesign, Covar, 'hessian'); % Set up results for output Alpha = Param(1:2:end-1); Beta = Param(2:2:end); Sigma = sqrt(diag(Covar)); StdAlpha = StdParam(1:2:end-1); StdBeta = StdParam(2:2:end); StdSigma = sqrt(diag(StdCovar)); % Display estimates for i = 1:NumAssets fprintf(' %4s %9.4f (%8.4f) %9.4f (%8.4f) %9.4f (%8.4f)\n', ... Assets{i},Alpha(i),abs(Alpha(i)/StdAlpha(i)), ... Beta(i),abs(Beta(i)/StdBeta(i)),Sigma(i),StdSigma(i)); end
Этот фрагмент кода генерирует следующую таблицу.
Grouped regression with daily total return data from 03-Jan-2000 to 07-Nov-2005 ... Alpha Beta Sigma ---------------------- ---------------------------------------- AAPL 0.0012 ( 1.3882) 1.2294 ( 17.1839) 0.0322 ( 0.0062) AMZN 0.0007 ( 0.6086) 1.3673 ( 13.6427) 0.0450 ( 0.0086) CSCO -0.0002 ( 0.2878) 1.5653 ( 23.6085) 0.0298 ( 0.0057) DELL -0.0000 ( 0.0368) 1.2594 ( 22.2164) 0.0255 ( 0.0049) EBAY 0.0014 ( 1.4326) 1.3441 ( 16.0732) 0.0376 ( 0.0072) GOOG 0.0041 ( 2.8907) 0.6173 ( 3.1100) 0.0337 ( 0.0065) HPQ 0.0001 ( 0.1747) 1.3745 ( 24.2390) 0.0255 ( 0.0049) IBM -0.0000 ( 0.0312) 1.0807 ( 28.7576) 0.0169 ( 0.0032) INTC 0.0001 ( 0.1608) 1.6002 ( 27.3684) 0.0263 ( 0.0050) MSFT -0.0002 ( 0.4871) 1.1765 ( 27.4554) 0.0193 ( 0.0037) ORCL 0.0000 ( 0.0389) 1.5010 ( 21.1855) 0.0319 ( 0.0061) YHOO 0.0001 ( 0.1282) 1.6543 ( 19.3838) 0.0384 ( 0.0074)
Хотя результаты для полных запасов данных одинаковы, бета-оценки для AMZN и GOOG (двух запасов с отсутствующими значениями) отличаются от оценок, полученных для каждого запаса отдельно. Поскольку AMZN имеет мало отсутствующих значений, различия в оценках малы. Однако с GOOG различия более выражены.
В настоящее время t-статический для бета-оценки GOOG является значимым на уровне значимости 99,5%. Однако t-статика для бета-оценок основана на стандартных ошибках из выборки Hessian, которая, в отличие от информационной матрицы Фишера, учитывает повышенную неопределенность в оценке из-за отсутствующих значений. Если t-statistic получена из более оптимистичной информационной матрицы Фишера, t-statistic для GOOG 8.25
. Таким образом, несмотря на увеличение неопределенности из-за недостающих данных, GOOG, тем не менее, имеет статистически значимую оценку для бета-версии.
Наконец, обратите внимание, что бета-оценка для GOOG 0.62
- значение, которое может потребовать некоторого объяснения. Хотя рынок был волатильным в течение этого периода с боковыми движениями цен, GOOG постоянно ценил в значение. Таким образом, он менее тесно коррелирует с рынком, что означает, что он менее волатильен, чем рынок (бета-версия < 1).
[1] Caines, Peter E. Linear Stochastic Systems. John Wiley & Sons, Inc., 1988.
[2] Крамер, Харальд. Математические методы статистики. Пресса Принстонского университета, 1946 год.
[3] Демпстер, А.П., Н.М. Лэрд и Д. Б. Рубин. Журнал Королевского статистического общества, серия B. Vol. 39, No. 1, 1977, pp. 1-37 .
[4] Greene, William H. Econometric Analysis. 5-е изд., Pearson Education, Inc., 2003.
[5] Джарроу, R.A. Finance Theory. Prentice-Hall, Inc., 1988.
[6] Lintner, J. «Оценка рисковых активов и выбор рискованных инвестиций в акции». Обзор экономики и статистики. Том 14, 1965, с. 13-37.
[7] Литтл, Родерик Дж. А и Дональд Б. Рубин. Статистический анализ с отсутствующими данными. 2-е изд., John Wiley & Sons, Inc., 2002.
[8] Мэн, Сяо-Ли и Дональд Б. Рубин. «Максимальная оценка правдоподобия через алгоритм ECM». Биометрика. Том 80, № 2, 1993, стр. 267-278.
[9] Секстон, Джо и Андерс Райг Свенсен. «Алгоритмы ECM, которые сходятся со скоростью EM». Биометрика. Том 87, № 3, 2000, стр. 651-662.
[10] Shafer, J. L. Анализ неполных многомерных данных. Чепмен и Холл/CRC, 1997.
[11] Шарп, У. Ф. «Цены капитальных активов: теория рыночного равновесия в условиях риска». Финансовый журнал. Том 19, 1964, с. 425-442.
[12] Шарп, У. Ф., Г. Дж. Александр, и Дж. В. Бейли. Инвестиции. 6-е изд., Prentice-Hall, Inc., 1999.
convert2sur
| ecmlsrmle
| ecmlsrobj
| ecmmvnrfish
| ecmmvnrfish
| ecmmvnrmle
| ecmmvnrobj
| ecmmvnrstd
| ecmmvnrstd
| ecmnfish
| ecmnhess
| ecmninit
| ecmnmle
| ecmnobj
| ecmnstd
| mvnrfish
| mvnrmle
| mvnrobj
| mvnrstd