aicbic

Информационные критерии

Описание

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

пример

aic = aicbic(logL,numParam) возвращает информационные критерии (AIC) Akaike, заданные значения логарифмической правдоподобности logL выведен из подбора кривой различных моделей к данным и учитывая соответствующее количество предполагаемых параметров модели numParam.

пример

[aic,bic] = aicbic(logL,numParam,numObs) также возвращает байесовские (Schwarz) информационные критерии (BIC), заданные соответствующие размеры выборки, используемые при оценке numObs.

пример

[aic,bic] = aicbic(logL,numParam,numObs,'Normalize',true) нормализует результаты путем деления всех выходных аргументов на размеры выборки numObs. По умолчанию, aicbic не нормализует результаты ('Normalize',false).

пример

[aic,bic,ic] = aicbic(logL,numParam,numObs) также возвращает структуру ic содержащие AIC, BIC и другие информационные критерии.

[aic,bic,ic] = aicbic(logL,numParam,numObs,'Normalize',true) нормализует все возвращенные информационные критерии по размерам выборки numObs.

Примеры

свернуть все

Сравните подгонки в выборке трех конкурирующих моделей с использованием AIC и BIC. Их значения логарифмической правдоподобности logL и соответствующее количество предполагаемых параметров numParam приведены в следующей таблице. Предположим, что эффективный размер выборки равен 1500.

logL = [-681.4724; -663.4615; -632.3158];
numParam = [12; 18; 27];
numObs = 1500;
Tbl = table(logL,numParam,'RowNames',"Model"+string(1:3))
Tbl=3×2 table
               logL      numParam
              _______    ________

    Model1    -681.47       12   
    Model2    -663.46       18   
    Model3    -632.32       27   

Вычисление AIC

Вычислите AIC каждой оцененной модели.

aic = aicbic(logL,numParam)
aic = 3×1
103 ×

    1.3869
    1.3629
    1.3186

Модель с самым низким AIC имеет лучшую подгонку в выборке. Идентифицируйте модель с самым низким AIC.

[~,idxmin] = min(aic);
bestFitAIC = Tbl.Properties.RowNames{idxmin}
bestFitAIC = 
'Model3'

АПК предполагает, что Model3 имеет лучшую, самую скупую подгонку, несмотря на то, что является самой сложной из трех моделей.

Вычисление BIC

Вычислите BIC каждой оцененной модели. Задайте размер выборки numObs, который необходим для вычисления BIC.

[~,bic] = aicbic(logL,numParam,numObs)
bic = 3×1
103 ×

    1.4507
    1.4586
    1.4621

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

[~,idxmin] = min(bic);
bestFitBIC = Tbl.Properties.RowNames{idxmin}
bestFitBIC = 
'Model1'

BIC предлагает Model1, самой простой из трех моделей. Результаты показывают, что, когда размер выборки велик, BIC налагает больший штраф на сложные модели, чем AIC.

Подгонка нескольких моделей к моделируемым данным, а затем сравнение моделей с использованием всех доступных информационных критериев.

Симулируйте случайный путь длины 100 от процесса генерации данных (DGP)

yt=1+0.2yt-1-0.4yt-2+εt,

где εt является случайным Гауссовым рядом со средним 0 и отклонением 1.

rng(1)  % For reproducibility
T = 100;
DGP = arima('Constant',1,'AR',[0.2,-0.4],'Variance',1);
y = simulate(DGP,T);

Предположим, что DGP неизвестен и что модели AR (1), AR (2) и AR (3) подходят для описания DGP.

Для каждой конкурирующей модели создайте arima шаблон модели для оценки.

Mdl(1) = arima(1,0,0);
Mdl(2) = arima(2,0,0);
Mdl(3) = arima(3,0,0);

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

numMdl = numel(Mdl);
logL = zeros(numMdl,1);      % Preallocate
numParam = zeros(numMdl,1);

for j = 1:numMdl
    [EstMdl,~,logL(j)] = estimate(Mdl(j),y,'Display','off');
    results = summarize(EstMdl);
    numParam(j) = results.NumEstimatedParameters;
end

Для каждой модели вычислите все доступные информационные критерии.

[~,~,ic] = aicbic(logL,numParam,T)
ic = struct with fields:
     aic: [310.9968 285.5082 287.0309]
     bic: [318.8123 295.9289 300.0567]
    aicc: [311.2468 285.9292 287.6692]
    caic: [321.8123 299.9289 305.0567]
     hqc: [314.1599 289.7256 292.3027]

ic является 1-D массив структур с полем для каждого информационного критерия. Каждое поле содержит вектор измерений; элемент j соответствует модели, дающей логарифмическую правдоподобность logL(j).

Для каждого критерия определите модель, которая приводит к минимальному значению.

[~,minIdx] = structfun(@min,ic);
[Mdl(minIdx).Description]'
ans = 5x1 string
    "ARIMA(2,0,0) Model (Gaussian Distribution)"
    "ARIMA(2,0,0) Model (Gaussian Distribution)"
    "ARIMA(2,0,0) Model (Gaussian Distribution)"
    "ARIMA(2,0,0) Model (Gaussian Distribution)"
    "ARIMA(2,0,0) Model (Gaussian Distribution)"

Минимум каждого критерия соответствует модели AR (2), которая имеет структуру DGP.

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

Симулируйте случайный путь длины 50 от DGP

yt=1+0.2yt-1-0.4yt-2+εt,

где εt является случайным Гауссовым рядом со средним 0 и отклонением 1.

rng(1)  % For reproducibility
T = 50;
DGP = arima('Constant',1,'AR',[0.2,-0.4],'Variance',1);
y = simulate(DGP,T);

Создайте arima шаблон модели для каждой конкурирующей модели.

