0
$\begingroup$

I've completed PCA with my dataset (16 variables) and extracted 3 factors. I then created an Excel spreadsheet where I can enter in user provided data and calculate the scores for each of the three factors based on the regression coefficients from the Component Score Coefficient Matrix created during the PCA.

My problem is that whenever I input some sample data, the resulting score is only matches the expected output for 2 of 3 factors.

I've double checked three times that the problem is not with Excel or the entry of the coefficients. Back in SPSS, I've calculated a new variable based on the coefficients for the incorrect formula, and they still don't match the output calculated from the PCA.

I've also tried to find the coefficients by performing regression on the calculated factor score from the PCA, and the initial input set of variables, but all that does is provide an unstandardized version of the coefficients, which has the same outcome (2 of 3 factors are accurate)

Is there another step required between the PCA and finding the coeffcients to calculate my factor scores?

thanks

$\endgroup$
  • 3
    $\begingroup$ Please note that the coefficients in the output table "score coefficients" are given standardized (betas) while the scores as the program computes are computed by the unstandardized (b) coefficients (they are scrupulously explained here). I recommed you to try to replicate this my analyzed example, to check if everything is all right with your computations. $\endgroup$ – ttnphns Apr 26 '15 at 21:39
0
$\begingroup$

Even if both tools implement PCA correctly, the results could be different if tools automatically standardize the data by default (I would always recommend standardization prior to PCA though).

Very slight differences could also come from:

  • obtaining the PCs via eigendecomposition on the covariance marix vs. singular vector decomposition
  • If both implementations use the classic but more comput. expensive covariance matrix approach, the the co-variances & variances may have been calculated using Bessel's correction term (1/[n-1] instead of 1/n for scaling).

I have a step by step tutorial for coding up an PCA in Python so that you could check your results in each step if it helps.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.