chowtest

Критерий Чоу для структурного изменения

Описание

Критерии Чоу оценивают устойчивость коэффициентов β в модели линейной регрессии кратного формы y = X β + ε. Данные разделены в заданных точках останова. Коэффициенты оцениваются в начальных подвыборках, затем протестировали на совместимость с данными в дополнительных подвыборках.

пример

h = chowtest(X,y,bp) возвращает тестовые решения (h) от проведения критериев Чоу на модели y многофакторной линейной регрессии = Xβ + ε в точках останова в bp.

пример

h = chowtest(Tbl,bp) возвращает тестовые решения с помощью данных в табличном массиве Tbl. Первый numPreds столбцы являются предикторами (X) и последний столбец является ответом (y).

пример

h = chowtest(___,Name,Value) использование любой из входных параметров в предыдущих синтаксисах и дополнительных опциях задано одним или несколькими Name,Value парные аргументы. Например, можно задать, какой тип критерия Чоу провести или задать, включать ли прерывание в модель множественной регрессии.

пример

[h,pValue,stat,cValue] = chowtest(___) дополнительно возвращает p - значения, тестовая статистика и критические значения для тестов.

Примеры

свернуть все

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

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

Идентифицируйте индексы перед Второй мировой войной. Постройте логарифмическое потребление относительно журналов цены на продовольственные товары и поступите.

preWarIdx = (dates <= 1941);

figure
scatter3(LP(preWarIdx),LI(preWarIdx),LQ(preWarIdx),[],'ro');
hold on
scatter3(LP(~preWarIdx),LI(~preWarIdx),LQ(~preWarIdx),[],'b*');
legend({'Pre-war observations','Post-war observations'},...
    'Location','Best')
xlabel('Log price')
ylabel('Log income')
zlabel('Log consumption')
title('{\bf Food Consumption Data}')
% Get a better view
h = gca;
h.CameraPosition = [4.3 -12.2 5.3];

Отношения данных, кажется, затронуты войной.

Проведите две точки останова критерии Чоу на 5%-м уровне значения. Для первого теста, набор точка останова в 1 941. Установите точку останова другого теста в 1 948.

bp = find(preWarIdx,1,'last');

h1941 = chowtest([LP LI],LQ,bp)     
h1941 = logical
   1

h1948 = chowtest([LP LI],LQ,bp + 1)
h1948 = logical
   0

h1941 = 1 указывает, что существует значительное отклонение доказательства нулевая гипотеза, что коэффициенты устойчивы, когда точки останова происходят перед войной. Однако h1948 = 0 указывает, что существует недостаточно доказательства, чтобы отклонить содействующую устойчивость, если точка останова после войны. Этот результат предполагает, что данные в 1 948 влияют.

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

h = chowtest([LP LI],LQ,[bp bp+1]);
RESULTS SUMMARY

***************
Test 1

Sample size: 30
Breakpoint: 15

Test type: breakpoint
Coefficients tested: All

Statistic: 5.5400
Critical value: 3.0088

P value: 0.0049
Significance level: 0.0500

Decision: Reject coefficient stability

***************
Test 2

Sample size: 30
Breakpoint: 16

Test type: breakpoint
Coefficients tested: All

Statistic: 1.2942
Critical value: 3.0088

P value: 0.2992
Significance level: 0.0500

Decision: Fail to reject coefficient stability

По умолчанию, chowtest отображает сводные данные результатов испытаний для каждого теста, когда вы проводите больше чем один тест.

Используя критерий Чоу, оцените устойчивость объяснительной модели американского действительного валового национального продукта (ВНП) с помощью конца Второй мировой войны как точка останова.

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

load Data_NelsonPlosser

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

Несколько рядов имеют недостающие данные. Фокусируйте выборку к измерениям от 1 915 до 1970.

span = (1915 <= dates) & (dates <= 1970);

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

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

Соберите переменные модели в табличный массив. Расположите предикторы в первые три столбца и ответ в последнем столбце.

Mdl = DataTable(span,[4,5,10,1]);

Выберите индекс, соответствующий 1945, конец Второй мировой войны.

bp = find(strcmp(Mdl.Properties.RowNames,'1945'));

Используя 1 945 как точка останова, проведите тест точки останова, чтобы оценить, устойчивы ли все коэффициенты регрессии.

