IV регрессии временных рядов: побочная регрессия

Этот пример рассматривает отклоняющиеся переменные, побочную регрессию и методы размещения в моделях многофакторной линейной регрессии. Это является четвертым в серии примеров на регрессии временных рядов, после представления в предыдущих примерах.

Введение

Предикторы, что тренд в зависимости от времени иногда просматривается с подозрением в моделях многофакторной линейной регрессии (MLR). Индивидуально, однако, они не должны влиять на оценку обычных наименьших квадратов (OLS). В частности, нет никакой потребности линеаризовать и детрендировать каждый предиктор. Если значения ответа хорошо описаны линейной комбинацией предикторов, модель MLR является все еще применимыми предположениями, и классической линейной модели (CLM), не нарушены.

Если, однако, отклоняющийся предиктор соединяется с отклоняющимся ответом, существует возможность побочной регрессии, где t- статистика и полные меры подгонки становятся обманчиво "значительными". Таким образом, статистическое значение отношений в модели точно не отражают причинное значение отношений в генерирующем данные процессе (DGP).

Чтобы заняться расследованиями, мы начинаем путем загрузки соответствующих данных из Регрессии Временных рядов предыдущего примера III: Влиятельные Наблюдения, и продолжают анализ модели значения по умолчанию кредита, представленной там:

load Data_TSReg3

Соединение

Один способ, которым взаимные тренды возникают в предикторе и ответе, состоит в том, когда обе переменные коррелируются с причинно предшествующей переменной соединения за пределами модели. Не использованная переменная (OV) становится частью инновационного процесса, и модель становится неявно ограниченной, выражая ложное отношение, которое не существовало бы, если бы OV были включены в спецификацию. Корреляция между OV и предикторами модели нарушает предположение CLM о строгом exogeneity.

Когда модели не удается составлять переменную соединения, результат не использован переменное смещение, где коэффициенты заданных предикторов сверхсоставляют изменение ответа, переключая ориентировочные стоимости далеко от тех в DGP. Оценки также противоречивы, поскольку источник смещения не исчезает с увеличением объема выборки. Нарушения строгой справки exogeneity предикторы модели отслеживают коррелируемые изменения в инновациях, производя сверхоптимистично маленькие доверительные интервалы на коэффициентах и ложном чувстве качества подгонки.

Чтобы избежать underspecification, заманчиво увеличить объяснительную модель с контрольными переменными, представляющими множество экономических факторов только с незначительными связями с ответом. Этим методом вероятность смещения OV, казалось бы, уменьшалась бы. Однако, если несоответствующие предикторы включены в модель, отклонение содействующих оценочных увеличений, и также - шанс ложных выводов о значении предиктора. Даже если соответствующие предикторы включены, если они не составляют все OVs, то смещение и неэффективность содействующих оценок могут увеличиться или уменьшиться, завися, среди прочего, на корреляциях между включенными и исключенными переменными [1]. Эта последняя точка обычно теряется в обработках учебника смещения OV, которые обычно сравнивают underspecified модель с практически недостижимой полностью заданной моделью.

Без экспериментальных планов для получения данных и способности использовать случайную выборку, чтобы минимизировать эффекты misspecification, эконометрики должны быть очень осторожны относительно выбора предикторов модели. Уверенность в underspecification и неопределенная логика контрольных переменных делают роль соответствующей теории особенно важной в спецификации модели. Примеры в этой серии Time Series Regression V: Выбор Предиктора и Регрессия Временных рядов VI: Остаточная Диагностика описывает процесс в терминах циклов диагностики и respecification. Цель состоит в том, чтобы сходиться к приемлемому набору содействующих оценок, соединенных с серией остаточных значений, от которых была дистиллирована вся информация о соответствующей спецификации.

В случае модели значения по умолчанию кредита, введенной в Регрессии Временных рядов в качестве примера I: Линейные Модели, соединяющие переменные, конечно, возможны. Предикторы кандидата являются несколько оперативными, а не результат любого основного учета причин значения по умолчанию кредита. Кроме того, предикторы являются прокси, зависящими от другого ряда за пределами модели. Без последующего анализа потенциально соответствующих экономических факторов доказательство соединения должно быть найдено в анализе остаточных значений модели.

Удаление тренда

