https://doi.org/10.5281/zenodo.14318846
01 - refit_models_unstd.Rmd
---
title: "Script to refit models and extract coefficients for unstandardised data"
author: "Rachel Mawer"
date: "2023-11-29"
output:
html_document:
toc: true
toc_float: true
theme: cerulean
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = F,message=F)
#main packages #delete/add as needed
library(dplyr)
library(ggplot2)
library(knitr)
library(ggpubr)
library(plotly)
library(pracma) #for standard error
library(reactable)
library(stringr)
library(amt)
```
## About
In this file, all final models for all fish and states are read in and refitted with the unstandardised data - e.g. model structure obtained is reused.
Resulting coefficients are saved as a file for use in simulations.
```{r read in file names etc}
fish_ids <- list.files("ssf modelling - file per fish")
files <- list.files("ssf modelling - file per fish",full.names = T)
files <- files[!grepl("coeffs",files)] #remove the non fish folder
#og data files
data_files <- list.files("data/final ssf + hmm df",full.names = T)
save_loc <- "unstandardised ssf model outputs"
```
```{r run the loop}
#loop to do everything
i <- 1
z <- 1
for(i in 1:length(files)){
fish_id <- fish_ids[i]
fish_files <- list.files(files[i],full.names = T)
fish_files <- fish_files[grepl("final",fish_files)]
fish_data_files <-data_files[grepl(fish_id,data_files)]
for(z in 1:length(fish_files)){
model <- readRDS(fish_files[z]) #get model
data <- read.csv(fish_data_files[z]) #get data
state <- data$state %>% unique()
#extract model formula
frm_part <- as.character(model$formula)[3] %>% str_remove_all("_strdised") %>% str_remove_all("\n")
frm <- paste("case_ ~",frm_part) %>% as.formula()
new_mod <- fit_issf(formula = frm,data=data)
coefs <- summary(new_mod)$coefficients %>% as.data.frame() %>% tibble::rownames_to_column("params")
coefs$fish_id <- fish_id
coefs$state <- state
coefs$species <- unique(data$species)
if(z==1){
fish_coefs <- coefs
} else{
fish_coefs <- bind_rows(fish_coefs,coefs)
}
}
if(i==1){
all_coefs <- fish_coefs
}else{
all_coefs <- bind_rows(all_coefs,fish_coefs)
}
}
write.csv(all_coefs,"FINAL RESULTS/all_coefs_both_states_UNSTANDARDISED.csv",row.names=F)
```
```{r data loc pooled}
fish_ids <- list.files("ssf modelling - file per fish - pooled")
files <- list.files("ssf modelling - file per fish - pooled",full.names = T)
files <- files[!grepl("coeffs",files)] #remove the non fish folder
#og data files
data_files <- list.files("data/SSF dataframes",full.names = T)
```
```{r and for the both states data}
#loop to do everything
i <- 1
z <- 1
for(i in 1:length(files)){
fish_id <- fish_ids[i]
fish_files <- list.files(files[i],full.names = T)
fish_files <- fish_files[grepl("final",fish_files)]
fish_data_files <-data_files[grepl(fish_id,data_files)]
model <- readRDS(fish_files) #get model
data <- read.csv(fish_data_files) #get data
#extract model formula
frm_part <- as.character(model$formula)[3] %>% str_remove_all("_strdised") %>% str_remove_all("\n")
frm <- paste("case_ ~",frm_part) %>% as.formula()
#need to save name
new_mod <- fit_issf(formula = frm,data=data)
coefs <- summary(new_mod)$coefficients %>% as.data.frame() %>% tibble::rownames_to_column("params")
coefs$fish_id <- fish_id
coefs$state <- "pooled"
coefs$species <- unique(data$species)
fish_coefs <- coefs
if(i==1){
all_coefs <- fish_coefs
}else{
all_coefs <- bind_rows(all_coefs,fish_coefs)
}
}
write.csv(all_coefs,"FINAL RESULTS/all_coefs_pooled_UNSTANDARDISED.csv",row.names=F)
```