Я пытаюсь вычислить RSquared из процедуры Fama Macbeth с использованием регрессии GLS, но по какой-то причине я получаю отрицательные значения, поэтому мне было интересно, в чем может быть проблема.
Процедура Fama Macbeth объясняет return_{it}, i = 1,..,N
, t = 1,...,T
с использованием ряда факторов_ {kt}, k = 1, ..., K (аналогично данным панели). У него два шага. 1. Выполните регрессии временных рядов доходов по факторам для получения факторных нагрузок beta_k 2. Запустите регрессии поперечного сечения доходов по оцененному beta_k, чтобы получить цену риска
Я корректирую beta_k с помощью процедуры GLS.
Мне было интересно, при расчете прогнозируемых значений для расчета нашего R2, берем ли мы остатки каждого периода времени или среднюю доходность портфеля, т.е. наши остатки y_{i,t}−\hat{y}_{i,t}
(i×t
количество остатков) или только y_i−\hat{y}_i
(i
количество резидентов).
Это то, что я пробовал: Для временного ряда факторов и возвратов:
[Tf,K] = size(factors);
[T,N] = size(returns);
% Time series regressions
X = [ones(T,1) factors];
alphaBeta = X\returns;
alpha = alphaBeta(1,:)';
beta = alphaBeta(2:end,:)';
beta = [ones(N,1),beta];
% Cross-sectional regression
EReturns = mean(returns)';
lambda = beta\EReturns;
miReturns = beta*lambda;
%GLS estimation
u2 = cov(returns);
Sigma_u = u2/T;
lambda_GLS = inv((beta'*inv(Sigma_u)*beta))*beta'*inv(Sigma_u)*EReturns;
miReturns_GLS = beta*lambda_GLS;
%R Square calculation
u = EReturns-miReturns_GLS;
RSS_GLS = norm(u-mean(u))^2; % Regression sum of squares.
TSS_GLS = norm(EReturns-mean(EReturns))^2;
R2_GLS = 1-RSS_GLS/TSS_GLS;
R2_adj_GLS = 1-((N-1)/(N-K))*RSS_GLS/TSS_GLS;
Проблема в том, что я получаю отрицательные значениядля RSquare (R2_GLS). Любое предложение будет высоко оценено!