h = chowtest(Mdl,bp)
h = logical
   1

h = 1 указывает, чтобы отклонить нулевую гипотезу, что коэффициенты регрессии между подвыборками эквивалентны.

В дополнение к возврату тестового решения можно запросить что тестовое отображение сводных данных в Командном окне.

h = chowtest(Mdl,bp,'Display','summary');
RESULTS SUMMARY

***************
Test 1

Sample size: 56
Breakpoint: 31

Test type: breakpoint
Coefficients tested: All

Statistic: 11.1036
Critical value: 2.5652

P value: 0.0000
Significance level: 0.0500

Decision: Reject coefficient stability

Проведите критерий Чоу, чтобы оценить устойчивость подмножества коэффициентов регрессии. Этот пример следует из Тестовой Модели Потребления для Структурного изменения.

Загрузите американский продовольственный набор данных потребления.

load Data_Consumption
P = Data(:,1); 
I = Data(:,2); 
Q = Data(:,3);

Примените логарифмическое преобразование к каждому ряду.

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

Идентифицируйте индексы перед Второй мировой войной.

preWarIdx = (dates <= 1941);

Рассмотрите две модели регрессии: каждый - логарифмическое потребление на логарифмическую цену на продовольственные товары, и другой логарифмическое потребление на логарифмический доход. Постройте графики рассеивания и линии регрессии для обеих моделей.

figure;
subplot(2,2,1)
plot(LP(preWarIdx),LQ(preWarIdx),'bo',LP(~preWarIdx),LQ(~preWarIdx),'r*');
axis tight
grid on
lsline;
xlabel('Log price')
ylabel('Log consumption')
legend('Pre-war observations','Post-war observations',...
    'Location',[0.6,0.6,0.25,0.25])
subplot(2,2,4)
plot(LI(preWarIdx),LQ(preWarIdx),'bo',LI(~preWarIdx),LQ(~preWarIdx),'r*');
axis tight
grid on
lsline
xlabel('Log income')
ylabel('Log consumption')

Ясный перерыв в эластичности цены на продовольственные товары существует между подвыборками до и после войны. Однако поступите, эластичность, кажется, не имеет такой пропуск.

Проведите два критерия Чоу, чтобы определить, существуют ли статистические данные, чтобы отклонить непрерывность модели для обеих моделей регрессии. Поскольку существует больше наблюдений в дополнительной подвыборке, чем коэффициенты, проводит тест точки останова. Рассмотрите эластичности в тесте только. Таким образом, задайте 0 или false для прерывания (первый коэффициент), и 1 или true для эластичности (второй коэффициент).

bp = find(preWarIdx,1,'last'); % Index for 1941
chowtest(LP,LQ,bp,'Coeffs',[0 1],'Display','summary');
RESULTS SUMMARY

***************
Test 1

Sample size: 30
Breakpoint: 15

Test type: breakpoint
Coefficients tested: 0  1

Statistic: 7.3947
Critical value: 4.2252

P value: 0.0115
Significance level: 0.0500

Decision: Reject coefficient stability
chowtest(LI,LQ,bp,'Coeffs',[0 1],'Display','summary');
RESULTS SUMMARY

***************
Test 1

Sample size: 30
Breakpoint: 15

Test type: breakpoint
Coefficients tested: 0  1

Statistic: 0.1289
Critical value: 4.2252

P value: 0.7225
Significance level: 0.0500

Decision: Fail to reject coefficient stability

Первые сводные данные предлагают отклонить нулевую гипотезу, что эластичности цены эквивалентны через подвыборки на 5%-м уровне значения. Вторые сводные данные предлагают не отклонить нулевую гипотезу, которые поступают, эластичности эквивалентны через подвыборки.

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

chowtest([LP,LI],LQ,bp,'Coeffs',[0 1 0; 0 0 1]);
RESULTS SUMMARY

***************
Test 1

Sample size: 30
Breakpoint: 15

Test type: breakpoint
Coefficients tested: 0  1  0

Statistic: 0.0001
Critical value: 4.2597

P value: 0.9920
Significance level: 0.0500

Decision: Fail to reject coefficient stability

***************
Test 2

Sample size: 30
Breakpoint: 15

