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

Примеры

свернуть все

Примените рекурсивные регрессии с помощью вложенных окон, чтобы искать нестабильность в объяснительной модели действительного 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);

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s contains 3 objects of type line. This object represents Const.

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s contains 3 objects of type line. This object represents IPI.

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s contains 3 objects of type line. This object represents E.

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s contains 3 objects of type line. This object represents WR.

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')

Figure contains an axes object. The axes object with title blank T i m e blank S e r i e s blank P l o t blank o f blank A l l blank S e r i e s contains 3 objects of type line. These objects represent Price, Income, Consumption.

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

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s 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 object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s 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 object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s contains 6 objects of type line. These objects represent 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');

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s contains 3 objects of type line. This object represents Const.

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s contains 3 objects of type line. This object represents x1.

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

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

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

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s contains 3 objects of type line. This object represents Const.

Figure contains an axes object. The axes object with title blank I t e r a t i v e blank C o e f f i c i e n t blank E s t i m a t e s 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 имя аргумента и 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'Отображение, или 'Plot'. Для этих опций смотрите соответствующий recreg Name,Value аргументы.

По умолчанию, recreg вызовы hac или fgls usingDefaults . Если 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- numIter числовая матрица. Первая строка содержит точку пересечения, если есть сопровождаемую строками для коэффициентов предиктора в порядке следования столбцов X или Tbl. Window определяет numIter, количество столбцов.

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

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

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

Советы

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

Ссылки

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

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

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

| | | | |

Введенный в R2016a