### devtools::install_github("paytonjjones/networktree")
### https://paytonjjones.github.io/networktree/articles/returns.html
require(networktree)
## Loading required package: networktree
data(workaholic)
head(workaholic)
##   Gender Age Age_Groups                                        Marital_Status
## 1   Male  47          4 Married/common law partner/partner/boy- og girlfriend
## 2 Female  49          4               Single/divorsed/separated/widow/widower
## 3 Female  49          4 Married/common law partner/partner/boy- og girlfriend
## 4 Female  39          3 Married/common law partner/partner/boy- og girlfriend
## 5 Female  42          3 Married/common law partner/partner/boy- og girlfriend
## 6 Female  44          3 Married/common law partner/partner/boy- og girlfriend
##   Work_Full_Position Part_Time_Position Percentage_Full_Time_Equivalent Retired
## 1                Yes                 No                                      No
## 2                 No                Yes                           60         No
## 3                 No                Yes                           40         No
## 4                Yes                 No                                      No
## 5                Yes                 No                                      No
## 6                Yes                 No                                      No
##   Student Disability_Pension Rehabilitation_Money Unemployed Homemaker Other
## 1      No                 No                   No         No        No    No
## 2      No                 No                   No         No        No    No
## 3      No                 No                   No         No        No    No
## 4      No                 No                   No         No        No    No
## 5      No                 No                   No         No        No    No
## 6      No                 No                   No         No        No    No
##    Highest_Completed_Education Primary_school High_school Vocational_school
## 1 University / bachelor degree              0           0                 0
## 2 University / bachelor degree              0           0                 0
## 3 University / bachelor degree              0           0                 0
## 4 University / bachelor degree              0           0                 0
## 5   University / master degree              0           0                 0
## 6 University / bachelor degree              0           0                 0
##   Bachelor Master_PhD Income_last_year_before_tax Work_sector Private Public
## 1        1          0       1 million NOK or more     Private       1      0
## 2        1          0       300 000 - 399 999 NOK     Private       1      0
## 3        1          0       300 000 - 399 999 NOK     Private       1      0
## 4        1          0       500 000 - 599 999 NOK      Public       0      1
## 5        0          1       700 000 - 799 999 NOK     Private       1      0
## 6        1          0       600 000 - 699 999 NOK     Private       1      0
##   Franchise                Line_of_business Leader_role Top_leader
## 1         0 Administration/office/personnel  Top leader          1
## 2         0 Administration/office/personnel  Top leader          1
## 3         0 Administration/office/personnel  Top leader          1
## 4         0 Administration/office/personnel  Top leader          1
## 5         0           Bank/finace/ensurance  Top leader          1
## 6         0           Bank/finace/ensurance  Top leader          1
##   MidLevel_leader Other_leader No_leader HADS1 HADS2 HADS3 HADS4 HADS5 HADS6
## 1               0            0         0     0     2     0     1     0     0
## 2               0            0         0     0     1     0     0     0     0
## 3               0            0         0     0     0     0     0     0     0
## 4               0            0         0     0     0     0     0     0     0
## 5               0            0         0     0     1     0     0     0     1
## 6               0            0         0     0     0     0     0     0     0
##   HADS7 HADS8 HADS9 HADS10 HADS11 HADS12 HADS13 HADS14 OCIR1 OCIR2 OCIR3 OCIR4
## 1     0     0     0      0      0      0      0      0     0     0     0     0
## 2     0     0     0      0      0      1      0      0     0     0     0     0
## 3     0     0     0      0      0      0      0      0     0     1     0     0
## 4     0     0     0      0      0      0      0      0     0     0     0     0
## 5     0     0     0      0      0      0      0      0     0     1     0     0
## 6     0     0     0      0      0      0      0      0     0     0     0     0
##   OCIR5 OCIR6 OCIR7 OCIR8 OCIR9 OCIR10 OCIR11 OCIR12 OCIR13 OCIR14 OCIR15
## 1     0     0     0     0     0      0      1      0      0      0      0
## 2     0     0     0     0     0      0      0      0      0      0      0
## 3     0     0     0     0     0      0      0      0      0      0      0
## 4     0     0     0     0     1      0      0      0      0      0      0
## 5     0     0     0     0     0      0      0      0      0      2      0
## 6     0     0     0     0     0      0      0      0      0      0      0
##   OCIR16 OCIR17 OCIR18 ASRS1 ASRS2 ASRS3 ASRS4 ASRS5 ASRS6 ASRS7 ASRS8 ASRS9
## 1      0      0      0     3     2     1     2     2     2     1     1     2
## 2      0      0      0     2     2     1     1     1     1     1     3     3
## 3      0      0      0     2     1     1     1     2     1     2     2     1
## 4      0      0      0     2     2     1     3     3     1     3     2     2
## 5      0      0      0     3     1     3     3     1     1     3     3     2
## 6      0      0      0     2     1     2     2     1     2     2     2     2
##   ASRS10 ASRS11 ASRS12 ASRS13 ASRS14 ASRS15 ASRS16 ASRS17 ASRS18 BWAS1 BWAS2
## 1      1      2      1      2      2      2      2      1      2     2     3
## 2      2      2      1      1      1      1      2      1      1     1     2
## 3      1      2      1      1      1      4      4      3      3     1     1
## 4      2      2      1      1      1      1      2      3      3     2     1
## 5      4      1      1      1      1      2      3      2      2     3     4
## 6      2      2      2      1      1      2      2      2      2     2     2
##   BWAS3 BWAS4 BWAS5 BWAS6 BWAS7 SumHADSanxiety SumHADSdepression OCIR_WASHING
## 1     1     3     1     4     1              0                 3            4
## 2     1     1     2     1     1              0                 2            3
## 3     1     1     1     1     1              0                 0            3
## 4     1     1     1     1     1              0                 0            3
## 5     3     3     3     3     3              0                 2            3
## 6     1     2     1     2     1              0                 0            3
##   OCIR_OBSESSION OCIR_HOARDING OCIR_ORDERING OCIR_CHECKING OCIR_NEUTRALIZING
## 1              3             3             3             3                 3
## 2              3             3             3             3                 3
## 3              3             3             3             4                 3
## 4              3             3             4             3                 3
## 5              3             3             3             6                 3
## 6              3             3             3             3                 3
##   SUM_ADULT_ADHD_SELF_REPORT_SCALE SUM_BERGEN_WORK_ADDICTION_SCALE
## 1                               31                              15
## 2                               27                               9
## 3                               33                               7
## 4                               35                               8
## 5                               37                              22
## 6                               32                              11
##   Workaholism_diagnosis              OCD_DIAGNOSIS ADHD_DIAGNOSIS
## 1                     0 Ikke diagnose (skåre 1-21)              0
## 2                     0 Ikke diagnose (skåre 1-21)              0
## 3                     0 Ikke diagnose (skåre 1-21)              0
## 4                     0 Ikke diagnose (skåre 1-21)              0
## 5                     0 Ikke diagnose (skåre 1-21)              0
## 6                     0 Ikke diagnose (skåre 1-21)              0
##   ANXIETY_DIAGNOSIS DEPRESSION_DIAGNOSIS
## 1                 0                    0
## 2                 0                    0
## 3                 0                    0
## 4                 0                    0
## 5                 0                    0
## 6                 0                    0
OCD_vars <- paste("OCIR", 1:18, sep="")
OCD_names <- c("hoard1","check1","arrange1","count","contaminate",
               "thought1","hoard2","check2",
               "arrange2","numbers1","wash1","thought2",
               "hoard3", "check3", "arrange3", "numbers2",
               "wash2", "thought3")