Mdl(1) = arima(1,0,0);
Mdl(2) = arima(2,0,0);
Mdl(3) = arima(3,0,0);

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

numMdl = numel(Mdl);
logL = zeros(numMdl,1);      % Preallocate
numParam = zeros(numMdl,1);
numObs = zeros(numMdl,1);

for j = 1:numMdl
    y0 = y(1:Mdl(j).P);             % Presample
    yest = y((Mdl(j).P+1):end);     % Estimation sample
    [EstMdl,~,logL(j)] = estimate(Mdl(j),yest,'Y0',y0,...
        'Display','off');
    results = summarize(EstMdl);
    numParam(j) = results.NumEstimatedParameters;
    numObs(j) = results.SampleSize; 
end
    

Для каждой модели вычислите нормированный AIC.

aic = aicbic(logL,numParam,numObs,'Normalize',true)
aic = 3×1

    3.2972
    2.9880
    3.0361

Определите модель, которая приводит к минимальному AIC.

[~,minIdx] = min(aic);
Mdl(minIdx).Description
ans = 
"ARIMA(2,0,0) Model (Gaussian Distribution)"

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

свернуть все

Логарифмической правдоподобности сопоставлены с оценками параметров различных моделей, заданными в виде числового вектора.

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

Количество предполагаемых параметров в моделях, заданное в виде положительного целого числа, примененного ко всем элементам logL, или вектор положительных целых чисел с той же длиной, что и logL.

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

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

aicbic требует numObs для всех критериев, кроме AIC. aicbic также требует numObs если 'Normalize' является true.

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

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

свернуть все

АПК, соответствующий элементам logL, возвращенный как числовой вектор.

BIC, соответствующий элементам logL, возвращенный как числовой вектор.

Информационные критерии, возвращенные как массив 1-D структур, содержащий поля, описанные в этой таблице. Значения поля являются числовыми векторами с элементами, соответствующими элементам logL.

ОбластьОписание
aicAIC
bicКОНТРОЛЛЕР МАГИСТРАЛЬНОГО ИНТЕРФЕЙСА
aiccИсправленный AIC (AICc)
caicПоследовательный AIC (CAIC)
hqcКритерии Ханнан-Куинна (HQC)

ic.aic и ic.bic те же значения, что и в aic и bic, соответственно.

Подробнее о

свернуть все

Информационные критерии

Information criteria ранжировать модели с помощью мер, которые балансируют качество подгонки с параметром parsimony. Для конкретного критерия предпочтительны модели с более низкими значениями.

Эта таблица описывает, как aicbic вычисляет ненормализованные критерии.

Информационный критерийФормула
AICaic = -2*logL + 2*numParam
КОНТРОЛЛЕР МАГИСТРАЛЬНОГО ИНТЕРФЕЙСАbic = -2*logL + log(numObs)*numParam
AICcaicc = aic + [2*numParam*(numParam + 1)]/(numObs – numParam – 1)
КАИКcaic = -2*logL + (log(numObs) + 1)*numParam
HQChqc = -2*logL + 2*log(log(numObs))*numParam

Мисспецификационные тесты, такие как множитель Лагранжа (lmtest), коэффициент правдоподобия (lratiotest), и Уолд (waldtest) тестирует, сравнивает логарифмическую правдоподобность двух конкурирующих вложенных моделей. Напротив, информационные критерии, основанные на логарифмической правдоподобности индивидуума моделей, являются приблизительными показателями потерь информации относительно DGP. Информационные критерии обеспечивают относительные рейтинги любого количества конкурирующих моделей, включая неотключенные модели.

Совет

  • В небольших выборках AIC имеет тенденцию к избыточной подгонке. Чтобы решить проблему сверхподбора кривой, AICc добавляет зависимый от размера термин коррекции, который увеличивает штраф от количества параметров. AICc приближается к AIC асимптотически. Анализ в [3] предполагает использование AICc при numObs/numParam <40.

  • Когда экономисты сравнивают модели с различными числами авторегрессивных лагов или различными порядками дифференцирования, они часто масштабируют информационные критерии по количеству наблюдений [5]. Чтобы масштабировать информационные критерии, задайте numObs к эффективному размеру выборки каждой оценки и задать 'Normalize' к true.

Ссылки

[1] Акайке, Хиротугу. «Теория информации и расширение принципа максимального правдоподобия». В «Избранных документах Хиротугу Акайке» под редакцией Эмануэля Парзена, Кунио Танабе и Гэнсиро Китагавы, 199-213. Нью-Йорк: Спрингер, 1998. https://doi.org/10.1007/978-1-4612-1694-0_15.

[2] Акайке, Хиротугу. «Новый взгляд на идентификацию статистической модели». Транзакции IEEE по автоматическому контролю 19, № 6 (декабрь 1974 года): 716-23. https://doi.org/10.1109/TAC.1974.1100705.

[3] Бернем, Кеннет П. и Дэвид Р. Андерсон. Выбор модели и вывод мультимодели: практический информационно-теоретический подход. 2nd ed, New York: Springer, 2002.

[4] Ханнан, Эдвард Дж., и Барри Г. Куинн. «Определение порядка авторегрессии». Журнал Королевского статистического общества: Серия B (Методологическая) 41, № 2 (январь 1979): 190-95. https://doi.org/10.1111/j.2517-6161.1979.tb01072.x.

[5] Lütkepohl, Helmut, and Markus Krätzig, редактора. Эконометрика прикладных временных рядов. 1-я ред. Cambridge University Press, 2004. https://doi.org/10.1017/CBO9780511606885.

[6] Шварц, Гидеон. «Оценка размерности модели». Анналы статистики 6, № 2 (март 1978): 461-64. https://doi.org/10.1214/aos/1176344136.

Представлено до R2006a