SHAZAM Community
Ask Your Question

How can i solve too high multicollinearity in my shazam variables?

asked 2013-11-18 07:54:22 +0000

anonymous user


updated 2013-11-18 13:15:25 +0000


When running my dataset in shazam i get high multicollinearity:

LBOLIGER   1.0000

SYSS       0.91942  1.0000

KPI        0.97884  0.92965  1.0000

KONHU      0.97322  0.94238  0.97966  1.0000

BNP        0.97794  0.94307  0.97368  0.98182  1.0000

STYRS     -0.68555 -0.53490 -0.71437 -0.69721 -0.65859  1.0000

UTLR      -0.64414 -0.43291 -0.63003 -0.62635 -0.59298  0.95802   1.0000
          LBOLIGER  SYSS     KPI      KONHU    BNP      STYRS     UTLR

I was told to transform my variables either using ratio transformation or first difference form. How do i do that in Shazam? Or do i first transform my data before doing the same analysis in Shazam?

Thank you!

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2013-11-18 15:25:11 +0000

updated 2013-11-18 17:54:31 +0000

Multicollinearity is usually considered a data deficiency and therefore transformations are generally performed prior to estimation of a model. First differencing in SHAZAM is easy. See the GENR command and the LAG function. To create the first difference of a variable called 'price' do:

genr lagprice = lag(price)

to create a variable called lagprice.

Then subtract this from price as follows:

genr dprice = price - lagprice

to create the differenced price variable dprice. You may print all 3 variables easily using:

print price lagprice dprice

Note that SHAZAM will automatically detect the sample size when loading a dataset but you can set the sample at the start where the syntax is sample beg end e.g.

sample 1 200

The first difference form is usually expressed as follows:

$$Y_t - Y_{t-1} = \beta_2 (X_{2,t}-X_{2,t-1}) + \beta_3 (X_{3,t}-X_{3,t-1}) + ... + \beta_K (X_{K,t}-X_{K,t-1}) + \varepsilon_t $$

These days the definition of multicollinearity being the exact linear relationship between explanatory variables is broadened to include cases where X variables are "intercorrelated" - being a less exact relationship. Algebraically this says that there is a relationship between the variables, typically expressed as:

$$ \alpha_1X_1+\alpha_2X_2+...+\alpha_kX_k=0 $$

In this case, one approach is to run a regression with a transformation of the data. e.g. if it is believed that $\beta_3=0.4\beta_2$ then create $ X_{z,t}=X_{2,t}+0.4X_{3,t} $ , regress $ Y $ on $ X_z $ then calculate $ \beta_2,\beta_3 $ from the postulated relation using the estimate of $ \beta_z $ from the regression.

The Ratio Transformation Method can also be used to reduce collinearity in the original variables by dividing through one of the variables. i.e.

$$ Y_t/X_{3,t} = \beta_1(1/X_{3,t}) + \beta_2(X_{2,t}/X_{3,t}) + \beta_3 + \varepsilon_t/X_{3,t} $$

Using the same GENR command approach above it is possible to create each of these transformations before using the OLS command to estimate the regression.

The way to generate a constant in SHAZAM for the active sample length is

genr myconst = dum(1)

and then for a variable called $ X_3 $ transform myconst as follows

genr myconst = myconst / X3

then include it in the regression but note that SHAZAM includes a constant by default so use the NOCONSTANT option when specifiying the OLS command whenever you include your own.

Naturally all transformations come with a cost including loss of one observation through differencing (there is no lag of the first observation) and the effect on the residual - does transforming it make it serially correlated (or break other assumptions of the CLR model).

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2013-11-18 07:54:22 +0000

Seen: 1,487 times

Last updated: Nov 18 '13