cor_OCD <- cor(workaholic[,OCD_vars])
q1 <- qgraph::qgraph(cor_OCD, layout="spring", labels=OCD_names)
## Registered S3 methods overwritten by 'huge':
##   method    from   
##   plot.sim  BDgraph
##   print.sim BDgraph

q1
## From     To  Weight
## 1     ---     2   0.26 
## 1     ---     3   0.16 
## 2     ---     3   0.36 
## 1     ---     4   0.15 
## 2     ---     4   0.3 
## 3     ---     4   0.31 
## 1     ---     5   0.08 
## 2     ---     5   0.2 
## 3     ---     5   0.24 
## 4     ---     5   0.25 
## 1     ---     6   0.16 
## 2     ---     6   0.34 
## 3     ---     6   0.26 
## 4     ---     6   0.27 
## 5     ---     6   0.25 
## 1     ---     7   0.58 
## 2     ---     7   0.23 
## 3     ---     7   0.14 
## 4     ---     7   0.19 
## 5     ---     7   0.12 
## 6     ---     7   0.21 
## 1     ---     8   0.16 
## 2     ---     8   0.42 
## 3     ---     8   0.24 
## 4     ---     8   0.32 
## 5     ---     8   0.25 
## 6     ---     8   0.25 
## 7     ---     8   0.22 
## 1     ---     9   0.15 
## 2     ---     9   0.3 
## 3     ---     9   0.59 
## 4     ---     9   0.33 
## 5     ---     9   0.29 
## 6     ---     9   0.31 
## 7     ---     9   0.2 
## 8     ---     9   0.33 
## 1     ---     10      0.11 
## 2     ---     10      0.22 
## 3     ---     10      0.2 
## 4     ---     10      0.45 
## 5     ---     10      0.23 
## 6     ---     10      0.23 
## 7     ---     10      0.15 
## 8     ---     10      0.3 
## 9     ---     10      0.26 
## 1     ---     11      0.1 
## 2     ---     11      0.21 
## 3     ---     11      0.23 
## 4     ---     11      0.23 
## 5     ---     11      0.3 
## 6     ---     11      0.21 
## 7     ---     11      0.16 
## 8     ---     11      0.22 
## 9     ---     11      0.26 
## 10    ---     11      0.23 
## 1     ---     12      0.15 
## 2     ---     12      0.32 
## 3     ---     12      0.24 
## 4     ---     12      0.27 
## 5     ---     12      0.23 
## 6     ---     12      0.63 
## 7     ---     12      0.19 
## 8     ---     12      0.28 
## 9     ---     12      0.29 
## 10    ---     12      0.26 
## 11    ---     12      0.27 
## 1     ---     13      0.45 
## 2     ---     13      0.26 
## 3     ---     13      0.18 
## 4     ---     13      0.21 
## 5     ---     13      0.14 
## 6     ---     13      0.24 
## 7     ---     13      0.56 
## 8     ---     13      0.22 
## 9     ---     13      0.24 
## 10    ---     13      0.18 
## 11    ---     13      0.22 
## 12    ---     13      0.27 
## 1     ---     14      0.15 
## 2     ---     14      0.39 
## 3     ---     14      0.21 
## 4     ---     14      0.28 
## 5     ---     14      0.22 
## 6     ---     14      0.23 
## 7     ---     14      0.19 
## 8     ---     14      0.66 
## 9     ---     14      0.27 
## 10    ---     14      0.28 
## 11    ---     14      0.22 
## 12    ---     14      0.28 
## 13    ---     14      0.25 
## 1     ---     15      0.13 
## 2     ---     15      0.27 
## 3     ---     15      0.52 
## 4     ---     15      0.34 
## 5     ---     15      0.27 
## 6     ---     15      0.24 
## 7     ---     15      0.18 
## 8     ---     15      0.29 
## 9     ---     15      0.58 
## 10    ---     15      0.29 
## 11    ---     15      0.29 
## 12    ---     15      0.26 
## 13    ---     15      0.25 
## 14    ---     15      0.3 
## 1     ---     16      0.1 
## 2     ---     16      0.21 
## 3     ---     16      0.21 
## 4     ---     16      0.33 
## 5     ---     16      0.23 
## 6     ---     16      0.22 
## 7     ---     16      0.14 
## 8     ---     16      0.24 
## 9     ---     16      0.26 
## 10    ---     16      0.44 
## 11    ---     16      0.21 
## 12    ---     16      0.26 
## 13    ---     16      0.19 
## 14    ---     16      0.24 
## 15    ---     16      0.31 
## 1     ---     17      0.1 
## 2     ---     17      0.22 
## 3     ---     17      0.22 
## 4     ---     17      0.24 
## 5     ---     17      0.42 
## 6     ---     17      0.21 
## 7     ---     17      0.13 
## 8     ---     17      0.3 
## 9     ---     17      0.26 
## 10    ---     17      0.27 
## 11    ---     17      0.4 
## 12    ---     17      0.26 
## 13    ---     17      0.18 
## 14    ---     17      0.31 
## 15    ---     17      0.32 
## 16    ---     17      0.3 
## 1     ---     18      0.16 
## 2     ---     18      0.31 
## 3     ---     18      0.24 
## 4     ---     18      0.28 
## 5     ---     18      0.24 
## 6     ---     18      0.57 
## 7     ---     18      0.19 
## 8     ---     18      0.28 
## 9     ---     18      0.3 
## 10    ---     18      0.29 
## 11    ---     18      0.24 
## 12    ---     18      0.71 
## 13    ---     18      0.27 
## 14    ---     18      0.29 
## 15    ---     18      0.29 
## 16    ---     18      0.32 
## 17    ---     18      0.31
cor_gender <- networktree(nodevars=workaholic[,OCD_vars],
                          splitvars=workaholic[,"Gender",drop=FALSE])