Test type: breakpoint
Coefficients tested: 0  0  1

Statistic: 2.8151
Critical value: 4.2597

P value: 0.1064
Significance level: 0.0500

Decision: Fail to reject coefficient stability

Для обоих тестов существует недостаточно доказательства, чтобы отклонить устойчивость модели на 5%-м уровне.

Симулируйте данные для линейной модели включая структурный перерыв в прерывании и одном из коэффициентов предиктора. Затем выберите определенные коэффициенты, чтобы протестировать на равенство через точку останова с помощью критерия Чоу. Настройте параметры, чтобы оценить чувствительность критерия Чоу.

Задайте четыре предиктора, 50 наблюдений и точку останова в период 44 для симулированной линейной модели.

numPreds = 4;
numObs = 50;
bp = 44;
rng(1); % For reproducibility

Сформируйте данные о предикторе путем определения средних значений для предикторов, и затем добавления случайного, стандартного Гауссова шума в каждое из средних значений.

mu = [0 1 2 3];
X = repmat(mu,numObs,1) + randn(numObs,numPreds);

Добавьте столбец из единиц к данным о предикторе.

X = [ones(numObs,1) X];

Задайте истинные значения коэффициентов регрессии и что прерывание и коэффициент второго предиктора переходят на 10%.

beta1 = [1 2 3 4 5]';                                % Initial subsample coefficients
beta2 = beta1 + [beta1(1)*0.1 0 beta1(3)*0.1 0 0 ]'; % Complementary subsample coefficients
X1 = X(1:bp,:);                                      % Initial subsample predictors
X2 = X(bp+1:end,:);                                  % Complementary subsample predictors

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

test1 = [true false true false false]; 
Coeffs = [test1; ~test1]
Coeffs = 2x5 logical array

   1   0   1   0   0
   0   1   0   1   1

Нулевая гипотеза для первого теста (Coeffs(1,:)) равенство прерываний и коэффициенты второго предиктора через подвыборки. Нулевая гипотеза для второго теста (Coeffs(2,:)) равенство первых, третьих, и четвертых предикторов через подвыборки.

Симулируйте данные для линейной модели

y=[X100X2][beta1beta2]+innov.

Создайте innov как вектор случайных Гауссовых варьируемых величин со средним нулевым и стандартным отклонением 0.2.

sigma = 0.2;
innov = sigma*randn(numObs,1);
y = [X1 zeros(bp,size(X2,2)); zeros(numObs - bp,size(X1,2)) X2]*[beta1; beta2]... 
    + innov;

Проведите два теста точки останова, обозначенные в Coeffs. Поскольку существует прерывание в матрице предиктора X уже, задайте, чтобы подавить его включение в линейную модель что chowtest подгонки.

chowtest(X,y,bp,'Intercept',false,'Coeffs',Coeffs,'Display','summary');
RESULTS SUMMARY

***************
Test 1

Sample size: 50
Breakpoint: 44

Test type: breakpoint
Coefficients tested: 1  0  1  0  0

Statistic: 5.7102
Critical value: 3.2317

P value: 0.0066
Significance level: 0.0500

Decision: Reject coefficient stability

***************
Test 2

Sample size: 50
Breakpoint: 44

Test type: breakpoint
Coefficients tested: 0  1  0  1  1

Statistic: 0.2497
Critical value: 2.8387

P value: 0.8611
Significance level: 0.0500

Decision: Fail to reject coefficient stability

На уровне значения по умолчанию:

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

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

Сравните результаты испытаний точки останова с результатами теста прогноза.

chowtest(X,y,bp,'Intercept',false,'Coeffs',Coeffs,'Test','forecast',...
    'Display','summary');
RESULTS SUMMARY

***************
Test 1

Sample size: 50
Breakpoint: 44

Test type: forecast
Coefficients tested: 1  0  1  0  0

Statistic: 3.7637
Critical value: 2.8451

P value: 0.0182
Significance level: 0.0500

Decision: Reject coefficient stability

***************
Test 2

Sample size: 50
Breakpoint: 44

Test type: forecast
Coefficients tested: 0  1  0  1  1

Statistic: 0.2135
Critical value: 2.6123

P value: 0.9293
Significance level: 0.0500

Decision: Fail to reject coefficient stability

