recreg

Рекурсивная линейная регрессия

Описание

recreg рекурсивно оценивает коэффициенты (β) и их стандартные ошибки в множественной линейной регрессионой модели вида y = + ε путем выполнения последовательных регрессий с использованием вложенных или качающихся окон. recreg имеет опции для оценок OLS, HAC и FGLS, а также для итерационных графиков оценок.

пример

recreg(X,y) строит графики оценок итерационных коэффициентов с ± 2 стандартными полосами ошибок для каждого коэффициента, используя множественную линейную регрессионую модель y = Xβ + ε.

пример

recreg(Tbl) подходит для данных в таблице Tbl в множественную линейную регрессионую модель. Первый numPreds столбцы являются предикторами (X) и последний столбец является ответом (y).

пример

recreg(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Для примера можно задать метод оценки при помощи 'Estimator' или включать ли точку пересечения в модель множественной регрессии при помощи 'Intercept'.

пример

[Coeff,SE] = recreg(___) возвращает оценки коэффициентов и соответствующие стандартные оценки ошибок для каждой из регрессий подпримера.

recreg(ax,___) графики на осях, указанных в ax вместо осей новых рисунков. Опция ax может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

[Coeff,SE,coeffPlots] = recreg(___) дополнительно возвращает указатели на графические объекты. Используйте элементы coeffPlots для изменения свойств графиков после их создания.

Примеры

свернуть все

Применить рекурсивные регрессии с помощью вложенных окон для поиска нестабильности в объяснительной модели реального ВНП для периода, охватывающего Вторую мировую войну.

Загрузите набор данных Нельсона-Плоссера.

load Data_NelsonPlosser

Временные ряды в наборе данных содержат ежегодные макроэкономические измерения с 1860 по 1970 год. Для получения дополнительной информации, списка переменных и описаний введите Description в командной строке.

Несколько серий имеют отсутствующие данные. Фокусируйте выборку на измерениях с 1915 по 1970 год. Идентифицируйте индекс точки останова, соответствующий 1945 году, концу войны.

span = (1915 <= dates) & (dates <= 1970);
bp = find(dates(span) == 1945);

Рассмотрим многофакторную линейную регрессию

GNPRt=β0+β1IPIt+β2Et+β3WRt.

Соберите переменные модели в табличный массив. Поместите предикторы в первые три столбца и ответ в последний столбец. Вычислите количество коэффициентов в модели.

Mdl = DataTable(span,[4,5,10,1]);
numCoeff = size(Mdl,2); % Three predictors and an intercept

Оцените коэффициенты с помощью рекурсивных регрессий и верните отдельные графики для итерационных оценок. Идентифицируйте итерацию, соответствующую концу войны.

recreg(Mdl);

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 3 objects of type line. This object represents Const.

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 3 objects of type line. This object represents IPI.

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 3 objects of type line. This object represents E.

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 3 objects of type line. This object represents WR.

bpIter = bp - numCoeff
bpIter = 27

По умолчанию recreg формирует подвыборки с помощью вложенных окон. Окончание войны (1945) происходит на 27-й итерации.

Все коэффициенты показывают некоторую начальную, переходную нестабильность в течение периода «горения» (см. Советы). График WR кажется стабильным, поскольку линия относительно плоская. Однако графики E, IPI, и точка пересечения (Const) показывают нестабильность, особенно сразу после итерации 27.

Проверяйте оценки коэффициентов на нестабильность в модели спроса на продовольствие во время Первой мировой войны. Реализуйте прямую и обратную рекурсивные регрессии в скользящем окне.

Загрузите набор данных о потреблении продовольствия в США, который содержит ежегодные измерения с 1927 по 1962 год с отсутствующими данными из-за войны.

load Data_Consumption

Для получения дополнительной информации о данных введите Description в командной строке.

Постройте график серии.

P = Data(:,1); % Food price index
I = Data(:,2); % Disposable income index
Q = Data(:,3); % Food consumption index 

figure;
plot(dates,[P I Q],'o-')
axis tight
grid on
xlabel('Year')
ylabel('Index')
title('{\bf Time Series Plot of All Series}')
legend({'Price','Income','Consumption'},'Location','SE')

Figure contains an axes. The axes with title {\bf Time Series Plot of All Series} contains 3 objects of type line. These objects represent Price, Income, Consumption.

Измерения отсутствуют с 1942 по 1947 год, что соответствует Второй мировой войне.

Чтобы изучить эластичность, примените преобразование журнала к каждой серии.

LP = log(P);
LI = log(I);
LQ = log(Q);

Рассмотрим модель, в которой потребление журнала является линейной функцией от журналов цен на продовольствие и доходов. Другими словами,

LQt=β0+β1LIt+β2Альбом+εt.

εt является Гауссовой случайной переменной со средним 0 и стандартным отклонением σ2.

Идентифицируйте индекс точки останова на конец войны, 1945 год. Игнорируйте отсутствующие годы с отсутствующими данными.

numCoeff = 4; % Three predictors and an intercept
T = numel(dates(~isnan(P))); % Sample size
bpIdx = find(dates(~isnan(P)) >= 1945,1) - numCoeff
bpIdx = 12

12-я итерация соответствует окончанию войны.

Постройте графики оценок рекурсивно-регрессионного коэффициента с помощью окна качения размера 1/4 размера выборки. Укажите, чтобы построить график коэффициентов LP и LI только на том же рисунке.

X = [LP LI];
y = LQ;
window = ceil(T*1/4);
recreg(X,y,'Window',window,'Plot','combined','PlotVars',[0 1 1],...
    'VarNames',{'Log-price' 'Log-income'});

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 6 objects of type line. These objects represent Log-price, Log-income.

Постройте графики оценок рекурсивно-регрессионного коэффициента с помощью окна качения размера 1/3 размера выборки.

window = ceil(T*1/3);
recreg(X,y,'Window',window,'Plot','combined','PlotVars',[0 1 1],...
    'VarNames',{'Log-price' 'Log-income'});

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 6 objects of type line. These objects represent Log-price, Log-income.

Постройте графики оценок рекурсивно-регрессионного коэффициента с помощью окна качения размера 1/2 размера выборки.

window = ceil(T*1/2);
recreg(X,y,'Window',window,'Plot','combined','PlotVars',[0 1 1],...
    'VarNames',{'Log-price' 'Log-income'});

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 6 objects of type line. These objects represent Log-price, Log-income.

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

Если линейная регрессионая модель нарушает допущения классической линейной модели, то стандартные ошибки коэффициентов OLS неправильны. Однако recreg имеет опции для оценки коэффициентов и стандартных ошибок, которые устойчивы к гетероскедастическим или автокоррелированным инновациям.

Симулируйте ряд из этой кусочно-регрессионой модели с ошибками AR (1), коэффициент регрессии которых изменяется в момент 51.

{yt=5+3xt+utut=0.6ut-1+εt;t=1,...,50yt=5-xt+utut=0.6ut-1+εt;t=51,...,100.

εt - серия гауссовских инноваций со средним 0 и стандартным отклонением 0,5. xt является Гауссовым со средним 1 и стандартным отклонением 0,25.

rng(1); % For reproducibility
T = 100;
muX = 1;
sigmaX = 0.25;
x = sigmaX*randn(T,1) + muX;
ar = 0.6;
sigma = 0.5;
c = 5;
b = [3 -1];
y = zeros(T,1);
Mdl1 = regARIMA('AR',ar,'Variance',sigma,'Intercept',c,'Beta',b(1));
y(1:T/2) = simulate(Mdl1,T/2,'X',x(1:T/2));
Mdl2 = regARIMA('AR',ar,'Variance',sigma,'Intercept',c,'Beta',b(2));
y((T/2 + 1):T) = simulate(Mdl2,T/2,'X',x((T/2 + 1):T));

Оцените рекурсивные коэффициенты регрессии с использованием OLS.

[CoeffOLS,SEOLS] = recreg(x,y,'Plot','separate');

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 3 objects of type line. This object represents Const.

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 3 objects of type line. This object represents x1.

После переходных эффектов 5 находится в пределах доверительных границ оценок точки пересечения. Существует незначительный, но стойкий шок на итерации 50. Оценки коэффициентов показывают структурное изменение после итерации 60.

Для учета автокоррелированных инноваций оцените рекурсивные коэффициенты регрессии с помощью OLS, но с устойчивыми стандартными ошибками Ньюи-Уэста. Для оценки стандартных ошибок HAC используйте квадратично-спектральную схему взвешивания.

hacOptions.Weights = 'QS';
[CoeffNW,SENW] = recreg(x,y,'Estimator','hac','Options',hacOptions,...
    'Plot','separate');

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 3 objects of type line. This object represents Const.

Figure contains an axes. The axes with title {\bf Iterative Coefficient Estimates} contains 3 objects of type line. This object represents x1.

Оценки коэффициентов HAC совпадают с оценками OLS. Доверительные границы немного отличаются, потому что стандартные оценки ошибок различаются.

Входные параметры

свернуть все

Данные предиктора для многофакторной линейной регрессии, заданные как numObs-by- numPreds числовая матрица.

numObs количество наблюдений и numPreds - количество переменных предиктора.

Типы данных: double

Данные отклика для многофакторной линейной регрессии, заданные как numObs-by-1 числовой вектор.

Типы данных: double

Объединенные данные предиктора и отклика для многофакторной линейной регрессии, заданные как numObs-by- numPreds + 1 табличный массив.

Первый numPreds столбцы Tbl являются данными предиктора, и последний столбец является данными отклика.

Типы данных: table

Оси, на которых можно построить график, заданные как вектор Axes объекты с длиной, равной количеству графиков, заданных Plot и PlotVars Аргументы пары "имя-значение".

По умолчанию, recreg создает отдельный рисунок для каждого графика.

Примечание

recreg удаляет наблюдения с отсутствующими (NaN) значения в предикторах или ответ.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Intercept',false,'Estimator','fgls' указывает, чтобы исключить член точки пересечения из регрессионной модели и использовать FGLS для оценки коэффициентов и стандартных ошибок.

Укажите, включать ли точку пересечения, recreg подходит для регрессионной модели, заданной как разделенная разделенными запятой парами, состоящая из 'Intercept' и true или false.

ЗначениеОписание
truerecreg включает точку пересечения при подборе регрессионной модели. numCoeffs = numPreds + 1.
falserecreg не включает точку пересечения при подборе регрессионной модели. numCoeffs = numPreds.

Пример: 'Intercept',false

Типы данных: logical

Длина окна, заданная как разделенная разделенными запятой парами, состоящая из 'Window' и числовой скаляр.

  • Чтобы вычислить оценки с помощью вложенных окон, не задайте 'Window'. В этом случае recreg начинается с первого numCoeffs + 1 наблюдений, а затем добавляет по одному наблюдению при каждой итерации. Количество итераций numIter = numObsnumCoeffs.

  • Чтобы вычислить оценки с помощью окна качения, задайте длину окна. В этом случае recreg сдвиги на одно наблюдение при каждой итерации. Window должен быть по крайней мере numCoeffs + 1 и не более numObs. Количество итераций numIter = numObsWindow + 1.

Пример: 'Window',10

Типы данных: double

Метод оценки, заданный как разделенная разделенными запятой парами, состоящая из 'Estimator' и значение в этой таблице.

ЗначениеОписание
'ols'

Обыкновенные наименьшие квадраты

'hac'

Гетероскедастичность и допустимость автокорреляции (HAC) стандартные ошибки

'fgls'

Допустимые обобщенные коэффициенты методом наименьших квадратов и стандартные ошибки

Значения 'hac' и 'fgls' звонить hac и fgls, соответственно, с Name,Value параметры аргумента, заданные Options.

Пример: 'Estimator','fgls'

Типы данных: char | string

hac и fgls Name,Value имена аргумента и соответствующие значения, заданные как разделенная разделенными запятой парами, состоящая из 'Options' и массив структур.

Использование 'Options' для установки любых Name,Value аргумент, кроме 'VarNames', 'Intercept', 'Display', или 'Plot'. Для этих опций смотрите соответствующие recreg Name,Value аргументы.

По умолчанию, recreg вызовы hac или fgls использование значений по умолчанию. Если Estimator является 'ols', затем recreg игнорирует Options.

Пример: 'Options',struct('ARLags',2) включает два отставания в модели AR-инноваций для оценок FGLS.

Типы данных: struct

Направление итерации, заданное как разделенная разделенными запятой парами, состоящая из 'Direction' и 'forward' или 'backward'.

ЗначениеОписание
'forward'

Прямая рекурсия перемещает окно наблюдений от начала данных к концу.

'backward'

Обратные рекурсии сначала меняют порядок наблюдений, а затем реализуют прямые рекурсии.

Пример: 'Direction','backward'

Типы данных: char | string

Флаг, указывающий, будет ли строиться график результатов тестирования, задается как разделенная разделенными запятой парами, состоящая из 'Plot' и 'separate', 'combined', или 'off'. Графики показывают оценки итерационных коэффициентов с ± 2 стандартными полосами ошибок.

ЗначениеОписание
'separate'Создает отдельные рисунки для каждого коэффициента
'combined'Объединяет все графики в один набор осей
'off'Выключает все графические изображения

Значения по умолчанию:

  • 'off' когда recreg возвращает выходные аргументы

  • 'separate' иначе

Пример: 'Plot','off'

Типы данных: char | string

Флаги, указывающие, какие коэффициенты нужно построить, заданные как разделенная разделенными запятой парами, состоящая из 'PlotVars' и логический вектор длины numCoeffs. Первый элемент соответствует Intercept, если присутствует, далее указываются показатели для каждого из numPred предикторы в X или Tbl. Значение по умолчанию является true(numCoeffs,1) для построения графика всех коэффициентов.

Пример: 'PlotVars',[false true true false]

Типы данных: logical

Имена переменных для нанесенных на график коэффициентов, заданные как разделенная разделенными запятой парами, состоящая из 'VarNames' и строковый вектор или вектор камер с именами. Длина либо numPreds или количество выбранных предикторов в PlotVars (то есть sum(PlotVars)). Если Intercept это правда, тогда recreg добавляет имя 'Const' на VarNames. Значения по умолчанию {'x1','x2',...} для матрицы X и Tbl.Properties.VariableNames для табличного массива Tbl.

Типы данных: cell | string

Выходные аргументы

свернуть все

Оценки коэффициентов для каждой регрессии подпримера, возвращенные как numCoeffs-by- numIter числовая матрица. Первая строка содержит точку пересечения, если он присутствует, далее строки для коэффициентов предиктора в порядке столбца X или Tbl. Window определяет numIter, количество столбцов.

Стандартные оценки ошибок для каждой регрессии подпримера, возвращенные как numCoeffs-by- numIter числовая матрица. Порядок строк и количество столбцов соответствуют Coeff.

Указатели на графические объекты, возвращенные как вектор графических объектов. coeffPlots содержит уникальные идентификаторы графика, которые можно использовать для запроса или изменения свойств графика.

coeffPlots недоступен, если значение Plot Аргумент пары "имя-значение" 'off'.

Совет

Графики оценок вложенного окна обычно показывают волатильность в течение периода «горения», в котором количество наблюдений подпримера лишь немного больше, чем количество коэффициентов в модели. После этого периода любая дальнейшая волатильность является свидетельством нестабильности коэффициента. Внезапные изменения значений коэффициентов могут указывать на структурное изменение, а устойчивые изменения могут указывать на мисспификацию модели. Для испытаний на структурные изменения см. cusumtest и chowtest.

Ссылки

[1] Enders, W. Applied Econometric Time Series. Нью-Йорк: John Wiley & Sons, Inc., 2009.

[2] Джонстон, Дж. И. ДиНардо. Эконометрические методы. Нью-Йорк: McGraw Hill, 1997.

См. также

| | | | |

Введенный в R2016a