Этот пример рассматривает отклоняющиеся переменные, побочную регрессию и методы размещения в нескольких моделях линейной регрессии. Это является четвертым в серии примеров на регрессии временных рядов, после представления в предыдущих примерах.
Предикторы, что тренд в зависимости от времени иногда просматривается с подозрением в моделях нескольких линейных регрессий (MLR). Индивидуально, однако, они не должны влиять на оценку обычных наименьших квадратов (OLS). В частности, нет никакой потребности линеаризовать и детрендировать каждый предиктор. Если значения ответа хорошо описаны линейной комбинацией предикторов, модель MLR является все еще применимыми предположениями, и классической линейной модели (CLM), не нарушены.
Если, однако, отклоняющийся предиктор соединяется с отклоняющимся ответом, существует возможность побочной регрессии, где - статистика и полные меры подгонки становятся обманчиво "значительными". Таким образом, статистическое значение отношений в модели точно не отражают причинное значение отношений в генерирующем данные процессе (DGP).
Чтобы заняться расследованиями, мы начинаем путем загрузки соответствующих данных из предыдущего примера на "Влиятельных Наблюдениях" и продолжаем анализ модели значения по умолчанию кредита, представленной там:
load Data_TSReg3
Один способ, которым взаимные тренды возникают в предикторе и ответе, состоит в том, когда обе переменные коррелируются с причинно предшествующей переменной соединения за пределами модели. Не использованная переменная (OV) становится частью инновационного процесса, и модель становится неявно ограниченной, выражая ложное отношение, которое не существовало бы, если бы OV были включены в спецификацию. Корреляция между OV и образцовыми предикторами нарушает предположение CLM о строгом exogeneity.
Когда модели не удается составлять переменную соединения, результат не использован переменное смещение, где коэффициенты заданных предикторов сверхсоставляют изменение в ответе, переключая ориентировочные стоимости далеко от тех в DGP. Оценки также противоречивы, поскольку источник смещения не исчезает с увеличением объема выборки. Нарушения строгой справки exogeneity образцовые предикторы отслеживают коррелируемые изменения в инновациях, производя сверхоптимистично маленькие доверительные интервалы на коэффициентах и ложном чувстве качества подгонки.
Чтобы избежать underspecification, заманчиво увеличить объяснительную модель с контрольными переменными, представляющими множество экономических факторов только с незначительными связями с ответом. Этим методом вероятность смещения OV, казалось бы, уменьшалась бы. Однако, если несоответствующие предикторы включены в модель, отклонение содействующих оценочных увеличений, и также - шанс ложных выводов о значении предиктора. Даже если соответствующие предикторы включены, если они не составляют все OVs, то смещение и неэффективность содействующих оценок могут увеличиться или уменьшиться, завися, среди прочего, на корреляциях между включенными и исключенными переменными [1]. Эта последняя точка обычно теряется в обработках учебника смещения OV, которые обычно сравнивают underspecified модель с практически недостижимой полностью заданной моделью.
Без экспериментальных планов для получения данных и способности использовать случайную выборку, чтобы минимизировать эффекты misspecification, эконометрики должны быть очень осторожны относительно выбора образцовых предикторов. Уверенность в underspecification и неопределенная логика контрольных переменных делают роль соответствующей теории особенно важной в образцовой спецификации. Примеры в этом ряду на "Выборе Предиктора" и "Остаточной Диагностике" описывают процесс с точки зрения циклов диагностики и respecification. Цель состоит в том, чтобы сходиться к приемлемому набору содействующих оценок, соединенных с серией невязок, от которых была дистиллирована вся информация о соответствующей спецификации.
В случае модели значения по умолчанию кредита, введенной в примере на "Линейных Моделях", соединяющие переменные, конечно, возможны. Предикторы кандидата являются несколько оперативными, а не результат любого основного учета причин значения по умолчанию кредита. Кроме того, предикторы являются прокси, зависящими от другого ряда за пределами модели. Без последующего анализа потенциально соответствующих экономических факторов доказательство соединения должно быть найдено в анализе образцовых невязок.
Удаление тренда является общим шагом предварительной обработки в эконометрике с различными возможными целями. Часто, экономические ряды детрендированы в попытке изолировать стационарный компонент, поддающийся анализу ARMA или спектральным методам. Так же, как часто, ряды детрендированы так, чтобы они могли быть сравнены в общей шкале, как с нормализацией на душу населения, чтобы удалить эффект прироста населения. В настройках регрессии удаление тренда может использоваться, чтобы минимизировать схоластические корреляции.
График данных о значении по умолчанию кредита (см. пример на "Линейных Моделях") показывает, что предиктор 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 с различными степенями дрейфа. Коэффициент детерминации () вычисляется в повторной реализации и отображенном распределении. Для сравнения также отображено распределение для регрессий между случайными векторами (без авторегрессивной зависимости):
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
для случайного обхода регрессии становятся более значительными, когда коэффициент дрейфа увеличивается. Даже со смещением нуля, регрессии случайного обхода являются более значительными, чем регрессии между случайными векторами, где значения падают почти исключительно ниже 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
Цвета соответствуют значениям дрейфа в столбиковой диаграмме выше. График показывает расширенную, значительную остаточную автокорреляцию для большинства симуляций. Диагностика, связанная с остаточной автокорреляцией, обсуждена далее в примере на "Остаточной Диагностике".
Симуляции выше приводят к заключению, что, отклоняясь или нет, все переменные регрессии должны быть протестированы на интегрирование. Затем обычно рекомендуется, чтобы переменные 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-значения против пустых указателей интегрирования, , и стационарность, . При данных установках параметров тесты предполагают, что AGE
является стационарным (интегрированный порядка 0), и BBB
и SPR
интегрированы, но сделаны стационарными одним различием (интегрированный порядка 1). Результаты неоднозначны для CPF
и IGD
, но оба, кажется, являются стационарными после одного различия.
Для сравнения с исходной регрессией в примере на "Линейных Моделях", мы заменяем 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
объявил значение среди предикторов. Принятие пересмотренной модели зависит от практических факторов как объяснительная простота и производительность прогноза, оцененная в примере на "Прогнозировании".
Из-за возможности побочной регрессии обычно рекомендуется, чтобы переменные в регрессиях временных рядов были детрендированы, по мере необходимости, чтобы достигнуть стационарности перед оценкой. Существуют компромиссы, однако, между работой с переменными, которые сохраняют их исходное экономическое значение и преобразованные переменные, которые улучшают статистические характеристики оценки OLS. Компромисс может быть трудно оценить, поскольку степень "побочности" в исходной регрессии не может быть измерена непосредственно. Методы, обсужденные в этом примере, вероятно, улучшат способности к прогнозированию получившихся моделей, но могут сделать так за счет объяснительной простоты.
[1] Кларк, K. A. "Фантомная Угроза: Не использованное Переменное Смещение в Эконометрическом Исследовании". Управление конфликтами и Мирная Наука. Издание 22, 2005, стр 341-352.
[2] Грейнджер, C. и P. Ньюболд. (1974). "Побочные Регрессии в Эконометрике". Журнал Эконометрики. Издание 2, 1974, стр 111-120.
[3] Нельсон, C. R. и К. Ай. Плоссер. "Тренды По сравнению со Случайными Обходами в Макроэкономических Временных рядах: Некоторое Доказательство и Последствия". Журнал Монетаризма. Издание 10, 1982, стр 139-162.