BookmarkSubscribeRSS Feed
PsycResearcher
Calcite | Level 5

Hi,

I have a question about conducting factor analysis on polychoric correlation. I have a correlation table in the following format in SAS:

ABCDE
1.1.2.5.4
.11.4.6.2
.2.41.2.4
.5.6.21.1
.4.2.4.11

 

A B C D E are the variables in the dataset (the actual dataset has 17 variables), with 1000 observations.

I conduct the factor analysis with the following syntax:

PROC FACTOR data =matrix1 (TYPE=CORR)

METHOD = ULS NFACTOR= 3 NOBS= 1000

ROTATE = v SCREE CORR;

RUN;

SAS complains the following:

(MESSAGE 1)

No _NAME_ variable in the TYPE=CORR data set WORK.MATRIX1. Be sure that the variables are specified in the same order as the corresponding observations appear in the dataset.

(MESSAGE 2)

The CORR matrix read from the input dataset WORK.MATRIX1 has a diagonal element equal to 0.999999 for the variable A.

The CORR matrix read from the input dataset WORK.MATRIX1 has a diagonal element equal to 0.999999 for the variable B.

The CORR matrix read from the input dataset WORK.MATRIX1 has a diagonal element equal to 0.999999 for the variable C.

The CORR matrix read from the input dataset WORK.MATRIX1 has a diagonal element equal to 0.999999 for the variable D.

The CORR matrix read from the input dataset WORK.MATRIX1 has a diagonal element equal to 0.999999 for the variable E.

So, SAS does not allow any 1's in a correlation matrix? When A correlates with A, for example, the correlation will naturally be 1. Why is SAS complaining?

Any help will be useful.

Thanks!

Chester

2 REPLIES 2
Ksharp
Super User

It looks like your correlation table matrix1 (TYPE=CORR) has not proper format about SAS CORR TABLE.

Should like:

_type_ _name_ p1 p2 p2 p4

CORR   P1       1.0

CORR   P2       .39 1.0

..............................

CORR  P4       ..................1.0

N          N        123 123 123 123

Ksharp

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 2022 views
  • 0 likes
  • 3 in conversation