2
$\begingroup$

As per the question, I want to run a regression of variables where those variables are nested within each other and therefore highly correlated. Here is my specific example for context:

I study the effects of Extraversion on various outcomes. Theoretically, Extraversion (a personality trait) is itself made up of two lower-level 'personality aspects', being Assertiveness and Enthusiasm. Despite Extraversion being made up of these two lower-level traits, it is still possible for Extraversion to explain additional variance in an Outcome over and above the individual effects of Assertiveness and Enthusiasm. 20 items (questions on a questionnnaire) are typically used to measured all three constructs (10 for Assertiveness, 10 for Enthusiasm, and the full 20 for Extraversion). The variables are therefore highly correlated (usually > 0.70).

I would like to know how to correctly run a regression to best figure out what the contribution is of each of these three traits, given that they are necessarily highly correlated.

Some made-up data in the form of a correlation matrix to illustrate:

#Correlation matrix.
MyMatrix <- matrix(
  c(1.0, 0.7, 0.8, 0.3,
    0.7, 1.0, 0.6, 0.4,
    0.8, 0.6, 1.0, 0.4,
    0.3, 0.4, 0.4, 1.0), 
  nrow=4, 
  ncol=4)
rownames(MyMatrix) <- colnames(MyMatrix) <- c("Extraversion", "Assertiveness","Enthusiasm","Outcome")

#Assume means and standard deviations as follows:
MEAN.Extraversion <- 4.00
MEAN.Assertiveness <- 3.90
MEAN.Enthusiasm <- 4.10
MEAN.Outcome <- 5.00
SD.Extraversion <- 1.01
SD.Assertiveness <- 0.95
SD.Enthusiasm <- 0.99
SD.Outcome <- 2.20
s <- c(SD.Extraversion, SD.Assertiveness, SD.Enthusiasm, SD.Outcome)
m <- c(MEAN.Extraversion, MEAN.Assertiveness, MEAN.Enthusiasm, MEAN.Outcome)

#Convert to covariance matrix.
cov.mat <- diag(s) %*% MyMatrix %*% diag(s)
rownames(cov.mat) <- colnames(cov.mat) <- rownames(MyMatrix)
names(m) <- rownames(MyMatrix)

#Run model.
library(lavaan)
m1 <- 'Outcome ~ Extraversion + Assertiveness + Enthusiasm'
fit <- sem(m1, 
           sample.cov=cov.mat,
           sample.nobs=300,
           sample.mean=m,
           meanstructure=TRUE)
summary(fit, standardize=TRUE)
$\endgroup$
4
  • $\begingroup$ Is extraversion the sum of assertiveness and enthusiasm? If so, the model is not estimable. $\endgroup$ Commented Dec 31, 2020 at 1:38
  • $\begingroup$ Also. you don't seem to have any latent variables, you're just doing regression. $\endgroup$ Commented Dec 31, 2020 at 1:48
  • $\begingroup$ Sometimes extraversion is the average of the underlying items and other times it is the average of the two aspects. Regarding the latent variables, you are right and I have updated my question to remove reference to latent variables. That said, the reason I mentioned latent variables is that all of these variables are latent variables, however are often modelled as if they are not. Outside of measurement issues, I'm not sure how much this fact matters? $\endgroup$
    – aspark2020
    Commented Dec 31, 2020 at 2:27
  • $\begingroup$ If either of those is true, the model cannot be estimated, you have perfect collinearity. You can't put all three variables in the model. You might consider having the two facets be indicators of an extraversion latent variable. $\endgroup$ Commented Dec 31, 2020 at 2:52

1 Answer 1

1
$\begingroup$

Since the Extraversion score is just the average of the Assertiveness and Enthusiasm scores, each of these variables is a linear function of the other two. Thus, once you already have two of the variables in the model, adding the third gives you non-identifiable effect terms. I recommend you include only the latter variables in your regression model and exclude Extraversion. If you wish to make inferences about the Extraversion variable then you can do so by looking at the average of the coefficients for the other two variables.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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