This function basically creates a new df from data for each term in terms, creating a range from minimum and maximum of the predict(fit, newdata=df, type="terms"). Terms are then stacked to a tidy data frame.

get_terms(data, fit, terms, ...)

Arguments

data

A data frame containing variables used to fit the model. Only first row will be used.

fit

A fitted object of class gam.

terms

A character vector (can be length one). Specifies the terms for which partial effects will be returned

...

Further arguments passed to seq_range.

Value

A tibble with 5 columns.

Examples

library(survival) fit <- coxph(Surv(time, status) ~ pspline(karno) + pspline(age), data=veteran) terms_df <- veteran %>% get_terms(fit, terms = c("karno", "age")) head(terms_df)
#> # A tibble: 6 x 6 #> term x eff se ci_lower ci_upper #> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 karno 10 1.90 0.884 0.127 3.66 #> 2 karno 10.9 1.89 0.822 0.243 3.53 #> 3 karno 11.8 1.88 0.763 0.353 3.41 #> 4 karno 12.7 1.87 0.707 0.455 3.28 #> 5 karno 13.6 1.86 0.654 0.549 3.16 #> 6 karno 14.5 1.84 0.604 0.634 3.05
tail(terms_df)
#> # A tibble: 6 x 6 #> term x eff se ci_lower ci_upper #> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 age 78.6 -0.166 0.712 -1.59 1.26 #> 2 age 79.1 -0.192 0.751 -1.69 1.31 #> 3 age 79.6 -0.219 0.793 -1.80 1.37 #> 4 age 80.1 -0.247 0.837 -1.92 1.43 #> 5 age 80.5 -0.275 0.884 -2.04 1.49 #> 6 age 81 -0.303 0.933 -2.17 1.56