-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathtest_model_full.py
145 lines (109 loc) · 10.9 KB
/
test_model_full.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
from sem_model_full import SEMModelFull, SEMmx
from sem_model_full import SEMDataFull
from sem_opt_bfull import SEMOptBayesFull
from sem_model import SEMModel, SEMData
from sem_opt_classic import SEMOptClassic
import numpy as np
import scipy.stats as st
# TODO ALL CATEGORIAL DATA SHOULD START FROM 0. then 1 etc
path_model = 'gpsem/'
file_model = 'gpsem_mod.txt'
file_model = 'gpsem_mod_01.txt'
file_data = 'gpsem_test01.txt'
file_data = 'd_comb_phensnp.txt'
file_model = 'gpsem_mod_gp01.txt'
file_data = 'data_mod_gp02.txt'
file_model = 'gpsem_mod_gp02.txt'
file_data = 'data_mod_gp02.txt'
file_model = 'gpsem_mod_gp03.txt'
# mod_classic = SEMModel(path_model + file_model, )
# data_classic = SEMData(mod_classic, path_model + file_data)
# mod_classic.load_initial_dataset(data_classic)
# opt_classic = SEMOptClassic(mod_classic, data_classic, 'MLW')
# opt_classic.optimize()
#
# list(zip(opt_classic.param_pos, opt_classic.params))
mod = SEMModelFull(path_model + file_model)
data = SEMDataFull(mod, path_model + file_data)
mod.load_dataset(data)
list(zip(mod.param_val, mod.param_pos))
# MOD gpsem_02
param_prior = [0.390000000000000,-10.3500000000000,-0.240000000000000,0.0390000000000000,0.230000000000000,0.180000000000000,0.0700000000000000,-0.439000000000000,0.372000000000000,-0.119000000000000,0.255000000000000,0.203000000000000,-0.113000000000000,0.410000000000000,0.0400000000000000,-0.181000000000000,-0.248000000000000,0.155000000000000,0.250000000000000,-0.436000000000000,0.268000000000000,-0.117000000000000,-0.189000000000000,0.331000000000000,0.194000000000000,-0.288000000000000,-0.720000000000000,-0.0920000000000000,0.229000000000000,0.200000000000000,0.194000000000000,-0.185000000000000,-0.364000000000000,0.584000000000000,-0.247000000000000,0.157000000000000,-0.124000000000000,0.126000000000000,0.193000000000000,0.545000000000000,0.304000000000000,-0.277000000000000,0.387000000000000,0.212000000000000,0.137000000000000,0.309000000000000,0.188000000000000,-0.232000000000000,1.08000000000000,-0.554000000000000,-0.201000000000000,0.328000000000000,0.246000000000000,-0.175000000000000,-0.135000000000000,0.320000000000000,0.427000000000000,-0.222000000000000,-0.296000000000000,-0.380000000000000,-0.0130000000000000,-0.181000000000000,-0.640000000000000,-0.0300000000000000,-0.0370000000000000,1,0.960000000000000,-0.730000000000000,0.270000000000000,0.263000000000000,-0.840000000000000,-0.870000000000000,0.900000000000000,-0.870000000000000,1,0.950000000000000,0.850000000000000,0.0880000000000000,1,-0.0300000000000000,-2.37000000000000,0.610000000000000,-21.3600000000000,-3.67000000000000,0.530000000000000,1,0.0100000000000000,-0.0500000000000000,-0.0300000000000000,-7.46000000000000,1,0.130000000000000,0.0900000000000000,0.0300000000000000,1,2.13000000000000,2.14000000000000,-4.16000000000000,0.100000000000000,0.790000000000000,0.00480000000000000,0.110000000000000,1.02000000000000,0.00700000000000000,0.960000000000000,0.890000000000000,0.960000000000000,0.980000000000000,1,0.260000000000000,0.177000000000000,0.800000000000000,0.990000000000000,1,0.920000000000000,0.600000000000000,0.610000000000000,0.990000000000000,0.460000000000000,0.950000000000000,0.800000000000000,0.430000000000000,0.280000000000000,0.200000000000000,0.430000000000000,0.390000000000000,0.990000000000000,0.420000000000000,0.250000000000000,0.990000000000000,1,1,0.310000000000000,0.940000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.990000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.0600000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000]
for i in range(174, 192):
mod.add_param_fixed(i, 0.25)
# MOD gpsem_03 - with ordinal
param_prior = [0.390000000000000,-10.3500000000000,-0.240000000000000,0.0390000000000000,0.230000000000000,0.180000000000000,0.0700000000000000,-0.119000000000000,0.255000000000000,0.203000000000000,0.0400000000000000,-0.436000000000000,0.268000000000000,-0.117000000000000,-0.189000000000000,0.331000000000000,-0.720000000000000,-0.0920000000000000,0.194000000000000,-0.247000000000000,0.157000000000000,-0.124000000000000,0.126000000000000,0.193000000000000,0.545000000000000,0.304000000000000,0.188000000000000,-0.232000000000000,1.08000000000000,-0.439000000000000,0.372000000000000,-0.113000000000000,0.410000000000000,-0.181000000000000,-0.248000000000000,0.155000000000000,0.250000000000000,0.194000000000000,-0.288000000000000,0.229000000000000,0.200000000000000,-0.185000000000000,-0.364000000000000,0.584000000000000,-0.277000000000000,0.387000000000000,0.212000000000000,0.137000000000000,0.309000000000000,-0.554000000000000,-0.201000000000000,0.328000000000000,0.246000000000000,-0.175000000000000,-0.135000000000000,0.320000000000000,0.427000000000000,-0.222000000000000,-0.296000000000000,-0.380000000000000,-0.0130000000000000,-0.181000000000000,-0.640000000000000,-0.0300000000000000,-0.0370000000000000,1,0.960000000000000,-0.730000000000000,0.270000000000000,0.263000000000000,-0.840000000000000,-0.870000000000000,0.900000000000000,-0.870000000000000,1,0.950000000000000,0.850000000000000,0.0880000000000000,1,-0.0300000000000000,-2.37000000000000,0.610000000000000,-21.3600000000000,-3.67000000000000,0.530000000000000,1,0.0100000000000000,-0.0500000000000000,-0.0300000000000000,-7.46000000000000,1,0.130000000000000,0.0900000000000000,0.0300000000000000,1,2.13000000000000,2.14000000000000,-4.16000000000000,0.100000000000000,0.790000000000000,0.00480000000000000,0.110000000000000,1.02000000000000,0.00700000000000000,0.890000000000000,0.960000000000000,1,0.800000000000000,0.990000000000000,1,0.920000000000000,0.610000000000000,0.460000000000000,0.430000000000000,0.280000000000000,0.200000000000000,0.430000000000000,0.420000000000000,0.250000000000000,0.960000000000000,0.980000000000000,0.260000000000000,0.177000000000000,0.600000000000000,0.990000000000000,0.950000000000000,0.800000000000000,0.390000000000000,0.990000000000000,0.990000000000000,1,1,0.310000000000000,0.940000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.990000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.0600000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000,0.250000000000000]
for i in range(119, 192):
mod.add_param_fixed(i, param_prior[i])
# # MOD - gpsem_01
# param_prior = [-10.35, -0.24, 0.039, 0.23, 0.39, 0.18, 0.07, 1., 0.96,
# -0.73, 0.99, -0.72, -0.84, -0.87, 0.90, -0.87, 1., -0.03,
# -2.37, 0.61, -21.36, -3.67, 0.53, 1., 0.01, -0.05, -0.03,
# -7.46, 1., 0.13, 0.09, 0.03, 1., 2.13, 2.14, -4.16, 1.,
# 0.95, 0.85, 1.08, 0.1, 0.0048, 0.11, 1.02, 0.007, 0.96,
# 0.89, 0.96, 0.98, 1., 0.26, 0.27, 0.8, 0.99, 1., 0.92,
# 0.6, 0.61, 0.99, 0.46, 0.95, 0.80, 0.43, 0.28, 0.20, 0.43,
# 0.39, 0.99, 0.42, 0.06, 0.99, 1., 1., 0.31, 0.94, 0.79]
#
# param_prior = [-9, -0.3, 0.67, 1, 0.2, 0.10, 0.06, 1., 0.98, -0.78, 1.02,
# -0.76, -0.91, -0.90, 0.93, -0.95, 1., -0.21, -2.82, 1.68, -15.,
# -4.24, -0.1, 1., -0.22, -0.18, -0.1, -1.28, 1., 0.49, 0.71,
# 0.16, 1., 2.13, 2.06, -4.37, 1., 0.96, 0.86, 1.08, 0.1,
# 0.0064, 0.57, 0.09, 0.005, 0.92, 0.36, 0.91, 0.99, 1.,
# 0.29, 0.29, 0.8, 0.99, 1., 0.84, 0.6, 0.57, 1., 0.45,
# 0.95, 0.78, 0.40, 0.27, 0.2, 0.4, 0.41, 0.99, 0.4,
# 0.07, 0.90, 1., 1., 0.33, 0.95, 0.73]
# # mod_01
# param_prior = [1.4, 2.0, 4.5, 1.2, 3.4, 0.37, 1.4, 0.65, 1.8, 3.1,
# 1., 3.2, 1., 0.1, 0.3, 0.1, 1., 0.3, 0.3, 0.3, 0.6,
# 5.7, 0.8, 1.1, 0.9, 1.9, 0.08, 0.24, 1.5,
# 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25]
#
# # mod.add_param_fixed(26, 0.07)
# # mod.add_param_fixed(27, 0.24)
#
# mod.add_param_fixed(29, 0.25)
# mod.add_param_fixed(30, 0.25)
# mod.add_param_fixed(31, 0.25)
# mod.add_param_fixed(32, 0.25)
# mod.add_param_fixed(33, 0.25)
# mod.add_param_fixed(34, 0.25)
# mod.add_param_fixed(35, 0.25)
# # mod_03
# param_prior = [1.3, 2.6, 3.0, 1., 0.1, 0.3, 15, 0.72, 1.69, 0.24,
# 0.25, 0.25, 0.25]
# mod.add_param_fixed(9, 0.2)
# mod.add_param_fixed(10, 0.2)
# mod.add_param_fixed(11, 0.2)
# mod.add_param_fixed(12, 0.2)
# # mod_04
# param_prior = [1.3, 2.6, 3.0, 1., 0.3, 15, 3.5, 0.74,
# 0.25, 0.25, 0.25]
# mod.add_param_fixed(8, 0.25)
# mod.add_param_fixed(9, 0.25)
# mod.add_param_fixed(10, 0.25)
# # mod_05
# param_prior = [3.3, 1, 18.4, 1, 0.25]
# # mod_06
# param_prior = [1.4, 3.7, 0.25]
# mod.add_param_fixed(0, 3.4)
# mod.add_param_fixed(1, 2.6)
# mod.add_param_fixed(2, 3.0)
# mod.add_param_fixed(3, 1.)
# mod.add_param_fixed(4, 0.36)
# mod.add_param_fixed(5, 0.1)
# mod.add_param_fixed(10, 0.25)
# mod.add_param_fixed(11, 0.25)
# mod.add_param_fixed(12, 0.25)
opt = SEMOptBayesFull(mod, data, param_prior)
# self = opt
# param_lavaan = [1.402, 2.017, 4.502, 1.278, 3.403, 0.370, 1.394, 0.659,
# 1.766, 3.085, 1., 3.221, 1., 0.113, 0.382, 0.115, 1., 0.313,
# 0.270, 0.358, 6.011, 5.715, 0.887, 1.137, 0.946, 1.954,
# 0.079, 0.240, 1.551, 0.250, 0.250, 0.250, 0.250, 0.250,
# 0.250, 0.250]
# opt.param_val = param_lavaan
mcmc = opt.optimise()
x = np.round(np.median(opt.mcmc, axis=0) * 10000) / 10000
list(zip(opt.param_prior, x,mod.param_variables))
np.savetxt(path_model + 'mcmc3_60.txt', opt.mcmc)