Расширение tecdat|R Обобщенные аддитивные (аддитивные) модели (GAM) и визуализация гладких функций

сбор данных

Оригинальная ссылка:tecdat.cn/?p=23509 

Первоисточник:Публичный аккаунт Tuoduan Data Tribe

Мы используем обобщенные аддитивные модели (ГАМ) в нашей исследовательской работе. Пакет mgcv представляет собой отличный набор программного обеспечения для определения, подбора и визуализации GAM для очень больших наборов данных.

В этом посте описывается, что в настоящее время возможно с помощью обобщенных аддитивных моделей (GAM).

Нам нужно загрузить mgcv

library('mgcv')

Популярные примеры наборов данных

Данные в dat хорошо изучены в исследованиях, связанных с GAM, и содержат ряд ковариат, помеченных от x0 до x3, которые имеют нелинейную связь с зависимой переменной в различной степени.

Мы хотим попытаться подогнать эти отношения, используя сплайны, чтобы аппроксимировать истинные отношения между ковариатами и зависимыми переменными. Чтобы соответствовать аддитивной модели, мы используем

 gam(y ~ s(x0) + s(x1) + s(x2) + s(x3), dat,  "REML")

mgcv предоставляет метод summary() для извлечения информации о подогнанном GAM.

Функция check() для проверки каждой гладкости в модели.функцияИспользуется ли достаточное количество базовых функций. Вы не можете использовать check() напрямую - будут выведены другие диагностические данные и четыре графика диагностики модели.

рисовать гладкофункциярисунок

Чтобы визуализировать предполагаемые GAM, mgcv предоставляет метод plot.gam() и функцию vis.gam() для создания графиков, подобных ggplot2, из объектов. Чтобы сгладить четыре оценки в модели GAMфункциядля визуализации мы будем использовать

plot(mod)

Результат - отрисовка каждого сглаживания в моде GAMфункция.

Используйте функцию построения графика для рисования нескольких панелей на устройстве рисования и выстраивания отдельных графиков в линию.

Экстракт гладкийфункцияданные

Базовая гладкость для работы с представлениями в модефункция, если вы хотите извлечь большую часть данных, используемых для построения графика, вы можете использовать функцию smooth().

smooth(mod, "x1")

Диагностическая карта

Диагностический график, созданный функцией check()

check(mod)

Результатом является массив из четырех диагностических графиков, включая график Q-Q (вверху слева) и гистограмму (внизу слева) остатков модели, график остатков в сравнении с линейным предиктором (вверху справа) и график наблюдаемых значений в сравнении с подобранными.

Каждый из этих четырех графиков создается с помощью доступной пользователю функции, реализующей конкретный график. Например, qqplot(mod) создает график Q-Q в левом верхнем углу рисунка выше.

qqplot(mod)

Результатом qqplot(mod) является график остатков Q-Q с эталонными величинами, полученными путем моделирования данных подобранной модели.

还可以处理目前可用的许多更专业的гладкийфункция。例如,二维гладкийфункция.


plot(mod)

2D гладкийфункцияПо умолчанию используется метод построения графика plot().

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


## 模拟数据
f0 <- function(x) 2 * sin(pi * x)
f1 <- function(x, a=2, b=-1) exp(a * x)+b
f2 <- function(x) 0.2 * x^11 * (10 * (1 - x))^6 + 10 * (10 * x)^3 * (1 - x)^10
f <- f0(x0) + f1(x1, a[fac], b[fac]) + f2(x2)
fac <- factor(fac)
y <- f + rnorm(n) * 2


plot(mod)

Содержит фактор — сглаживаниефункцияРезультаты более сложной игры терминов взаимодействия, BS = 'FS'.

Что еще можно сделать?

Может справиться с большей частью гладкости, которую может оценить mgcvфункция, включая сглаживание по переменным с факторами и непрерывными вторичными переменнымифункция, случайные эффекты плавныефункция(bs = 're'), сглаживание двумерного тензорного произведенияфункцияи модель с параметрическими условиями.

использованная литература

Augustin, N. H., Sauleau, E.-A., and Wood, S. N. (2012). On quantile quantile plots for generalized linear models. Computational statistics & data analysis56, 2404–2409. doi:10.1016/j.csda.2012.01.026.


Самые популярные идеи

1.Случай применения многомерной логистической регрессии на языке R

2.Пример реализации панельного регрессионного анализа с плавным переходом (PSTR)

3.Частичная регрессия методом наименьших квадратов (PLSR) и регрессия основных компонентов (PCR) в Matlab

4.Случай анализа регрессионной модели Пуассона на языке R

5.Анализ логистической модели логистической регрессии смешанных эффектов языка R рака легких

6.Реализация регрессии LASSO, регрессии Ridge и модели эластичной сети на языке r

7.Логистическая регрессия на языке R, наивный байесовский алгоритм Байеса, дерево решений, алгоритм случайного леса для прогнозирования сердечных заболеваний

8.python использует линейную регрессию для прогнозирования цен на акции

9.Язык R использует логистическую регрессию, деревья решений и случайные леса для прогнозирования классификации наборов кредитных данных.