1
$\begingroup$

I came across the following test for statistical significance between two betas (predictors) from a multiple regression model. Note that $R^2$ is the model coefficient of determination, $r$ is the correlation between predictor 1 and predictor 2, and $df$ is the model residual degrees of freedom:

Calculate determinant:

$$\text{A} = 1 \times 1 - r \times r$$

Get the "inverse matrix", which as I can tell has 3 values – riv1, riv2, riv12:

$$\text{riv1} = \dfrac{1}{\text{A}} \\ \text{riv2} = \dfrac{1}{\text{A}} \\ \text{riv12} = \dfrac{-1 * r}{\text{A}} $$

Use these to get the standard error about the difference between $b_1$ and $b_2$:

$$\text{SE}_{b_1b_2} = \sqrt{\frac{(1 - R^2)}{df \times \left( \text{riv1} + \text{riv2} - 2 \times \text{riv12}\right)}}$$

Get t-statistic:

$$t = \dfrac{(b_1 - b_2)}{\text{SE}_{b_1b_2}}$$

Question: Does anyone recognizes this test and could point me to a resource on it? It seems like some sort of variation on the Wald test but neither me nor my colleagues have seen it before.

Note that I got this from a custom R function and translated into math myself. I am not a statistician so I hope this is still recognizable despite any mistakes hiding in there!

EDIT: Apparently my attempt at matrix notation was wrong, so I simplified a bit. Not proper notation but I hope you get the idea. Also adding the R function here for any R users who might want to see what's going on in the R calculations, in case that is helpful!

t_test_depmod <-
  function(correlation,
           model_r_2,
           df_resid,
           coefficient_1,
           coefficient_2) {
    # Determinant
    deter <- 1 * 1 - (correlation) * (correlation)
    # Inverse Matrix
    inverse_mat <-
      data.frame(
        riv1 = 1 / deter,
        riv2 = 1 / deter,
        riv12 = -1 * correlation / deter
      )
    # Break down SE_Diff Equation
    fp <- (1 - model_r_2)
    sp <- fp / df_resid
    tp <- sp * (inverse_mat$riv1 + inverse_mat$riv2 - 2 * inverse_mat$riv12)
    se_diff <- sqrt(tp)
    # Get T statistic
    tt <-(coefficient_1 - coefficient_2) / se_diff
    # Get P-Value
    p <- 2 * pt(-abs(tt), df_resid)
    return(list(
      t.statistic = tt,
      df = df_resid,
      se_diff = se_diff,
      p = p
    ))
  }
t_test_depmod(
  correlation = .323,
  model_r_2 = .28,
  df_resid = 528,
  coefficient_1 = 0.345,
  coefficient_2 = 0.28
)
$\endgroup$
2
  • 1
    $\begingroup$ There are many reasons suggesting this formula, if it works at all, must make strong assumptions. I believe they include (1) the coefficients are for the standardized predictors; (2) the regression includes a constant; (3) the model matrix is of full rank; and (4) all other regressors in the model are orthogonal to these two. $\endgroup$
    – whuber
    Commented Dec 6, 2023 at 16:58
  • 1
    $\begingroup$ I agree, even as a non-statistician, seeing the model $R^2$ in the standard error alone makes me think we have to assume that predictors 1 and 2 are the only predictors being modeled. $\endgroup$
    – mvanaman
    Commented Dec 6, 2023 at 17:41

0

Your Answer

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