Удаление тренда является общим шагом предварительной обработки в эконометрике с различными возможными целями. Часто, экономические ряды детрендированы в попытке изолировать стационарный компонент, поддающийся анализу ARMA или спектральным методам. Так же, как часто, ряды детрендированы так, чтобы они могли быть сравнены по общей шкале, как с нормализацией на душу населения, чтобы удалить эффект прироста населения. В настройках регрессии удаление тренда может использоваться, чтобы минимизировать схоластические корреляции.

График данных о значении по умолчанию кредита (см. Регрессию Временных рядов в качестве примера I: Линейные Модели), показывает что предиктор BBB и ответ IGD оба отклоняются. Можно надеяться, что тренды могли быть удалены путем удаления нескольких нетипичных наблюдений из данных. Например, тренд в ответе кажется в основном из-за одного влиятельного наблюдения в 2 001:

figure
hold on
plot(dates,y0,'k','LineWidth',2);
plot(dates,y0-detrend(y0),'m.-')
plot(datesd1,yd1-detrend(yd1),'g*-')
hold off
legend(respName0,'Trend','Trend with 2001 deleted','Location','NW')
xlabel('Year') 
ylabel('Response Level') 
title('{\bf Response}')
axis tight
grid on

Удаление точки уменьшает тренд, но не устраняет его.

В качестве альтернативы переменные преобразования используются, чтобы удалить тренды. Это может улучшить статистические свойства модели регрессии, но она усложняет анализ и интерпретацию. Любое преобразование изменяет экономическое значение переменной, способствуя предсказательной силе модели по объяснительной простоте.

Способ удаления тренда зависит от типа тренда. Один тип тренда производится процессом стационарного трендом (TS), который является суммой детерминированного тренда и стационарного процесса. Переменные TS, когда-то идентифицированные, часто линеаризуются со степенью или регистрируют преобразование, затем детрендированное путем регрессирования вовремя. detrend функция, используемая выше, удаляет линию наименьших квадратов из данных. Это преобразование часто имеет побочный эффект упорядочивания влиятельных наблюдений.

Стохастические тренды

Не все тренды являются TS, как бы то ни было. Процессы стационарного различия (DS), также известные, как интегрировано или модульные корневые процессы, могут показать стохастические тренды без разложения TS. Когда предиктор DS соединяется с ответом DS, проблемы побочной регрессии появляются [2]. Это верно, даже если ряды сгенерированы независимо друг от друга без какого-либо соединения. Проблема осложнена тем, что не все серии DS отклоняются.

Рассмотрите следующие регрессии между случайными обходами DS с различными степенями дрейфа. Коэффициент детерминации (R2) вычисляется в повторной реализации и отображенном распределении. Для сравнения также отображено распределение для регрессий между случайными векторами (без авторегрессивной зависимости):

T = 100;
numSims = 1000;
drifts = [0 0.1 0.2 0.3];
numModels = length(drifts);
Steps = randn(T,2,numSims);

% Regression between two random walks:
ResRW = zeros(numSims,T,numModels);
RSqRW = zeros(numSims,numModels);
for d = 1:numModels
    
    for s = 1:numSims
        
        Y = zeros(T,2);
        for t = 2:T 
            Y(t,:) = drifts(d) + Y(t-1,:) + Steps(t,:,s);
        end
        
        % The compact regression formulation:
        %
        % MRW = fitlm(Y(:,1),Y(:,2));
        % ResRW(s,:,d) = MRW.Residuals.Raw';
        % RSqRW(s,d) = MRW.Rsquared.Ordinary;
        %
        % is replaced by the following for
        % efficiency in repeated simulation:
        
        X = [ones(size(Y(:,1))),Y(:,1)];
        y = Y(:,2);
        Coeff = X\y;
        yHat = X*Coeff;
        res = y-yHat;
        yBar = mean(y);
        regRes = yHat-yBar;
        SSR = regRes'*regRes;
        SSE = res'*res;
        SST = SSR+SSE;
        RSq = 1-SSE/SST;
        ResRW(s,:,d) = res';
        RSqRW(s,d) = RSq;
        
    end
    
end

% Plot R-squared distributions:
figure

[v(1,:),edges] = histcounts(RSqRW(:,1));
for i=2:size(RSqRW,2)
    v(i,:) = histcounts(RSqRW(:,i),edges); 
