Предпосылки
У меня есть три набора данных из одной и той же системы:
Набор данных 1 (скажем, A): один отсек (C1), n = 19 (19 точек экспериментальных данных)
Набор данных 2 (B): один отсек (C1), n=19
Набор данных 3 (C): два отсека (C1 + P1), n=38 (19 + 19)
Я использую стандартную коррекцию малой выборки:
AICc = -2*log(L) + 2K + (2K(K+1)/n-k-1)
Коэффициент масштабирования составляет приблизительно 130:1 между C1 и P1. Я хочу сравнить одну и ту же модель со всеми тремя наборами данных, чтобы определить, какой набор данных подходит лучше всего. Чтобы сравнения были значимыми, я рассчитываю AICc на одно наблюдение (AICc/n) как нормализованную метрику. Я сравниваю две модели, каждая с 1 свободным параметром (k=1):
Model
Снижение NRMSE по сравнению с базовым уровнем
Ожидаемый результат
Фактический AICc
Модель A
-0,63%
Высший AICc
411,90
Модель B
-18,06%
Lower AICc
412,87
Модель B подходит намного лучше, но имеет худший AICc. Почему?
Изначально я использовал гомоскедастический подход (объединенная дисперсия):
Код: Выделить всё
all_residuals = concatenate([compartment1_residuals, compartment2_residuals])
n_total = 38
# Single pooled variance
rss_total = sum(all_residuals**2)
sigma2_pooled = rss_total / n_total
# Log-likelihood
logL = -n_total/2 * (log(2π * sigma2_pooled) + 1)
# AICc
k = 1 + 1 # parameter + variance
AICc = 2*k - 2*logL + 2*k*(k+1)/(n_total - k - 1)
Модель A:
Код: Выделить всё
C1 RSS: 76,750 (99.98% of total)
P1 RSS: 14 (0.02% of total)
Total RSS: 76,764
Код: Выделить всё
C1 RSS: 79,153 (99.98% of total) [+2,403 worse!]
P1 RSS: 10 (0.01% of total) [-4 better]
Total RSS: 79,163 [Net: +2,399 worse]
Код: Выделить всё
# Separate variances for each compartment
sigma2_csf = rss_csf / n_csf
sigma2_plasma = rss_plasma / n_plasma
# Separate log-likelihoods
logL_csf = -n_csf/2 * (log(2π * sigma2_csf) + 1)
logL_plasma = -n_plasma/2 * (log(2π * sigma2_plasma) + 1)
# Sum log-likelihoods
logL_total = logL_csf + logL_plasma
# AICc (but what is k?)
k = 1
AICc = 2*k - 2*logL_total + 2*k*(k+1)/(n_total - k - 1)
Модель
Снижение NRMSE по сравнению с базовым уровнем
Ожидаемый результат
Фактический AICc
Модель A
-0,63%
Высший AICc
255,12
Модель B
-18,06%
Lower AICc
239,64
Гетероскедастический подход правильно оценивает Модель B как лучшую (согласуется с NRMSE). Но теперь сравнение между наборами данных не работает!
Мне нужно сравнить одну и ту же модель в разных наборах данных, чтобы увидеть, какой из них подходит лучше всего. Вот значения AICc/n для модели A:
Набор данных
Структура
Подход
Необработанный AICc
n
AICc/n
k
Набор данных 1
1 отсек
Стандарт
212.11
19
11.16
1
Набор данных 2
1 отсек
Стандарт
209.21
19
11.01
1
Набор данных 3
2 отсека
Гомоскедастический
411,90
38
10,84
1
Набор данных 3
2 отсека
Гетероскедастический
255,02
38
6.71
1
Проблема: При гетероскедастическом подходе AICc/n набора данных 3 падает до диапазона 6–7, а наборы данных 1 и 2 находятся в диапазоне 10–11. При гомоскедастическом подходе все три набора данных дают сопоставимые значения AICc/n (10–11), но это дает неправильный рейтинг модели для набора данных 3.
Стандартный справочник (Burnham & Anderson 2002) не рассматривает этот случай явно, и я ищу рекомендации статистического сообщества по передовому опыту. Я буду очень благодарен, если смогу получить помощь и совет, чтобы узнать, правильно ли я поступаю или нет? И если гетероскедастический подход верен, то как решить проблему нижнего диапазона?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ent-models
Мобильная версия