exponenta event banner

aicbic

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

Описание

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

пример

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

пример

[aic,bic] = aicbic(logL,numParam,numObs) также возвращает байесовские (шварцевские) информационные критерии (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'

БИК предлагает 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), которая имеет структуру ДГУ.

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

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

свернуть все

Loglikelienties, связанные с оценками параметров различных моделей, заданными как числовой вектор.

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

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

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

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

aicbic требует numObs для всех критериев, кроме АПК. 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соответственно.

Подробнее

свернуть все

Критерии информации

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

В этой таблице описано, как 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) тесты, сравните логические элементы двух конкурирующих вложенных моделей. Напротив, информационные критерии, основанные на логарифмах отдельных модельных посадок, являются приблизительными показателями потери информации относительно ДГУ. Информационные критерии обеспечивают относительное ранжирование любого числа конкурирующих моделей, включая неестественные модели.

Совет

  • В небольших образцах 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 Transactions on Automatic Control 19, No 6 (December 1974): 716-23. https://doi.org/10.1109/TAC.1974.1100705.

[3] Бернем, Кеннет П. и Дэвид Р. Андерсон. Выбор модели и вывод мультимодели: практический информационно-теоретический подход. 2-е изд., Нью-Йорк: Спрингер, 2002.

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

[5] Люткеполь, Гельмут и Маркус Крациг, редакторы. Прикладная эконометрика временных рядов. 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