Hi Rick, Thank you. Yeah, I have explored how Python calculates Xweights as well, and it seems that it also uses the Euclidean norm. To clarify, I have created a simple raw dataset and SAS code and shared the Xweights (the first component of the SVD of X'Y or X'YY'X) with you below. You will see that the norm of Xweights in Python is 1 (I'm not sure, but I think this proves that it uses the Euclidean norm?), while the norm of Xweights in SAS is always around 1.04XXX. (Again, I have applied mean centering and scaling to the data, so that is not an issue of the difference, it's also not about the algorithm difference as with number of factor = 1, NIPALS algorithm will be the same as SIMPLS, which I have double checked too, it's not a flip of sign as well) DATA regress;
INPUT Y X1 X2 X3 X4 X5;
DATALINES;
7 0 23 3 4 1
8 2 7 2 3 2
2 0 8 8 3 3
6 0 9 2 5 4
5 0 1 5 2 5
;
RUN;
PROC PLS DATA=regress METHOD=SIMPLS nfac = 1 details varss ;
MODEL Y = X1 X2 X3 X4 X5;
RUN;
ods output
XWeights = work.pls_xweights
run; Xweights X1 X2 X3 X4 X5 SAS 0.487515 0.259817 -0.783895 0.223089 -0.344725 Python 0.467325566 0.249056761 -0.751431332 0.213850196 -0.330449077
... View more