44
55semoptimizer = SemOptimizer (engine = opt_engine)
66
7- model_ml = Sem (SemML ( SemObservedData (dat), RAM ( spec)) )
7+ model_ml = Sem (specification = spec, data = dat )
88@test SEM. params (model_ml) == SEM. params (spec)
9- @test SEM. nloss_terms (model_ml) == 1
10- @test SEM. sem_terms (model_ml) isa Tuple{SEM. LossTerm{<: SemML , Nothing, Nothing}}
119
1210model_ml_cov = Sem (
13- SemML (
14- SemObservedCovariance (
15- cov (Matrix (dat)),
16- obs_colnames = Symbol .(names (dat)),
17- n_obs = 75 ,
18- ),
19- RAM (spec),
20- ),
11+ specification = spec,
12+ observed = SemObservedCovariance,
13+ obs_cov = cov (Matrix (dat)),
14+ observed_vars = Symbol .(names (dat)),
15+ nsamples = 75 ,
2116)
2217
23- model_ls_sym = Sem (SemWLS (SemObservedData (dat), RAMSymbolic (spec, vech = true )))
18+ model_ls_sym =
19+ Sem (specification = spec, data = dat, implied = RAMSymbolic, vech = true , loss = SemWLS)
2420
25- model_ml_sym = Sem (SemML ( SemObservedData ( dat), RAMSymbolic (spec)) )
21+ model_ml_sym = Sem (specification = spec, data = dat, implied = RAMSymbolic)
2622
27- model_ml_ridge = Sem (SemML (SemObservedData (dat), RAM (spec)), SemRidge (spec, 16 : 20 ) => 0.001 )
28-
29- @test SEM. nloss_terms (model_ml_ridge) == 2
23+ model_ml_ridge = Sem (
24+ specification = spec,
25+ data = dat,
26+ loss = (SemML, SemRidge),
27+ α_ridge = 0.001 ,
28+ which_ridge = 16 : 20 ,
29+ )
3030
31- model_ml_const = Sem (SemML (SemObservedData (dat), RAM (spec)), SemConstant (3.465 ))
31+ model_ml_const = Sem (
32+ specification = spec,
33+ data = dat,
34+ loss = (SemML, SemConstant),
35+ constant_loss = 3.465 ,
36+ )
3237
33- model_ml_weighted = Sem (SemML (SemObservedData (dat), RAM (partable)) => size (dat, 1 ))
38+ model_ml_weighted =
39+ Sem (SemML (SemObservedData (data = dat), RAMSymbolic (spec)) => nsamples (model_ml))
3440
3541# ###########################################################################################
3642# ## test gradients
8490 solution_ml = sem_fit (semoptimizer, model_ml)
8591 solution_ml_weighted = sem_fit (semoptimizer, model_ml_weighted)
8692 @test solution (solution_ml) ≈ solution (solution_ml_weighted) rtol = 1e-3
87- @test n_obs (model_ml) * StructuralEquationModels. minimum (solution_ml) ≈
93+ @test nsamples (model_ml) * StructuralEquationModels. minimum (solution_ml) ≈
8894 StructuralEquationModels. minimum (solution_ml_weighted) rtol = 1e-6
8995end
9096
@@ -149,13 +155,13 @@ end
149155 model_ml,
150156 data = rand (model_ml, params, 1_000_000 ),
151157 specification = spec,
152- obs_colnames = colnames,
158+ observed_vars = colnames,
153159 )
154160 model_ml_sym_new = replace_observed (
155161 model_ml_sym,
156162 data = rand (model_ml_sym, params, 1_000_000 ),
157163 specification = spec,
158- obs_colnames = colnames,
164+ observed_vars = colnames,
159165 )
160166 # fit models
161167 sol_ml = solution (sem_fit (semoptimizer, model_ml_new))
@@ -172,10 +178,21 @@ end
172178if opt_engine == :Optim
173179 using Optim, LineSearches
174180
175- model_ls =
176- Sem (SemWLS (SemObservedData (dat), RAMSymbolic (spec, vech = true , hessian = true )))
181+ model_ls = Sem (
182+ data = dat,
183+ specification = spec,
184+ observed = SemObservedData,
185+ implied = RAMSymbolic (spec, vech = true , hessian = true ),
186+ loss = SemWLS,
187+ )
177188
178- model_ml = Sem (SemML (SemObservedData (dat), RAMSymbolic (spec, hessian = true )))
189+ model_ml = Sem (
190+ data = dat,
191+ specification = spec,
192+ observed = SemObservedData,
193+ implied = RAMSymbolic (spec, hessian = true ),
194+ loss = SemML,
195+ )
179196
180197 @testset " ml_hessians" begin
181198 test_hessian (model_ml, start_test; atol = 1e-4 )
@@ -219,23 +236,29 @@ end
219236# ###########################################################################################
220237
221238# models
222- model_ls = Sem (SemWLS (SemObservedData (dat), RAMSymbolic (spec_mean, vech = true )))
239+ model_ls = Sem (
240+ specification = spec_mean,
241+ data = dat,
242+ implied = RAMSymbolic,
243+ vech = true ,
244+ loss = SemWLS,
245+ meanstructure = true ,
246+ )
223247
224- model_ml = Sem (SemML ( SemObservedData ( dat), RAM (spec_mean)) )
248+ model_ml = Sem (specification = spec_mean, data = dat, meanstructure = true )
225249
226250model_ml_cov = Sem (
227- SemML (
228- SemObservedCovariance (
229- cov (Matrix (dat)),
230- vec (mean (Matrix (dat), dims = 1 )),
231- obs_colnames = names (dat),
232- n_obs = 75 ,
233- ),
234- RAM (spec_mean),
235- ),
251+ specification = spec_mean,
252+ observed = SemObservedCovariance,
253+ obs_cov = cov (Matrix (dat)),
254+ obs_mean = vcat (mean (Matrix (dat), dims = 1 )... ),
255+ observed_vars = Symbol .(names (dat)),
256+ meanstructure = true ,
257+ nsamples = 75 ,
236258)
237259
238- model_ml_sym = Sem (SemML (SemObservedData (dat), RAMSymbolic (spec_mean)))
260+ model_ml_sym =
261+ Sem (specification = spec_mean, data = dat, implied = RAMSymbolic, meanstructure = true )
239262
240263# ###########################################################################################
241264# ## test gradients
@@ -329,14 +352,14 @@ end
329352 model_ml,
330353 data = rand (model_ml, params, 1_000_000 ),
331354 specification = spec,
332- obs_colnames = colnames,
355+ observed_vars = colnames,
333356 meanstructure = true ,
334357 )
335358 model_ml_sym_new = replace_observed (
336359 model_ml_sym,
337360 data = rand (model_ml_sym, params, 1_000_000 ),
338361 specification = spec,
339- obs_colnames = colnames,
362+ observed_vars = colnames,
340363 meanstructure = true ,
341364 )
342365 # fit models
@@ -352,11 +375,22 @@ end
352375# ###########################################################################################
353376
354377# models
355- obs_missing = SemObservedMissing (dat_missing, obs_colnames = SEM. observed_vars (spec_mean))
356-
357- model_ml = Sem (SemFIML (obs_missing, RAM (spec_mean)))
378+ model_ml = Sem (
379+ specification = spec_mean,
380+ data = dat_missing,
381+ observed = SemObservedMissing,
382+ loss = SemFIML,
383+ meanstructure = true ,
384+ )
358385
359- model_ml_sym = Sem (SemFIML (obs_missing, RAMSymbolic (spec_mean)))
386+ model_ml_sym = Sem (
387+ specification = spec_mean,
388+ data = dat_missing,
389+ observed = SemObservedMissing,
390+ implied = RAMSymbolic,
391+ loss = SemFIML,
392+ meanstructure = true ,
393+ )
360394
361395# ###########################################################################################
362396# ## test gradients
0 commit comments