Извлечь функции коэффициентов из подобранного pfr-объекта из пакета возврата R
Я пытаюсь извлечь коэффициенты из подогнанного pfr
-объект.
Я подхожу к функциональной обобщенной линейной модели (FGLM) в форме:
E[Y_i] = X_i' \beta + \int_T f[t, Z_i(t)] dt
,Затем я пытаюсь извлечь коэффициенты с помощью
coef(fit_FGAM, n = c(n_1,n_2))
, гдеfit_FGAM
это подобранный модельный объект.Из документации я прочитал:
n
- целочисленный вектор, указывающий количество равных интервалов координат для каждого аргумента. Если длина 1, то же число используется для каждого аргумента. В противном случае длина должна совпадатьobject$smooth[[select]]$dim
,
Мне неясно:
Какой элемент, скажем, 2-элементного вектора
n = c(n_1,n_2)
соответствует аргументуt
и какой аргументZ_i
?Я предполагаю (думаю), что по умолчанию диапазон координат для аргумента
t
(время(min(t), min(t))
учитывая всеt
координаты одинаковы для всех наблюдений - так ли это?Как диапазон координат
Z_i
определено? Это диапазон всех (скалярных) значений, присутствующих в наборе данных вZ_i
через все временные точки и все наблюдения?
1 ответ
Боже мой, эта страница помощи ужасна...
- первый аргумент
n
дляt
второйZ
(см. пример ниже) - да
- да. см. ниже пример определения вашей собственной сетки оценки с
coords
-argument
`` `
library(refund)
data(DTI)
DTI1 <- DTI[DTI$visit==1 & complete.cases(DTI),]
par(mfrow=c(1,2))
# Fit FGAM:
(fit_af <- pfr(pasat ~ sex + case + af(cca, k=c(5, 8), bs="ps"), data=DTI1))
#>
#> Family: gaussian
#> Link function: identity
#>
#> Formula:
#> pasat ~ sex + case + te(z = cca.tmat, x = cca.omat, by = L.cca,
#> k = c(5, 8), bs = "ps")
#>
#> Estimated degrees of freedom:
#> 2.71 total = 4.71
#>
#> REML score: 232.6839 rank: 40/42
all.equal(
coefficients(fit_af, n = c(100, 10)),
coefficients(fit_af,
coords = list(cca.argvals = seq(0, 1, l = 100),
cca = modelr::seq_range(DTI1$cca, n = 10)))
)
#> [1] TRUE
`` `