rm(list=ls())
source("~/Dropbox/FCU/Teaching/Mentoring/2022Spring-Current_Professor/2022Fall/YourueiMin/rcode_dcj/empricaldataanalysis/mainPhyarima.R")
## Loading required package: ape
## Loading required package: phytools
## Loading required package: maps
## 
## Attaching package: 'extraDistr'
## The following object is masked from 'package:geiger':
## 
##     dtpois
## 
## Attaching package: 'LaplacesDemon'
## The following objects are masked from 'package:extraDistr':
## 
##     dbern, dcat, ddirichlet, dgpd, dgpois, dinvchisq, dinvgamma,
##     dlaplace, dpareto, pbern, plaplace, ppareto, qbern, qcat, qlaplace,
##     qpareto, rbern, rcat, rdirichlet, rgpd, rinvchisq, rinvgamma,
##     rlaplace, rpareto
## The following object is masked from 'package:geiger':
## 
##     is.constrained
## Loading required package: emmeans
## 
## Attaching package: 'RRphylo'
## The following object is masked from 'package:geiger':
## 
##     tips
## The following object is masked from 'package:phytools':
## 
##     node.paths
## Loading required package: MASS
## Loading required package: minpack.lm
## Loading required package: rgl
## Loading required package: robustbase
## Loading required package: Matrix
ntaxa<-8
stree<-stree(ntaxa)
tree<-compute.brlen(stree(ntaxa,type="balanced"))
#tree<-reorder(tree,"postorder")
fastBM(tree,internal=T,sig2=1)->phen
phen[1:ntaxa]->y
trait<-round(y,2)
trait
##    t1    t2    t3    t4    t5    t6    t7    t8 
## -1.14 -1.43 -1.23 -1.64 -0.39 -0.95  0.77  0.42
edgelength<-tree$edge.length
#names(edgelength)<-edge_labels
#edgelength
betas.rrphylo <- compute_betas_rrphylo(tree, y)$betas.rrphylo

betas.rrphylo
##             [,1]
## 9   0.1562941331
## 10 -0.1857322335
## 11 -0.0214344439
## 12 -0.0714316728
## 13  0.8109087659
## 14 -0.0054097547
## 15  0.4108641377
## 1   0.0081981086
## 2  -0.0189153306
## 3   0.0004793459
## 4  -0.0361951823
## 5   0.0241368545
## 6  -0.0268417318
## 7   0.1189811462
## 8   0.0864509226
# Rename node labels
node_labels <- paste("nd", (ntaxa+1):(2*ntaxa-1),sep="")
plot(tree,  show.tip.label = FALSE , edge.width = 2, cex = 3)
title(main = "Raw Tree", cex.main = 1.5)
nodelabels(node_labels, cex = 1.5)
# Add tip labels
tiplabels(paste("y",1:ntaxa,sep=""), cex = 1.5)
# Get the number of edges
num_edges <- Nedge(tree)
# Create edge labels
edge_labels <- paste0("eg", seq_len(num_edges),sep="")
edgelabels(edge_labels, cex = 1.5)

df.trait<-data.frame(trait=t(trait))
colnames(df.trait)<-paste("y",1:length(trait),sep="")
df.trait
##      y1    y2    y3    y4    y5    y6   y7   y8
## 1 -1.14 -1.43 -1.23 -1.64 -0.39 -0.95 0.77 0.42
xtable(df.trait)
## % latex table generated in R 4.3.2 by xtable 1.8-4 package
## % Tue Apr 30 08:43:11 2024
## \begin{table}[ht]
## \centering
## \begin{tabular}{rrrrrrrrr}
##   \hline
##  & y1 & y2 & y3 & y4 & y5 & y6 & y7 & y8 \\ 
##   \hline
## 1 & -1.14 & -1.43 & -1.23 & -1.64 & -0.39 & -0.95 & 0.77 & 0.42 \\ 
##    \hline
## \end{tabular}
## \end{table}
df.edgelen<-data.frame(edgelength=round(t(edgelength),3))
colnames(df.edgelen)<-paste("eg",1:length(df.edgelen),sep="")
df.edgelen
##     eg1   eg2   eg3   eg4   eg5   eg6   eg7   eg8   eg9  eg10  eg11  eg12  eg13
## 1 0.571 0.286 0.143 0.143 0.286 0.143 0.143 0.571 0.286 0.143 0.143 0.286 0.143
##    eg14
## 1 0.143
xtable(df.edgelen,digits=3)
## % latex table generated in R 4.3.2 by xtable 1.8-4 package
## % Tue Apr 30 08:43:11 2024
## \begin{table}[ht]
## \centering
## \begin{tabular}{rrrrrrrrrrrrrrr}
##   \hline
##  & eg1 & eg2 & eg3 & eg4 & eg5 & eg6 & eg7 & eg8 & eg9 & eg10 & eg11 & eg12 & eg13 & eg14 \\ 
##   \hline
## 1 & 0.571 & 0.286 & 0.143 & 0.143 & 0.286 & 0.143 & 0.143 & 0.571 & 0.286 & 0.143 & 0.143 & 0.286 & 0.143 & 0.143 \\ 
##    \hline
## \end{tabular}
## \end{table}
df.betas.rrphylo<-data.frame(betas.rrphylo=t(round(betas.rrphylo,3)))
colnames(df.betas.rrphylo)<-paste("nd",1:length(df.betas.rrphylo),sep="")
df.betas.rrphylo
##     nd1    nd2    nd3    nd4   nd5    nd6   nd7   nd8    nd9 nd10   nd11  nd12
## 1 0.156 -0.186 -0.021 -0.071 0.811 -0.005 0.411 0.008 -0.019    0 -0.036 0.024
##     nd13  nd14  nd15
## 1 -0.027 0.119 0.086
xtable(df.betas.rrphylo,digits=3)
## % latex table generated in R 4.3.2 by xtable 1.8-4 package
## % Tue Apr 30 08:43:11 2024
## \begin{table}[ht]
## \centering
## \begin{tabular}{rrrrrrrrrrrrrrrr}
##   \hline
##  & nd1 & nd2 & nd3 & nd4 & nd5 & nd6 & nd7 & nd8 & nd9 & nd10 & nd11 & nd12 & nd13 & nd14 & nd15 \\ 
##   \hline
## 1 & 0.156 & -0.186 & -0.021 & -0.071 & 0.811 & -0.005 & 0.411 & 0.008 & -0.019 & 0.000 & -0.036 & 0.024 & -0.027 & 0.119 & 0.086 \\ 
##    \hline
## \end{tabular}
## \end{table}
#######################################
############ Formal Analysis ##########
#######################################

