Почему гетероскедастический AICc/n дает более низкие значения, чем однокамерные модели? Проблемы подсчета параметров и сPython

Программы на Python
Ответить
Anonymous
 Почему гетероскедастический AICc/n дает более низкие значения, чем однокамерные модели? Проблемы подсчета параметров и с

Сообщение Anonymous »

Я адаптирую компартментальные модели к биологическим данным и сталкиваюсь с противоречивым результатом: модель, которая значительно улучшает соответствие (снижение NRMSE на 18%), имеет худший AICc, чем модель с минимальным улучшением (снижение NRMSE на 0,63%), несмотря на то, что обе модели имеют одинаковое количество параметров. Я считаю, что это связано с разными шкалами дисперсии в разных отсеках, но мне нужны разъяснения по правильному статистическому подходу. Я прочитал Burnham & Anderson (2002), но не смог найти никакой помощи, специфичной для моего случая.
Предпосылки
У меня есть три набора данных из одной и той же системы:
Набор данных 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)
Рассмотрим фактический вклад RSS:
Модель 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]
Поэтому я подозревал, что улучшение P1 статистически бесполезно, поскольку вклад P1 в общий RSS составляет 0,02%. Поэтому я подумал, что мне нужны отдельные отклонения для каждого отсека, поскольку они имеют совершенно разные масштабы, и я использовал гетероскедастический подход.

Код: Выделить всё

# 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)
При гетероскедастическом подходе модель B теперь показывает более низкий AICc.



Модель
Снижение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»