Learning SAS? Welcome to the exclusive online community for all SAS learners.

Proc Calis Optimization problem?

Reply
Occasional Contributor
Posts: 6

Proc Calis Optimization problem?

I am running this code and none of the optimization methods seem to work. any one has any idea why?the erro i get for example for levmar op method is:

ERROR: LEVMAR Optimization cannot be completed.

NOTE: LEVMAR needs more than 50 iterations or 500 function calls.

proc calis data=survey method=ml;

lineqs

/*Measurment Model*/

DP8=1.0F1+E1,

DP7=W1 F1+E2,

EF4=W2 F1+E3,

DP5=W3 F1+E4,

DP6=W4 F1+E5,

EF2=W5 F1+E6,

DP4=W6 F1+E7,

AW2=W7 F1+E8,

AW8=1.0 F2+E9,

AW9=W8 F2+E10,

AW10=W9 F2+E11,

RL2=1.0 F3+E12,

RL1=W10 F3+E13,

PR8=1.0 F4+E14,

PR6=W11 F4+E15,

PR7=W12 F4+E16,

UC2=1.0 F5+E17,

UC4=W13 F5+E18,

DP2=1.0 F6+E19,

DP3=W14 F6+E20,

PR5=1.0 F7+E21,

PR1=W15 F7+E22,

RL6=1.0 F8+E23,

RL7=W16 F8+E24,

RL5=W17 F8+E25,

RL4=W18 F8+E26,

PR10=1.0 F9+E27,

UC3=W19 F9+E28,

DP3_1=W20 F9+E29,

RL11=1.0 F10+E30,

RL10=W21 F10+E31,

EF5=1.0 F11+E32,

AW1=W22 F11+E33,

EF3=W23 F11+E34,

PR2=1.0 F12+E35,

PR9=W24 F12+E36,

/*Structural Model*/

f1= t1 f11 + t2 f6 + d1,

f2= t11 f6 + t12 f1 + d2,

f3= t4 f1 + d3,

f4= t5 f1 + d4,

f7= t6 f1 + d7,

f8= t3 f1 + d8,

f10=t9 f11 + d10,

f12=t7 f1+ t10 f9+ d12;

std

e1-e36=ee1-ee36,

f5-f6=ef5-ef6,

f9=ef9,

f11=ef11,

d1-d4=ed1-ed4,

d7-d8=ed7-ed8,

d10=ed10,

d12=ed12;

cov

f5 f9=theta1;

run;

Frequent Contributor
Posts: 136

Re: Proc Calis Optimization problem?

have you tried estimating the model by subsets? E,g. everything that predicts F1 as one subset, and everything that F1 predicts as another?

Partitioning big SEMs like that can help identify the source of the problem, and help sharpen you focus on solutions. In my experience it has often been an overlooked relationship not suggested by my literature search. Remember to look at the modification index for clues.

Cheers.

Damien

N/A
Posts: 1

Re: Proc Calis Optimization problem?

Posted in reply to Damien_Mather

Depending on your iteration history, different optimization methods can be tried out. If you are getting really close to a final solution, use MAXITER=100 or larger numbers might help. If the optimization method itself is not good enough for the problem, try other optimization method such as OMETHOD=NRR. If you have bad starting values, you might try using other estimation method in the first run, save it and input it in the next ML run. For example,

PROC CALIS METHOD=GLS OUTEST=outset;

....

run;

PROC CALIS METHOD=ML INEST=outset;

...

run;

There are certainly many other reasons for non-convergence. I am just giving you some suggestions on overcoming technical difficulties in optimization. Other issues like identification, wrong model, strange data are not covered here.

Ask a Question
Discussion stats
  • 2 replies
  • 1347 views
  • 0 likes
  • 3 in conversation