mfit<-modelfit(trait=y, tree=tree) 

empmodelout<-empmodel(mfit)

empmodelout$parammleset
##                           phi        phi2       theta      theta2      sigsq
## AR1                0.29798390          NA          NA          NA 0.05639068
## AR2                0.30673460 -0.01756866          NA          NA 0.06102567
## ARMA1              0.58670030          NA -0.40926798          NA 0.05434437
## ARMA21            -0.05687953  0.64357982 -0.40926795          NA 0.05434437
## ARMA22            -0.02356677  0.61028222 -0.02426522 -0.38503125 0.05434445
## Weighted Estimate  0.32674169  0.07412241 -0.13578639 -0.01155094 0.05621021
empmodelout$fitset
##   modelset paranumset loglikset aicset aicweightset rankset
## 1      AR1          2      0.25   3.51         0.52       1
## 2      AR2          3     -0.25   6.49         0.12       3
## 3    ARMA1          3      0.49   5.03         0.24       2
## 4   ARMA21          4      0.49   7.03         0.09       4
## 5   ARMA22          5      0.49   9.03         0.03       5
xtable(empmodelout$parammleset,digits=3)
## % latex table generated in R 4.3.2 by xtable 1.8-4 package
## % Tue Apr 30 08:43:12 2024
## \begin{table}[ht]
## \centering
## \begin{tabular}{rrrrrr}
##   \hline
##  & phi & phi2 & theta & theta2 & sigsq \\ 
##   \hline
## AR1 & 0.298 &  &  &  & 0.056 \\ 
##   AR2 & 0.307 & -0.018 &  &  & 0.061 \\ 
##   ARMA1 & 0.587 &  & -0.409 &  & 0.054 \\ 
##   ARMA21 & -0.057 & 0.644 & -0.409 &  & 0.054 \\ 
##   ARMA22 & -0.024 & 0.610 & -0.024 & -0.385 & 0.054 \\ 
##   Weighted Estimate & 0.327 & 0.074 & -0.136 & -0.012 & 0.056 \\ 
##    \hline
## \end{tabular}
## \end{table}
xtable(empmodelout$fitset,digits=3)
## % latex table generated in R 4.3.2 by xtable 1.8-4 package
## % Tue Apr 30 08:43:12 2024
## \begin{table}[ht]
## \centering
## \begin{tabular}{rlrrrrr}
##   \hline
##  & modelset & paranumset & loglikset & aicset & aicweightset & rankset \\ 
##   \hline
## 1 & AR1 & 2.000 & 0.250 & 3.510 & 0.520 & 1.000 \\ 
##   2 & AR2 & 3.000 & -0.250 & 6.490 & 0.120 & 3.000 \\ 
##   3 & ARMA1 & 3.000 & 0.490 & 5.030 & 0.240 & 2.000 \\ 
##   4 & ARMA21 & 4.000 & 0.490 & 7.030 & 0.090 & 4.000 \\ 
##   5 & ARMA22 & 5.000 & 0.490 & 9.030 & 0.030 & 5.000 \\ 
##    \hline
## \end{tabular}
## \end{table}
testrate2subtrees_output <- testrate2subtrees(tree, y) 
## [1] "t10" "t11" "t12"

## [1] "5" "6" "7" "1" "2" "3" "4"
## [1] "t13" "t14" "t15"

## [1] "5" "6" "7" "1" "2" "3" "4"
tworatedf<- treeARanova(testrate2subtrees_output)
tworatedf
##             numparam mlesoutphi mlesoutsigsq likelihoodsout teststat deg
## treeAR1            2      0.298        0.052         -0.227   16.111   2
## subtree1AR1        2      0.472        0.048         -0.006       NA  NA
## subtree2AR1        2      0.300        1.101          7.834       NA  NA
##                     pval
## treeAR1     3.172931e-04
## subtree1AR1         <NA>
## subtree2AR1         <NA>
xtable(tworatedf,digits=3)
## % latex table generated in R 4.3.2 by xtable 1.8-4 package
## % Tue Apr 30 08:43:12 2024
## \begin{table}[ht]
## \centering
## \begin{tabular}{rrrrrrrl}
##   \hline
##  & numparam & mlesoutphi & mlesoutsigsq & likelihoodsout & teststat & deg & pval \\ 
##   \hline
## treeAR1 & 2.000 & 0.298 & 0.052 & -0.227 & 16.111 & 2.000 & 3.172931e-04 \\ 
##   subtree1AR1 & 2.000 & 0.472 & 0.048 & -0.006 &  &  &  \\ 
##   subtree2AR1 & 2.000 & 0.300 & 1.101 & 7.834 &  &  &  \\ 
##    \hline
## \end{tabular}
## \end{table}