end
numBins = size(v,2);

ax = axes;
ticklocs = edges(1:end-1)+diff(edges)/2;
names = cell(1,numBins);
for i = 1:numBins
    names{i} = sprintf('%0.5g-%0.5g',edges(i),edges(i+1));
end
bar(ax,ticklocs,v.');
set(ax,'XTick',ticklocs,'XTickLabel',names,'XTickLabelRotation',30);

fig = gcf;
CMap = fig.Colormap;
Colors = CMap(linspace(1,64,numModels),:);
legend(strcat({'Drift = '},num2str(drifts','%-2.1f')),'Location','North')
xlabel('{\it R}^2')
ylabel('Number of Simulations')
title('{\bf Regression Between Two Independent Random Walks}')

clear RsqRW

% Regression between two random vectors:
RSqR = zeros(numSims,1);
for s = 1:numSims
    
    % The compact regression formulation:
    %
    % MR = fitlm(Steps(:,1,s),Steps(:,2,s));
    % RSqR(s) = MR.Rsquared.Ordinary;
    %
    % is replaced by the following for
    % efficiency in repeated simulation:

    X = [ones(size(Steps(:,1,s))),Steps(:,1,s)];
    y = Steps(:,2,s);
    Coeff = X\y;
    yHat = X*Coeff;
    res = y-yHat;
    yBar = mean(y);
    regRes = yHat-yBar;
    SSR = regRes'*regRes;
    SSE = res'*res;
    SST = SSR+SSE;
    RSq = 1-SSE/SST;
    RSqR(s) = RSq;
    
end

% Plot R-squared distribution:
figure

histogram(RSqR)
ax = gca;
ax.Children.FaceColor = [.8 .8 1];
xlabel('{\it R}^2')
ylabel('Number of Simulations')
title('{\bf Regression Between Two Independent Random Vectors}')

clear RSqR

R2 для случайного обхода регрессии становятся более значительными, когда коэффициент дрейфа увеличивается. Даже со смещением нуля, регрессии случайного обхода являются более значительными, чем регрессии между случайными векторами, где R2 значения падают почти исключительно ниже 0.1.

Побочные регрессии часто сопровождаются знаками автокорреляции в остаточных значениях, которые могут служить диагностической подсказкой. Следующее показывает распределение автокорреляционных функций (ACF) для остаточного ряда в каждой из регрессий случайного обхода выше:

numLags = 20;
ACFResRW = zeros(numSims,numLags+1,numModels);
for s = 1:numSims 
    for d = 1:numModels
        ACFResRW(s,:,d) = autocorr(ResRW(s,:,d));
    end
end
clear ResRW

% Plot ACF distributions:
figure
boxplot(ACFResRW(:,:,1),'PlotStyle','compact','BoxStyle','outline','LabelOrientation','horizontal','Color',Colors(1,:))
ax = gca;
ax.XTickLabel = {''};
hold on
boxplot(ACFResRW(:,:,2),'PlotStyle','compact','BoxStyle','outline','LabelOrientation','horizontal','Widths',0.4,'Color',Colors(2,:))
ax.XTickLabel = {''};
boxplot(ACFResRW(:,:,3),'PlotStyle','compact','BoxStyle','outline','LabelOrientation','horizontal','Widths',0.3,'Color',Colors(3,:))
ax.XTickLabel = {''};
boxplot(ACFResRW(:,:,4),'PlotStyle','compact','BoxStyle','outline','LabelOrientation','horizontal','Widths',0.2,'Color',Colors(4,:),'Labels',0:20)
line([0,21],[0,0],'Color','k')
line([0,21],[2/sqrt(T),2/sqrt(T)],'Color','b')
line([0,21],[-2/sqrt(T),-2/sqrt(T)],'Color','b')
hold off
xlabel('Lag')
ylabel('Sample Autocorrelation')
title('{\bf Residual ACF Distributions}')
grid on

clear ACFResRW

Цвета соответствуют значениям дрейфа в столбиковой диаграмме выше. График показывает расширенную, значительную остаточную автокорреляцию для большинства симуляций. Диагностика, связанная с остаточной автокорреляцией, обсуждена далее в Регрессии Временных рядов в качестве примера VI: Остаточная Диагностика.

Дифференцирование

Симуляции выше приводят к заключению, что, отклоняясь или нет, все переменные регрессии должны быть протестированы на интегрирование. Затем обычно рекомендуется, чтобы переменные DS были детрендированы дифференцированием, вместо того, чтобы регрессировать вовремя, достигнуть стационарного среднего значения.

Различие между серией TS и DS было широко изучено (например, в [3]), особенно эффекты underdifferencing (обрабатывающий серию DS как TS) и сверхдифференцирование (обрабатывающий серию TS как DS). Если один тип тренда обработан как другой с несоответствующей предварительной обработкой, чтобы достигнуть стационарности, результаты регрессии становятся ненадежными, и получившиеся модели обычно имеют плохую способность к прогнозированию, независимо от подгонки в выборке.

Econometrics Toolbox™ имеет несколько тестов для присутствия или отсутствия интегрирования: adftest, pptest, kpsstest, и lmctest. Например, увеличенный Более полный Дики тест, adftest, ищет статистические данные против пустого указателя интегрирования. С настройками по умолчанию, тестами на обоих IGD и BBB не удается отклонить пустой указатель в пользу стационарной трендом альтернативы:

IGD = y0;
BBB = X0(:,2);

[h1IGD,pValue1IGD] = adftest(IGD,'model','TS')
h1IGD = logical
   0

pValue1IGD = 0.1401
[h1BBB,pValue1BBB] = adftest(BBB,'model','TS')
h1BBB = logical
   0

pValue1BBB = 0.6976

Другие тесты, как тест KPSS, kpsstest, ищите статистические данные против пустого указателя стационарности тренда. Результаты смешаны:

s = warning('off'); % Turn off large/small statistics warnings

[h0IGD,pValue0IGD] = kpsstest(IGD,'trend',true)
h0IGD = logical
   0

pValue0IGD = 0.1000
[h0BBB,pValue0BBB] = kpsstest(BBB,'trend',true)
h0BBB = logical
   1

pValue0BBB = 0.0100

P-значения 0,1 и 0.01 являются, соответственно, самыми большими и наименьшими в таблице критических значений, используемых kpsstest с правильным хвостом. О них сообщают, когда тестовые статистические данные являются, соответственно, очень маленькими или очень крупными. Таким образом доказательство против стационарности тренда особенно слабо в первом тесте и особенно сильно во втором тесте. IGD результаты неоднозначны, не удаваясь отклонить стационарность тренда даже после того, как Более полному Дики тесту не удалось отклонить интегрирование. Результаты для BBB более сопоставимы, предполагая, что предиктор интегрирован.

То, что необходимо для предварительной обработки, является систематическим приложением этих тестов ко всем переменным в регрессии и их различиями. Служебная функция i10test автоматизирует необходимую серию тестов. Следующее выполняет соединенные тесты ADF/KPSS на всех переменных модели и их первых различиях:

I.names = {'model'};
I.vals = {'TS'};
S.names = {'trend'};
S.vals = {true};

i10test(DataTable,'numDiffs',1,...
        'itest','adf','iparams',I,...
        'stest','kpss','sparams',S);
Test Results

        I(1)    I(0)    
======================
AGE     1       0       
        0.0069  0.1000  

D1AGE   1       0       
        0.0010  0.1000  
----------------------
BBB     0       1       
        0.6976  0.0100  

D1BBB   1       0       
        0.0249  0.1000  
----------------------
CPF     0       0       
        0.2474  0.1000  

D1CPF   1       0       
        0.0064  0.1000  
----------------------
SPR     0       1       
        0.2563  0.0238  

D1SPR   1       0       
        0.0032  0.1000  
----------------------
IGD     0       0       
        0.1401  0.1000  

D1IGD   1       0       
        0.0028  0.1000  
----------------------
warning(s) % Restore warning state

Столбцы показывают результаты испытаний и p-значения против пустых указателей интегрирования, I(1), и стационарность, I(0). При данных установках параметров тесты предлагают тот AGE является стационарным (интегрированный порядка 0), и BBB и SPR интегрированы, но сделаны стационарными одним различием (интегрированный порядка 1). Результаты неоднозначны для CPF и IGD, но оба, кажется, являются стационарными после одного различия.

Для сравнения с исходной регрессией в Регрессии Временных рядов в качестве примера I: Линейные Модели, мы заменяем BBB, SPR, CPF, и IGD с их первыми различиями, D1BBB, D1SPR, D1CPF, и D1IGD. Мы оставляем AGE undifferenced:

D1X0 = diff(X0);
D1X0(:,1) = X0(2:end,1); % Use undifferenced AGE
D1y0 = diff(y0);
predNamesD1 = {'AGE','D1BBB','D1CPF','D1SPR'};
respNameD1 = {'D1IGD'};

Исходная регрессия с undifferenced данными:

M0
M0 = 
Linear regression model:
    IGD ~ 1 + AGE + BBB + CPF + SPR

Estimated Coefficients:
                   Estimate        SE         tStat      pValue  
                   _________    _________    _______    _________

    (Intercept)     -0.22741     0.098565    -2.3072     0.034747
    AGE             0.016781    0.0091845     1.8271     0.086402
    BBB            0.0042728    0.0026757     1.5969      0.12985
    CPF            -0.014888    0.0038077      -3.91    0.0012473
    SPR             0.045488     0.033996      1.338       0.1996


Number of observations: 21, Error degrees of freedom: 16
Root Mean Squared Error: 0.0763
R-squared: 0.621,  Adjusted R-Squared: 0.526
F-statistic vs. constant model: 6.56, p-value = 0.00253

Регрессия с differenced данными:

MD1 = fitlm(D1X0,D1y0,'VarNames',[predNamesD1,respNameD1])
MD1 = 
Linear regression model:
    D1IGD ~ 1 + AGE + D1BBB + D1CPF + D1SPR

Estimated Coefficients:
                   Estimate        SE         tStat       pValue  
                   _________    _________    ________    _________

    (Intercept)    -0.089492      0.10843    -0.82535       0.4221
    AGE             0.015193     0.012574      1.2083      0.24564
    D1BBB          -0.023538     0.020066      -1.173      0.25909
    D1CPF          -0.015707    0.0046294      -3.393    0.0040152
    D1SPR           -0.03663      0.04017    -0.91187      0.37626


Number of observations: 20, Error degrees of freedom: 15
Root Mean Squared Error: 0.106
R-squared: 0.49,  Adjusted R-Squared: 0.354
F-statistic vs. constant model: 3.61, p-value = 0.0298

differenced данные увеличивают стандартные погрешности на всех содействующих оценках, а также полный RMSE. Это может быть ценой исправления побочной регрессии. Знак и размер коэффициента оценивают для undifferenced предиктора, AGE, показывает мало изменения. Даже после дифференцирования, CPF объявил значение среди предикторов. Принятие пересмотренной модели зависит от практических факторов как объяснительная простота и производительность прогноза, оцененная в Регрессии Временных рядов в качестве примера VII: Прогнозирование.

Сводные данные

Из-за возможности побочной регрессии обычно рекомендуется, чтобы переменные в регрессиях временных рядов были детрендированы, по мере необходимости, чтобы достигнуть стационарности перед оценкой. Существуют компромиссы, однако, между работой с переменными, которые сохраняют их исходное экономическое значение и преобразованные переменные, которые улучшают статистические характеристики оценки OLS. Компромисс может затруднить, чтобы оценить, поскольку степень "побочности" в исходной регрессии не может быть измерена непосредственно. Методы, обсужденные в этом примере, вероятно, улучшат способности к прогнозированию получившихся моделей, но могут сделать так за счет объяснительной простоты.

Ссылки

[1] Кларк, K. A. "Фантомная Угроза: Не использованное Переменное Смещение в Эконометрическом Исследовании". Управление конфликтами и Мирная Наука. Издание 22, 2005, стр 341–352.

[2] Грейнджер, C. W. J. и P. Ньюболд. "Побочные Регрессии в Эконометрике". Журнал Эконометрики. Издание 2, 1974, стр 111–120.

[3] Нельсон, C. и К. Плоссер. "Тренды и Случайные Обходы в Макроэкономических Временных рядах: Некоторое Доказательство и Последствия". Журнал Монетаризма. Издание 10, 1982, стр 130–162.

Для просмотра документации необходимо авторизоваться на сайте