Этот пример иллюстрирует реализацию модели оценки финансовых активов (CAPM) в присутствии недостающих данных.
Модель оценки финансовых активов (CAPM) является почтенным, но часто порочившим инструментом, чтобы охарактеризовать comovements между ценами активов и рыночными ценами. Несмотря на то, что много проблем возникают в ее реализации и интерпретации, одна проблема, с которой сталкиваются практики, состоит в том, чтобы оценить коэффициенты CAPM с неполными данными о курсе акций.
Учитывая хост предположений, которые могут быть найдены в ссылках (см. Шарпа [3], Lintner [2], Jarrow [1] и Шарп, и. al. [4]), CAPM приходит к заключению, что актив возвращается, имеют линейное соотношение с рынком, возвращается. А именно, учитывая возврат всех запасов, которые составляют рынок, обозначенный как M
и возврат безрискового актива, обозначенного как C
, CAPM утверждает что возврат каждого актива R(i)
на рынке имеет форму expectational
E[R(i)] = C + b(i) * (E[M] - C)
для активов i = 1, ... , n
, где b(i)
параметр, который задает степень comovement между данным активом и базовым рынком. В словах ожидаемый доход каждого актива равен возврату на безрисковом активе плюс настроенный риском ожидаемый рынок, возвращаются сетевой из безрискового актива, возвращается. Набор параметров b(1), ... , b(n)
называются бетами актива.
Обратите внимание на то, что бета актива имеет форму
b(i) = cov(R(i),M)/var(M)
то, которое является отношением ковариации между активом, и рынок возвращается разделенный на отклонение рынка, возвращается. Если актив имеет бету, равную 1, актив, как говорят, перемещается с рынком; если актив имеет бету больший 1, актив, как говорят, более энергозависим, чем рынок; и если актив имеет бету меньше чем 1, актив, как говорят, менее энергозависим, чем рынок.
Стандартная форма модели CAPM для оценки является линейной моделью дополнительными параметрами для каждого актива, чтобы охарактеризовать остаточные ошибки. Для каждого n
активы с m
выборки наблюдаемого актива возвращают R(k, i)
, рынок возвращает M(k)
, и безрисковый актив возвращает C(k)
, модель оценки имеет форму
R(k,i) = a(i) + C(k) + b(i) * (M(k) - C(k)) + V(k,i)
для выборок k = 1, ... , m
и активы i = 1, ... , n
, где a(i)
параметр, который задает несистематический возврат актива, b(i)
бета актива и V(k,i)
остаточная ошибка для каждого актива со связанной случайной переменной V(i)
.
Набор параметров a(1), ... , a(n)
называются альфами актива. Строгая форма CAPM указывает, что альфы должны быть нулем и что отклонения от нуля являются результатом временных нарушений равновесия. На практике, однако, активы могут иметь ненулевые альфы, где большая часть активного управления инвестициями посвящена поиску активов с годными для использования ненулевыми альфами.
Чтобы допускать возможность ненулевых альф, модель оценки обычно стремится оценить альфы и выполнить тесты, чтобы определить, равны ли альфы статистически нулю.
Остаточные ошибки V(i)
приняты, чтобы иметь моменты
E[V(i)] = 0
и
E[V(i) * V(j)] = S(i,j)
для активов i,j = 1, ... , n
, где параметры S(1,1), ... , S(n,n)
называются остаточными или несистематическими отклонениями/ковариациями.
Квадратный корень из остаточного отклонения каждого актива, т.е. sqrt(S(i,i))
для i = 1, ... , n
, как говорят, остаточный или несистематический риск актива, поскольку это характеризует остаточное изменение цен активов, которые не могут быть объяснены изменениями рыночных цен.
Несмотря на то, что беты могут быть оценены для компаний с достаточно долгими историями актива, возвращается, он чрезвычайно затрудняет, чтобы оценить беты для недавних IPO. Однако, если набор достаточно заметных компаний существует, который, как могут ожидать, будет иметь определенную степень корреляции с перемещениями курса акций новой компании, например, компаниями в той же промышленности как новая компания, затем возможно получить оценочные оценки для новых бет компании со стандартными программами регрессии недостающих данных в Financial Toolbox™.
Чтобы проиллюстрировать, как использовать стандартные программы регрессии недостающих данных, мы оценим беты для двенадцати технологических акций, где одним запасом (GOOG) является IPO.
Во-первых, загрузите даты, совокупные доходы и тикеры для этих двенадцати запасов из 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
Dates = datetime(Dates,'ConvertFrom','datenum');
Активы в модели имеют следующие символы, где последние два ряда являются прокси для рынка и безрискового актива.
Assets(1:7)
ans = 1x7 cell
Columns 1 through 6
{'AAPL'} {'AMZN'} {'CSCO'} {'DELL'} {'EBAY'} {'GOOG'}
Column 7
{'HPQ'}
Assets(8:14)
ans = 1x7 cell
Columns 1 through 6
{'IBM'} {'INTC'} {'MSFT'} {'ORCL'} {'YHOO'} {'MARKET'}
Column 7
{'CASH'}
Данные охватывают период с 1 января 2000 до 7 ноября 2005 с ежедневными совокупными доходами. Два запаса в этой вселенной имеют отсутствующие значения, которые представлены NaN
s. Один из этих двух запасов имел IPO в этот период и, следовательно, имеет значительно меньше данных, чем другие запасы.
Первый шаг должен вычислить отдельные регрессии для каждого запаса, где запасы с недостающими данными имеют оценки, которые отражают их уменьшаемую наблюдаемость.
[NumSamples, NumSeries] = size(Data); NumAssets = NumSeries - 2; StartDate = Dates(1); EndDate = Dates(end); Alpha = NaN(1, length(NumAssets)); Beta = NaN(1, length(NumAssets)); Sigma = NaN(1, length(NumAssets)); StdAlpha = NaN(1, length(NumAssets)); StdBeta = NaN(1, length(NumAssets)); StdSigma = NaN(1, length(NumAssets)); 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 the CAPM for each asset separately. [Param, Covar] = ecmmvnrmle(TestData, TestDesign); % Estimate the ideal standard errors for covariance parameters. [StdParam, StdCovar] = ecmmvnrstd(TestData, TestDesign, Covar, 'fisher'); % Estimate the sample standard errors for model parameters. StdParam = ecmmvnrstd(TestData, TestDesign, Covar, 'hessian'); % Set up results for the output. Alpha(i) = Param(1); Beta(i) = Param(2); Sigma(i) = sqrt(Covar); StdAlpha(i) = StdParam(1); StdBeta(i) = StdParam(2); StdSigma(i) = sqrt(StdCovar); end displaySummary('Separate', StartDate, EndDate, NumAssets, Assets, Alpha, StdAlpha, Beta, StdBeta, Sigma, StdSigma)
Separate 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.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)
Alpha
столбец содержит альфа-оценки для каждого запаса, которые являются близким нулем как ожидалось. Кроме того, t-статистические-данные (которые заключены в круглые скобки) обычно отклоняют гипотезу, что альфы являются ненулевыми на уровне на 99,5% значения.
Beta
столбец содержит бета оценки для каждого запаса, которым также заключили t-статистику в круглые скобки. Для всех запасов, но GOOG, гипотеза, что беты являются ненулевыми, принята на уровне на 99,5% значения. Казалось бы, однако, что GOOG не имеет достаточного количества данных, чтобы получить значимую оценку для беты, поскольку ее t-статистическая-величина подразумевала бы отклонение гипотезы ненулевой беты.
Sigma
столбец содержит остаточные стандартные отклонения, то есть, оценки для несистематических рисков. Вместо t-статистики связанные стандартные погрешности для остаточных стандартных отклонений заключены в круглые скобки.
Чтобы оценить беты запаса для всех двенадцати запасов, настройте объединенную модель регрессии, которая группируют все двенадцать запасы в рамках одного проекта (поскольку каждый запас имеет ту же матрицу проекта, эта модель является на самом деле примером по-видимому несвязанной регрессии). Функцией, чтобы оценить параметры модели является ecmmvnrmle
и функцией, чтобы оценить стандартные погрешности является ecmmvnrstd
.
Поскольку GOOG имеет значительное количество отсутствующих значений, прямое использование недостающей функции данных ecmmvnrmle
берет 482 итерации, чтобы сходиться. Это может занять много времени, чтобы вычислить. Ради краткости параметра и оценок ковариации после того, как первые 480 итераций содержатся в MAT-файле (CAPMgroupparam
) и используется в качестве первоначальных оценок, чтобы вычислить беты запаса.
load CAPMgroupparam whos Param0 Covar0
Name Size Bytes Class Attributes Covar0 12x12 1152 double Param0 24x1 192 double
Теперь оцените параметры для набора двенадцати запасов.
NumParams = 2 * NumAssets; % Set up the 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 the CAPM for all assets together with initial parameter estimates. [Param, Covar] = ecmmvnrmle(TestData, TestDesign, [], [], [], Param0, Covar0); % Estimate the ideal standard errors for covariance parameters. [StdParam, StdCovar] = ecmmvnrstd(TestData, TestDesign, Covar, 'fisher'); % Estimate the sample standard errors for model parameters. StdParam = ecmmvnrstd(TestData, TestDesign, Covar, 'hessian'); % Set up results for the 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)); displaySummary('Grouped', StartDate, EndDate, NumAssets, Assets, Alpha, StdAlpha, Beta, StdBeta, Sigma, StdSigma)
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-статистические-данные для бета оценок основаны на стандартных погрешностях от демонстрационного Гессиана, который, в отличие от матрицы информации о Фишере, составляет увеличенную неопределенность в оценке из-за отсутствующих значений. Если t-статистическая-величина получена из более оптимистической матрицы информации о Фишере, t-статистической-величиной для GOOG является 8.25
. Таким образом, несмотря на увеличение неопределенности из-за недостающих данных, GOOG, тем не менее, имеет статистически значительную оценку для беты.
Наконец, обратите внимание, что бета оценкой для GOOG является 0.62
- значение, которое может потребовать некоторого объяснения. Принимая во внимание, что рынок был энергозависим за этот период с поперечной динамикой цен, GOOG постоянно ценил в значении. Следовательно, это менее коррелируется, чем рынок, который, в свою очередь, подразумевает, что это менее энергозависимо, чем рынок с бетой меньше чем 1.
[1] Р. А. Джарроу. Финансируйте теорию. Prentice-Hall, Inc., 1988.
[2] Дж. Линтнер. "Оценка Активов Риска и Выбор Risky Investments в Запасах". Анализ Экономики и Статистики. Издание 14, 1965, стр 13-37.
[3] В. Ф. Шарп. "Цены Капитального актива: Теория Равновесия Рынка при Условиях Риска". Журнал Финансов. Издание 19, 1964, стр 425-442.
[4] В. Ф. Шарп, Г. Дж. Александр, и Дж. В. Бэйли, Инвестиции. 6-й редактор, Prentice-Hall, Inc., 1999.
function displaySummary(regressionType, StartDate, EndDate, NumAssets, Assets, Alpha, StdAlpha, Beta, StdBeta, Sigma, StdSigma) fprintf(1,'%s regression with daily total return data from %s to %s ...\n', ... regressionType, string(StartDate),string(EndDate)); fprintf(1,' %4s %-20s %-20s %-20s\n',' ','Alpha','Beta','Sigma'); fprintf(1,' ---- -------------------- -------------------- --------------------\n'); 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 end