# Relative weights in regression analysis in SPSS: Matrix-approach vs. factor and regression

I am trying to perfome a relative weight analysis as described by Johnson (2000). I have 13 predictors to a more general indicator.

Initially, I started by: running a principal component analysis with 13 components(factors). I saved the scores in my data, to later put them in a linear OLS regression with the dependent variable. According to my understanding, the relative importance of each initial independent variable should be calculated by taking the sum of the squared beta's (standardized coefficients) from this model multiplied with the squared component loadings.

I wrote my SPSS syntax as follows. My original dataset is called 'sub'.

* Calculate factorloadings, save them in the data 'bas' and save the rotated matrix in dataset 'factor'.
datas decl factor.
oms /sel tab /exc lab = 'Notes' /des for = sav outf = factor /if com = ['Factor Analysis'] sub = ['Rotated Factor Matrix'].
fac /var=v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 /crit fac(13) /save reg(all,F).
omse.

* Calculate the beta coefficients of the factors on the dependent variable, and save them to the dataset 'reg'.
datas act sub.
datas decl reg.
oms /sel tab /exc lab = 'Notes' /des for = sav outf = reg /if com = ['regression'] sub = ['Coefficients'].
reg var=depvar f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13
/dep=depvar
/method=enter f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13.
omse.

* Flip the standardized coefficients to match them to the loadings in 'factor'.
datas act reg.
del var Command_ Subtype_ Label_ Var1 B Std.Error t Sig.
sel if not sys(beta).
if beta lt 0 beta eq 0.
exe.
compu x=1.
casestovars /id x /index var2.

* Clean dataset 'factor', and match the beta coefficients.
datas act factor.
del var Command_ Subtype_ Label_.
compu x=1.
match fil fil=* /tab=reg /by x.
exe.

* Relative weights calculation.
compu rw eq @1**2 * F1**2 + @2**2 * F2**2 + @3**2 * F3**2 + @4**2 * F4**2 + @5**2 * F5**2 + @6**2 * F6**2 + @7**2 * F7**2 + @8**2 * F8**2 +
@9**2 * F9**2 + @10**2 * F10**2 + @11**2 * F11**2 + @12**2 * F12**2 + @13**2 * F13**2.
exe.


This method of calculating the relative weights makes sense, and the results seem ok. Only, the relative weights don't add up to the initial R square, which they should. I get slight differences.

I found the syntax by Johnson. In this syntax, all calculations are performed on the correlation matrix. Now, I know that I can just use the latter syntax, but I still want to know why the other method results in slightly different results. It's not a matter of rounding the figures. I have checked that. Does it have anything to do with the way of calculating the principal component loadings? I hope someone can help me.