В этом случае выводы из тестов эквивалентны тем для теста точки останова.

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

свернуть все

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

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

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

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

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

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

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

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

Точки останова для тестов, заданных как положительное целое число или вектор положительных целых чисел.

Каждая точка останова является индексом определенного наблюдения (строка) в данных. Элемент bp(j) задает, чтобы разделить данные в начальные и дополнительные выборки, индексированные 1:bp(j) и (bp(j) + 1):numObs, соответственно.

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

Примечания

  • NaNs в данных указывают на отсутствующие значения. chowtest удаляет отсутствующие значения с помощью мудрого списком удаления. Удаление строк в данных уменьшает эффективный объем выборки и изменяет основу времени ряда.

  • Если bp скаляр, затем количество тестов, numTests, общая размерность значений аргумента пары "имя-значение". В этом случае, chowtest использует тот же bp в каждом тесте. В противном случае, длина bp определяет numTests, и chowtest запускает отдельные тесты для каждого значения в bp.

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

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

Пример: 'Intercept',false,'Test','forecast' задает, чтобы исключить термин прерывания из модели регрессии и провести тест прогноза.

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

ЗначениеОписание
truechowtest включает прерывание, подбирая модель регрессии. numCoeffs = numPreds + 1.
falsechowtest не включает прерывание, подбирая модель регрессии. numCoeffs = numPreds.

Пример: 'Intercept',false(3,1)

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

Тип критерия Чоу, чтобы провести, заданный как разделенная запятой пара, состоящая из 'Test' и 'breakpoint', 'forecast', или вектор ячейки векторов символов длины numTests.

ЗначениеОписание
'breakpoint' (значение по умолчанию)
  • chowtest непосредственно оценивает содействующие ограничения равенства с помощью статистической величины F.

  • Обе подвыборки должны иметь больше, чем numCoeffs наблюдения.

'forecast'
  • chowtest оцените производительность прогноза с помощью модифицированной статистической величины F.

  • Начальная подвыборка должна иметь больше, чем numCoeffs наблюдения.

Для получения дополнительной информации на значении numCoeffs, смотрите 'Intercept' и 'Coeffs' аргументы в виде пар имя-значение.

Пример: 'Test',{'breakpoint' 'forecast'}

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

Флаги, указывающие, который элементы β протестировать на равенство, заданное как разделенная запятой пара, состоящая из логического вектора или массива. Векторные значения должны иметь длину numCoeffs. Значения массивов должны иметь размер numTests- numCoeffs.

Если 'Intercept' содержит смешанные логические значения:

  • numCoeffs numPreds + 1

  • chowtest игнорирует значения в первом столбце 'Coeffs' для моделей без прерывания.

Например, предположите, что модель регрессии имеет три предиктора (numPreds находится 3) в линейной модели, и вы хотите провести два критерия Чоу (numTests 2). Каждый тест включает все параметры регрессии в линейную модель. Кроме того, вы хотите chowtest приспосабливать прерывание в линейной модели для первого теста только. Поэтому Intercept должен быть логический массив [1 0]. Поскольку существует по крайней мере одна модель для который chowtest соответствует прерыванию, Coeffs должен быть 2 4 логический массив (numTests 2 и numCoeffs numPreds + 1). Элементы Coeffs(:,1) соответствуйте, протестировать ли прерывание независимо от его присутствия в модели. Поэтому один способ задать Coeffs true(2,4). Для второго теста, chowtest не соответствует прерыванию, и таким образом, оно игнорирует значение true в Coeffs(2,1). Поскольку chowtest игнорирует Coeffs(2,1), Coeffs = [true(1,4); false true(1,3)] дает к тому же результату.

Значением по умолчанию является true(numTests,numCoeffs), который тестирует весь β для всех тестов.

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

Номинальные уровни значения для тестов, заданных как разделенная запятой пара, состоящая из 'Alpha' и числовой скаляр или вектор длины numTests. Все элементы Alpha должен быть в интервале (0,1).

Пример: 'Alpha',[0.5 0.1]

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

Отметьте указание, отобразить ли результаты испытаний в командном окне, заданном как разделенная запятой пара, состоящая из 'Display' и 'off' или 'summary'.

