3
$\begingroup$

Can someone kindly help me to interpret a model - lm(A ~ sqrt(B) + as.factor(C), data =mydata) which gives a result that B is significantly associated with A (based on the overall regression p-value of $0.04877 \lt 0.05$)?

Call:
lm(formula = A ~ sqrt(B) +  as.factor(C), data = mydata)

Residuals:
     Min       1Q   Median       3Q      Max 
-146.495  -69.309   -0.163   62.497  144.305 

Coefficients:
                               Estimate Std. Error t value Pr(>|t|)    
(Intercept)                     92.8062    16.0901   5.768 3.13e-08 ***
sqrt(B)                         1.1386     0.5052   2.254   0.0253 *  
as.factor(C)1                   -8.3650    14.1517  -0.591   0.5551    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 76.67 on 194 degrees of freedom
  (239 observations deleted due to missingness)
Multiple R-squared:  0.03066,   Adjusted R-squared:  0.02067 
F-statistic: 3.068 on 2 and 194 DF,  p-value: 0.04877

But when I add an interaction term between B and C, B is no longer significantly associated with A $(p=0.1039):$

Call:
lm(formula = A ~ sqrt(B) * as.factor(C), data = mydata)

Residuals:
     Min       1Q   Median       3Q      Max 
-143.166  -68.855   -1.526   63.332  145.317 

Coefficients:
                                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)                         85.7015    25.0446  3.422 0.000759 ***
sqrt(B)                             1.3873     0.8405   1.651 0.100442    
as.factor(C)1                       5.2475    39.3584   0.133 0.894075    
sqrt(B):as.factor(C)1              -0.3904    1.0530   -0.371 0.711215    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 76.85 on 193 degrees of freedom
  (239 observations deleted due to missingness)
Multiple R-squared:  0.03135,   Adjusted R-squared:  0.01629 
F-statistic: 2.082 on 3 and 193 DF,  p-value: 0.1039

Why did the association between B and A in the first model vanish when the interaction was added? Please help me interpret these two models

$\endgroup$
3
  • $\begingroup$ Take a look at theanalysisfactor.com/interactions-main-effects-not-significant I would also recommend plotting your data somehow (like in the link) to see what's going on $\endgroup$
    – shuckle
    Dec 20, 2018 at 13:27
  • 1
    $\begingroup$ The link in the comment above doesn't answer the question. $\endgroup$ Dec 20, 2018 at 13:54
  • $\begingroup$ +1. It would be more accurate to characterize this as an increase in p-value rather than a "vanishing" of an association. The significance threshold of 0.05 (which you seem implicitly to be using) is not a sharp demarcation between the existence and non-existence of an effect. $\endgroup$
    – whuber
    Dec 20, 2018 at 14:23

2 Answers 2

1
$\begingroup$

This has happened to me a few times due to multicollinearity; your interaction term ( sqrt(B):as.factor(C) ) might be highly correlated with your main effect ( sqrt(B) ), so including both of them renders them non-significant.

$\endgroup$
1
$\begingroup$

Without the interaction term in the model, we can fairly intuitively interpret the meaning of the coefficient for sqrt(B): it's the expected change in A for every 1-unit change of sqrt(B).

With the interaction term in the model, the lower-order coefficient sqrt(B) has a very specific meaning. By including the interaction term, you're building in the model assumption that the slope of sqrt(B) changes depending on the value of as.factor(C). The coefficient for sqrt(B) in your output represents the slope when as.factor(C) is not equal to 1. The interaction term is the extent to which the slope changes when as.factor(C) is equal to 1.

In your case, it doesn't appear that the slopes of sqrt(B) and as.factor(C) depend on the values of each other. I wouldn't consider the change in coefficient/p-value from one model to the next to be particularly meaningful. It also depends on the reference level of as.factor(C). I don't know what the values of C are, but if you refit the model with something like as.factor(C, levels = c(1, 0)) you would have a different reference level for as.factor(C) and would probably see a different coefficient for sqrt(B), which would be the estimate of the slope when as.factor(C) is equal to 1.

$\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.