recreg

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

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

Синтаксис

recreg(X,y)
recreg(Tbl)
recreg(___,Name,Value)
[Coeff,SE] = recreg(___)
recreg(ax,___)
[Coeff,SE,coeffPlots] = recreg(___)

Описание

пример

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, чтобы изменить свойства графиков после того, как вы создадите его.

Примеры

свернуть все

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

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

load Data_NelsonPlosser

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

Несколько рядов имеют недостающие данные. Фокусируйте выборку к измерениям от 1 915 до 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);

bpIter = bp - numCoeff
bpIter = 27

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

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

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

Загрузите американский продовольственный набор данных потребления, который содержит ежегодные измерения от 1 927 до 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')

Измерения отсутствуют от 1 942 до 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'});

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

window = ceil(T*1/3);
recreg(X,y,'Window',window,'Plot','combined','PlotVars',[0 1 1],...
    'VarNames',{'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'});

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

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

Моделируйте ряд из этой кусочной модели регрессии с 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');

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

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

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

Содействующие оценки 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

Типы данных: логический

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

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

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

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

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

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

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

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

'hac'

Heteroscedasticity и автокорреляция сопоставимые стандартные погрешности (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]

Типы данных: логический

Имена переменных для нанесенных на график коэффициентов, заданных как пара, разделенная запятой, состоящая из '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'.

Советы

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

Ссылки

[1] Enders, W. Прикладные эконометрические временные ряды. Нью-Йорк: John Wiley & Sons, Inc., 2009.

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

Смотрите также

| | | | |

Введенный в R2016a