ЗначениеОписаниеЗначение по умолчанию, когда
'off'Никакое отображениеnumTests = 1
'summary'Для каждого теста отобразите результаты испытаний к командному окнуnumTests > 1

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

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

Примечания

  • chowtest расширяет скаляр и значения входного параметра вектора символов, кроме 'Display', к размеру numTests. Векторные значения и 'Coeffs' массивы должны совместно использовать общую размерность, равную numTests.

  • Если любой bp, InterceptТест, или Alpha векторы-строки, затем всеми выходными аргументами являются векторы-строки.

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

свернуть все

Протестируйте решения, возвращенные как логический скалярный или логический вектор длины numTests.

Нулевая гипотеза (H 0) критерия Чоу то, что коэффициенты (β), выбранный Coeffs идентичны через подвыборки.

  • 1 указывает на отклонение H 0.

  • 0 указывает на отказ отклонить H 0.

p-, возвращенные в виде числа или вектора длины numTests.

Протестируйте статистику, возвращенную в виде числа или вектора длины numTests. Для получения дополнительной информации см. критерии Чоу.

Критические значения для тестов, возвращенных в виде числа или вектора длины numTests\alpha определяет критические значения.

Больше о

свернуть все

Критерии Чоу

Chow tests оценивает устойчивость коэффициентов (β) в модели линейной регрессии кратного формы y = X β + ε. Прожуйте (1960), вводит два изменения: точка останова и тесты прогноза [1].

Тест точки останова является стандартным тестом F от ковариационного анализа. Тест прогноза использует стандартную теорию интервалов прогноза. Вклад еды должен поместить оба теста в общей линейной среде гипотезы, и затем разработать соответствующую тестовую статистику для тестирования подмножеств коэффициентов (см. Coeffs). Для статистических тестом формул см. [1].

Советы

  • Критерии Чоу принимают непрерывность инновационного отклонения через структурные изменения. Heteroscedasticity может исказить размер и степень теста. Необходимо проверить, что предположение инновационной непрерывности отклонения содержит перед использованием результатов испытаний для вывода.

  • Если обе подвыборки содержат больше, чем numCoeffs наблюдения, затем можно провести тест прогноза вместо теста точки останова. Однако тест прогноза может иметь более низкую силу относительно теста точки останова [1]. Тем не менее, Вильсон (1978) предлагает провести тест прогноза в присутствии неизвестных ошибок спецификации.

  • Можно применить тест прогноза к случаям, где обе подвыборки имеют размер, больше, чем numCoeffs, где вы обычно применяли бы тест точки останова. В таких случаях тест прогноза может иметь значительно уменьшенную относительно теста точки останова [1]. Тем не менее, Вильсон (1978) предлагает использование теста прогноза в присутствии неизвестных ошибок спецификации [4].

  • Тест прогноза основан на несмещенных прогнозах с нулевой средней погрешностью, которые следуют из устойчивых коэффициентов. Однако нулевая средняя ошибка прогноза, в целом, не гарантирует содействующей устойчивости. Таким образом предскажите, что тесты являются самыми эффективными при проверке структурные пропуски, вместо того, чтобы смоделировать непрерывность [3].

  • Получить диагностическую статистику для каждой подвыборки, такой как коэффициент регрессии оценивает, их стандартные погрешности, ошибочные суммы квадратов, и так далее, передают соответствующие данные fitlm. Для получения дополнительной информации при работе с LinearModel объекты модели, смотрите Многофакторную линейную регрессию (Statistics and Machine Learning Toolbox).

Ссылки

[1] Прожуйте, G. C. “Тесты Равенства Между Наборами Коэффициентов в Двух Линейных регрессиях”. Econometrica. Издание 28, 1960, стр 591–605.

[2] Фишер, F. M. “Тесты Равенства Между Наборами Коэффициентов в Двух Линейных регрессиях: Описательное Примечание”. Econometrica. Издание 38, 1970, стр 361–66.

[3] Rea, J. D. “Неопределенность критерия Чоу, Когда Количество Наблюдений Недостаточно”. Econometrica. Издание 46, 1978, p. 229.

[4] Вильсон, A. L. “Когда UMP критерия Чоу?” Американский Статистик. Издание 32, 1978, стр 66–68.

Введенный в R2015b

Для просмотра документации необходимо авторизоваться на сайте