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;