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'

AIC предлагает тот 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 случайная серия Gaussian со средним значением 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 1D массив структур с полем для каждого информационного критерия. Каждое поле содержит вектор из измерений; элемент 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 случайная серия Gaussian со средним значением 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

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

свернуть все

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

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

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

Поле Описание
aicAIC
bicBIC
aiccОткорректированный AIC (AICc)
caicСопоставимый AIC (CAIC)
hqcКритерии Ханана-Квинна (HQC)

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

Больше о

свернуть все

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

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

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

Информационный критерийФормула
AICaic = -2*logL + 2*numParam
BICbic = -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

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

Советы

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

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

Ссылки

[1] Akaike, Hirotugu. "Теория информации и Расширение Принципа Наибольшего правдоподобия”. В Выбранных Документах Hirotugu Akaike, отредактированного Эмануэлем Парценом, Kunio Танабэ и Genshiro Kitagawa, 199–213. Нью-Йорк: Спрингер, 1998. https://doi.org/10.1007/978-1-4612-1694-0_15.

[2] Akaike, Hirotugu. “Новый Взгляд на Идентификацию Статистической модели”. Транзакции IEEE на Автоматическом управлении 19, № 6 (декабрь 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] Lütkepohl, Гельмут, и Маркус Крэциг, редакторы. Прикладная Эконометрика Временных рядов. 1-й редактор издательство Кембриджского университета, 2004. https://doi.org/10.1017/CBO9780511606885.

[6] Шварц, Джидеон. “Оценивая Размерность Модели”. Летопись Статистики 6, № 2 (март 1978): 461–64. https://doi.org/10.1214/aos/1176344136.

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