В этом примере рассматриваются переменные тренда, ложная регрессия и методы адаптации во множественных моделях линейной регрессии. Он является четвертым в серии примеров регрессии временных рядов после представления в предыдущих примерах.
Предсказатели, которые имеют тенденцию со временем, иногда рассматриваются с подозрением в моделях множественной линейной регрессии (MLR). Однако по отдельности они не обязательно влияют на оценку обычных наименьших квадратов (ОЛС). В частности, нет необходимости линеаризовать и сдерживать каждый предиктор. Если значения ответа хорошо описаны линейной комбинацией предикторов, модель MLR все еще применима, и предположения классической линейной модели (CLM) не нарушаются.
Однако, если предсказатель трендов связан с реакцией трендов, существует возможность ложной регрессии, где t-статистика и общие показатели соответствия становятся ошибочно «значимыми». То есть статистическая значимость отношений в модели не точно отражает причинную значимость отношений в процессе генерации данных (DGP).
Чтобы исследовать, мы начинаем с загрузки соответствующих данных из предыдущего примера Регрессия временного ряда III: Влиятельные наблюдения, и продолжаем анализ представленной там модели кредитного дефолта:
load Data_TSReg3Одним из способов возникновения взаимных тенденций в предикторе и ответе является корреляция обеих переменных с причинно-следственной предшествующей смешанной переменной вне модели. Пропущенная переменная (OV) становится частью процесса инноваций, и модель становится неявно ограниченной, выражая ложное отношение, которое не существовало бы, если бы OV были включены в спецификацию. Корреляция между OV и модельными предикторами нарушает предположение CLM о строгой экзогенности.
Когда модель не учитывает смешанную переменную, в результате опускается смещение переменной, где коэффициенты определенных предикторов чрезмерно учитывают изменение в ответе, смещая оцененные значения от значений в DGP. Оценки также противоречивы, поскольку источник смещения не исчезает с увеличением размера выборки. Нарушения строгой экзогенности помогают модельным предикторам отслеживать коррелированные изменения в нововведениях, создавая сверхоптимистически небольшие доверительные интервалы на коэффициентах и ложное чувство благости подгонки.
Чтобы избежать недоопределения, заманчиво выкладывать объяснительную модель с управляющими переменными, представляющими множество экономических факторов с только слабыми связями с ответом. С помощью этого метода вероятность смещения OV, по-видимому, снижается. Однако, если неактуальные предикторы включены в модель, дисперсия оценок коэффициентов увеличивается, и также вероятность ложных выводов о значимости предиктора. Даже если включены соответствующие предикторы, если они не учитывают все OV, то смещение и неэффективность оценок коэффициентов могут увеличиваться или уменьшаться, в том числе, в зависимости от корреляций между включенными и исключенными переменными [1]. Этот последний момент обычно теряется в хрестоматийных обработках смещения OV, которые обычно сравнивают недостаточно определенную модель с практически недостижимой полностью определенной моделью.
Без экспериментальных проектов для получения данных и возможности использовать случайную выборку для минимизации эффектов неправильной конкретизации эконометристы должны быть очень осторожны в выборе предикторов модели. Определенность недоопределения и неопределенная логика управляющих переменных делает роль соответствующей теории особенно важной в спецификации модели. Примеры в этой серии Регрессия временного ряда V: Выбор предиктора и Регрессия временного ряда VI: Остаточная диагностика описывают процесс с точки зрения циклов диагностики и повторной проверки. Цель состоит в том, чтобы сойтись с приемлемым набором оценок коэффициентов в паре с рядом остатков, из которых была отгонена вся соответствующая информация спецификации.
В случае модели кредитного дефолта, введенной в примере Регрессия временных рядов I: Линейные модели, конечно, возможны смешанные переменные. Предсказатели-кандидаты являются в некоторой степени случайными, а не результатом какого-либо фундаментального учета причин кредитного дефолта. Кроме того, предикторы являются прокси, зависящими от других серий вне модели. Без дальнейшего анализа потенциально релевантных экономических факторов доказательства смешения должны быть найдены в анализе остатков модели.
Сдерживание является обычным шагом предварительной обработки в эконометрике, с различными возможными целями. Часто экономические ряды сдерживаются в попытке выделить стационарный компонент, пригодный для анализа ARMA или спектральных методов. Так же часто ряды искажаются, чтобы их можно было сравнивать по общей шкале, как и нормализацию на душу населения, чтобы устранить эффект роста населения. В настройках регрессии сдерживание может использоваться для минимизации ложных корреляций.
График данных кредитного дефолта (см. пример Регрессия временных рядов I: Линейные модели) показывает, что предиктор BBB и ответ IGD оба являются трендовыми. Можно надеяться, что тенденции удастся устранить, исключив из данных несколько нетипичных замечаний. Например, тенденция в ответе, как представляется, в основном обусловлена единственным влиятельным наблюдением в 2001 году:
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 с различной степенью дрейфа. Вычисляют коэффициент определения () в повторных реализациях и отображают распределение. Для сравнения также отображается распределение для регрессий между случайными векторами (без авторегрессионной зависимости):
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 для случайных регрессий становится более значительным. Даже при нулевом дрейфе, регрессии случайной ходьбы более значимы, чем регрессии между случайными векторами, где значения падают почти исключительно ниже 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]), в частности, влияние недифференцирования (лечение серии DS как TS) и наддифференцирования (лечение серии TS как DS). Если один тип тренда рассматривается как другой, с неуместной предварительной обработкой для достижения стационарности, результаты регрессии становятся ненадежными, и результирующие модели, как правило, имеют плохую способность прогнозирования, независимо от подгонки в выборке.
Эконометрика 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 для нулей интеграции, ) и стационарности, 0). При заданных настройках параметров тесты предполагают, чтоAGE является стационарным (интегрированным порядка 0), и BBB и SPR интегрированы, но доведены до стационарности одной разницей (интегрированы порядка 1). Результаты неоднозначны для CPF и IGDно оба, по-видимому, неподвижны после одной разницы.
Для сравнения с исходной регрессией в примере Регрессия временных рядов I: Линейные модели заменяем BBB, SPR, CPF, и IGD с их первыми отличиями, D1BBB, D1SPR, D1CPF, и D1IGD. Уходим AGE недифференцированные:
D1X0 = diff(X0); D1X0(:,1) = X0(2:end,1); % Use undifferenced AGE D1y0 = diff(y0); predNamesD1 = {'AGE','D1BBB','D1CPF','D1SPR'}; respNameD1 = {'D1IGD'};
Исходная регрессия с недифференцированными данными:
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
Регрессия с разностными данными:
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
Разностные данные увеличивают стандартные ошибки во всех оценках коэффициентов, а также в общем RMSE. Это может быть цена исправления ложной регрессии. Знак и размер оценки коэффициента для недифференцированного предиктора, AGE, показывает небольшие изменения. Даже после дифференциации, CPF имеет ярко выраженное значение среди предикторов. Принятие пересмотренной модели зависит от практических соображений, таких как простота объяснения и эффективность прогноза, оцениваемые в примере Регрессия VII временных рядов: Прогнозирование.
Из-за возможности ложной регрессии обычно рекомендуется, чтобы переменные в регрессиях временных рядов, при необходимости, снижались для достижения стационарности до оценки. Однако существуют компромиссы между работой с переменными, которые сохраняют свое первоначальное экономическое значение, и преобразованными переменными, которые улучшают статистические характеристики оценки ОЛС. Компромисс может быть трудно оценить, поскольку степень «ложности» в исходной регрессии не может быть измерена напрямую. Методы, обсуждаемые в этом примере, вероятно, улучшат возможности прогнозирования полученных моделей, но могут сделать это за счет пояснительной простоты.
[1] Кларк, К. А. «Фантомная угроза: пропущенное переменное смещение в эконометрических исследованиях». управление конфликтами и наука о мире. Том 22, 2005, стр. 341-352.
[2] Грейнджер, C. W. J. и P. Ньюболд. «Ложные регрессии в эконометрике». Журнал эконометрики. Том 2, 1974, стр. 111-120.
[3] Нельсон, C. и К. Плоссер. «Тенденции и случайные шаги в макроэкономических временных рядах: некоторые доказательства и последствия». Журнал монетарной экономики. Том 10, 1982, стр. 130-162.