TITLE: ipsative_example
DATA: FILE IS 'data.csv';
VARIABLE: ! It is assumed that the input file contains only item responses
! Any additional variables should be added below
Names ARE
i1i2
i1i3
i2i3
i4i5
i4i6
i5i6
i7i8
i7i9
i8i9;
USEVARIABLES ARE i1i2-i8i9;
CATEGORICAL ARE ALL;
ANALYSIS:
ESTIMATOR = ulsmv;
PARAMETERIZATION = theta;
MODEL:
Trait1 BY
i1i2*1 (L1)
i1i3*1 (L1)
i4i5*1 (L4)
i4i6*1 (L4)
i7i8*-1 (L7)
i7i9*-1 (L7);
Trait2 BY
i1i2*-1 (L2_n)
i2i3*1 (L2)
i4i5*1 (L5_n)
i5i6*-1 (L5)
i7i8*-1 (L8_n)
i8i9*1 (L8);
Trait3 BY
i1i3*1 (L3_n)
i2i3*1 (L3_n)
i4i6*-1 (L6_n)
i5i6*-1 (L6_n)
i7i9*-1 (L9_n)
i8i9*-1 (L9_n);
! variances for all traits are set to 1
Trait1-Trait3@1;
! starting values for correlations between traits
Trait1 WITH Trait2*0.3 Trait3*-0.3;
Trait2 WITH Trait3*0.5;
! declare uniquenesses and set their starting values
i1i2*2 (e1e2);
i1i3*2 (e1e3);
i2i3*2 (e2e3);
i4i5*2 (e4e5);
i4i6*2 (e4e6);
i5i6*2 (e5e6);
i7i8*2 (e7e8);
i7i9*2 (e7e9);
i8i9*2 (e8e9);
! declare correlated uniqunesses and set their starting values
i1i2 WITH i1i3*1 (e1);
i1i2 WITH i2i3*-1 (e2_n);
i1i3 WITH i2i3*1 (e3);
i4i5 WITH i4i6*1 (e4);
i4i5 WITH i5i6*-1 (e5_n);
i4i6 WITH i5i6*1 (e6);
i7i8 WITH i7i9*1 (e7);
i7i8 WITH i8i9*-1 (e8_n);
i7i9 WITH i8i9*1 (e9);
MODEL CONSTRAINT:
!factor loadings relating to the same item are equal in absolute value
L2_n = -L2;
L5_n = -L5;
L8_n = -L8;
! pair's uniqueness is equal to sum of 2 utility uniqunesses
e1e2 = e1 - e2_n;
e1e3 = e1 + e3;
e2e3 = -e2_n + e3;
e4e5 = e4 - e5_n;
e4e6 = e4 + e6;
e5e6 = -e5_n + e6;
e7e8 = e7 - e8_n;
e7e9 = e7 + e9;
e8e9 = -e8_n + e9;
! fix one uniqueness per block for identification
e1=1;
e4=1;
e7=1;
SAVEDATA: ! trait scores for individuals are estimated and saved in a file
FILE IS 'ipsative_example_fscore';
SAVE = FSCORES;