plot(cor_gender)




data("FXRatesCHF", package = "fxregime")
currencies <- c("USD", "JPY", "DUR", "CNY", "INR", "GBP", "ZAR")
returns <- fxregime::fxreturns(currencies, data = FXRatesCHF)
returns <- na.omit(returns)


returns$year    <- as.POSIXlt(zoo::index(returns))$year
returns$is_leap <- (returns$year %% 4) == 0
returns$yday    <- as.POSIXlt(zoo::index(returns))$yday
returns$time    <- 1900 + returns$year + returns$yday / ifelse(returns$is_leap, 366, 365)
returns$foo     <- rnorm(nrow(returns))

f  <- paste(paste(currencies, collapse = " + "), "~ time + foo")
f  <- as.formula(f)
f
## USD + JPY + DUR + CNY + INR + GBP + ZAR ~ time + foo
tr <- networktree(f, data = returns, model = "correlation", maxdepth = 3)
print(tr, digits = 2)
## Network tree object
## 
## Model formula:
## USD + JPY + DUR + CNY + INR + GBP + ZAR ~ time + foo
## 
## Fitted party:
## [1] root
## |   [2] time <= 1994.26575
## |   |   [3] time <= 1989.93425
## |   |   [4] time > 1989.93425
## |   [5] time > 1994.26575
## |   |   [6] time <= 2005.53425
## |   |   [7] time > 2005.53425
## 
## Number of inner nodes:    3
## Number of terminal nodes: 4
## Number of parameters per node: 21
## Objective function: 14073.5
plot(tr, transform = "pcor", posCol = "#008585", 
     negCol = "#C7522B", maximum = 1)