## Create three subsets
dt.all <- read.csv("data/all_traits_pca.csv", row.names=1) # all apseices
dt.np <- dt.all %>% filter(Order!="Passeriformes") # non-passerines
dt.psr <- dt.all %>% filter(Order=="Passeriformes") # passerines

## Import phylogenetic consensus tree
contree <- readRDS("data/consensus_tree_ultrametric.rds")

## Model formula
formula <- formula("Y ~ npp + PC1 + PC2 + I(PC2^2) +
                   Ground + Cooperative + Migration + Egg + Clutch +
                   npp*Ground + npp*Cooperative + npp*Clutch +
                   PC1*Egg + PC2*Egg + I(PC2^2)*Egg")

## Fit models and save results for each subset and model type
#  (Warning: long runtime, depending on n.random.beta and nboot)

n.random.beta <- 300 # number of sets of random initial beta values to select from
nboot <- 999 # number of bootstrap in the final model fitting

set.seed(123)
beta <- matrix(runif(n.random.beta*16, -.2, .2), ncol=16) # 16 betas per set
beta[222,]

dataset <- get_dataset(dt.all, "enclosed", contree)
phyloglm(formula, data=dataset[[1]], phy=dataset[[2]], start.beta=beta[296,], boot=0, method="logistic_MPLE", full.matrix=T, btol=20)


readRDS("output/model_all_cavity.rds")$bootmean
readRDS("../r_nest_imac/model_20240709/all_npp_cavity_btol20_boot999_beta18.rds")$bootmean