Этот пример показывает, как оценить степень критерия Чоу с помощью симуляции Монте-Карло.
Статистическая степень - это вероятность отклонения нулевой гипотезы, учитывая, что она на самом деле ложна. Чтобы оценить степень теста:
Симулируйте многие наборы данных из модели, которая типизирует альтернативную гипотезу.
Протестируйте каждый набор данных.
Оцените степень, которая является долей раз, когда тест отклоняет нулевую гипотезу.
Следующее может поставить под угрозу степень критерия Чоу:
Отклонения допущений линейной модели
Относительно большое инновационное отклонение
Использование прогностического теста, когда размер выборки дополнительной подвыборки больше, чем количество коэффициентов в тесте [38].
Отклонения от допущений модели позволяют исследовать факторы, которые больше всего влияют на степень критерия Чоу.
Рассмотрим модель
innov
является вектором случайных Гауссовых вариаций со средним нулем и стандартным отклонением sigma
.
X1
и X2
являются наборами данных предиктора для начальных и комплементарных подвыборок, соответственно.
beta1
и beta2
являются векторами коэффициентов регрессии для начальной и комплементарной подвыборок, соответственно.
Задайте четыре предиктора, 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]; X1 = X(1:bp,:); % Initial subsample predictors X2 = X(bp+1:end,:); % Complementary subsample predictors
Задайте истинные значения коэффициентов регрессии.
beta1 = [1 2 3 4 5]'; % Initial subsample coefficients
Сравните степень между точкой пропуска и прогнозными тестами для переходов разных размеров, малых в коэффициенте точки пересечения и втором коэффициенте регрессии. В этом примере небольшой переход является увеличением текущего значения на 10%, а большой переход - увеличением на 15%. Комплементарные коэффициенты подмножества
beta2Small = beta1 + [beta1(1)*0.1 0 beta1(3)*0.1 0 0 ]'; beta2Large = beta1 + [beta1(1)*0.15 0 beta1(3)*0.15 0 0 ]';
Симулируйте 1000 путей отклика линейной модели для каждого из малых и больших переходов коэффициентов. Задайте, что sigma
равен 0,2. Выберите для тестирования точки пересечения и второго коэффициента регрессии.
M = 1000; sigma = 0.2; Coeffs = [true false true false false]; h1BP = nan(M,2); % Preallocation h1F = nan(M,2); for j = 1:M innovSmall = sigma*randn(numObs,1); innovLarge = sigma*randn(numObs,1); ySmall = [X1 zeros(bp,size(X2,2)); ... zeros(numObs - bp,size(X1,2)) X2]*[beta1; beta2Small] + innovSmall; yLarge = [X1 zeros(bp,size(X2,2)); ... zeros(numObs - bp,size(X1,2)) X2]*[beta1; beta2Large] + innovLarge; h1BP(j,1) = chowtest(X,ySmall,bp,'Intercept',false,'Coeffs',Coeffs,... 'Display','off')'; h1BP(j,2) = chowtest(X,yLarge,bp,'Intercept',false,'Coeffs',Coeffs,... 'Display','off')'; h1F(j,1) = chowtest(X,ySmall,bp,'Intercept',false,'Coeffs',Coeffs,... 'Test','forecast','Display','off')'; h1F(j,2) = chowtest(X,yLarge,bp,'Intercept',false,'Coeffs',Coeffs,... 'Test','forecast','Display','off')'; end
Оцените степень путем вычисления доли раз chowtest
правильно отвергла нулевую гипотезу устойчивости коэффициента.
power1BP = mean(h1BP); power1F = mean(h1F); table(power1BP',power1F','RowNames',{'Small_Jump','Large_Jump'},... 'VariableNames',{'Breakpoint','Forecast'})
ans=2×2 table
Breakpoint Forecast
__________ ________
Small_Jump 0.717 0.645
Large_Jump 0.966 0.94
В этом сценарии критерий Чоу может обнаружить изменение коэффициента с большей степенью, когда переход больше. Тест точки пропуска имеет большую степень для обнаружения перехода, чем тест прогноза.
Симулируйте 1000 путей отклика линейной модели для большого перехода коэффициентов. Задайте, что sigma
равен 0,4. Выберите для тестирования точки пересечения и второго коэффициента регрессии.
sigma = 0.4; h2BP = nan(M,1); h2F = nan(M,1); for j = 1:M innov = sigma*randn(numObs,1); y = [X1 zeros(bp,size(X2,2)); ... zeros(numObs - bp,size(X1,2)) X2]*[beta1; beta2Large] + innov; h2BP(j) = chowtest(X,y,bp,'Intercept',false,'Coeffs',Coeffs,... 'Display','off')'; h2F(j) = chowtest(X,y,bp,'Intercept',false,'Coeffs',Coeffs,... 'Test','forecast','Display','off')'; end power2BP = mean(h2BP); power2F = mean(h2F); table([power1BP(2); power2BP],[power1F(2); power2F],... 'RowNames',{'Small_sigma','Large_Sigma'},... 'VariableNames',{'Breakpoint','Forecast'})
ans=2×2 table
Breakpoint Forecast
__________ ________
Small_sigma 0.966 0.94
Large_Sigma 0.418 0.352
Для большего инновационного отклонения оба критериев Чоу испытывают трудности с обнаружением больших структурных пропусков в коэффициентах точки пересечения и второй регрессии.