exponenta event banner

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-й итерации.

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

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

Загрузите набор данных о потреблении продовольствия в США, который содержит ежегодные измерения с 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 + β2LP + α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));

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

[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, но с надежными стандартными ошибками Newey-West. Для оценки стандартных ошибок 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около-numPreds числовая матрица.

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

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

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

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

Комбинированные данные предиктора и ответа для модели множественной линейной регрессии, указанной как numObsоколо-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 true, то recreg добавляет имя 'Const' кому VarNames. Значения по умолчанию: {'x1','x2',...} для матрицы X и Tbl.Properties.VariableNames для табличного массива Tbl.

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

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

свернуть все

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

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

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

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

Совет

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

Ссылки

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

[2] Джонстон, J. и Дж. Динардо. Эконометрические методы. Нью-Йорк: Макгроу Хилл, 1997.

См. также

| | | | |

Представлен в R2016a