# fRLM The functional Relevant Life course Model (fRLM) is a bayesian approach to test life course hypotheses over the continuous time. ## Installation You can install the development version of fRLM from [GitHub](https://github.com/) with: ``` r # install.packages("devtools") devtools::install_github("jbodelet/fRLM") ``` ## Example ``` r library(fRLM) library(dplyr) # parallel computing for the bayesian fit: # library("rstan") # observe startup messages # options(mc.cores = parallel::detectCores()) # rstan_options(auto_write = TRUE) ``` ### 1) Data setup: ``` r head(toy) # toy example dataset toy2 <- toy toy2[, 4] <- round( ( toy[, 4] - 10 ) / 30, 2 ) # i. rescale age: y <- toy2 %>% group_by(id) %>% summarise(outcome = mean(outcome) ) %>% pull(outcome) # extract outcome: t_obs <- toy2 %>% group_by(id) %>% summarise(age = list(age)) %>% pull(age) # extract age exposure <- toy2 %>% group_by(id) %>% summarise(exposure = list(exposure)) %>% pull(exposure) # extract exposure ``` ### 2) Fit gaussian processes: ``` r gpfitList <- lapply( 1:length(y), function(i) gpFit( t_obs[[i]], exposure[[i]] ) ) plot(gpfitList[[1]]) ``` ``` r grid <- seq(0,1, l = 150 ) pred <- t( sapply( gpfitList, predict, tnew = grid ) ) ``` ### 3) Frequentist Estimation: ``` r fit <- funcReg( y, pred, grid = grid, L = 8 ) bootfit <- bootFunReg( y, pred, grid = grid, L = 8 ) plot(bootfit, ylim = c(0, 3)) ``` ### 5) Bayesian Estimation: ``` r fitBayes <- funcReg_bayes( y, pred, warmup = 250, iter = 500, chains = 2 ) plot(fitBayes) ``` ### Testing: ``` r is_lmhyp_available <- require("lmhyp") if(!is_lmhyp_available){ devtools::install_github("Jaeoc/lmhyp") } library(lmhyp) library(stringi) library(stringr) library(purrr) library(tidyr) library(tibble) # composite test: Accumulation, sensitive, critical n_period <- 3 paritions <- cbind( 1:n_period - 1, 1:n_period ) / n_period colnames( paritions) <- c("l", "u") post_w <- get_post_weights( fitBayes, paritions ) composite_test( post_w ) # Finest credible intervals: get_FCI( post_w ) ```