1
$\begingroup$

I am working through a paper about grad student "satisfaction" (as measured by a survey), and descriptive statistics are given in a table that looks like this:

enter image description here

The "experience of factors" variables in the bottom half of the table are continuous independent variables under test, and their correlation coefficients are understandable. However, the first half of the table contains a number of control dummy/indicator variables coded as 0 or 1. The methods by which these correlations are calculated is not given in the paper.

I have a few questions about these correlations:

  1. Is point-biserial the right way to calculate correlations between a continuous and binary dummy/indicator variable (with no natural ordering/ordinality/ranking)?
  2. How am I to interpret the magnitude of this number? Does a 1.0 mean that all the observations from one of two categories have the same value, and all the observations of the other category have a different value (and those in the "1" category have a higher value, since it's positive 1.0)?
  3. To what extent is a correlation the "interesting" quantity here? Why not calculate a difference of means and perform a t-test?

Again, the paper is silent about these questions.

Thanks for any help—I am performing some research well outside my field with no in-person colleagues I can consult.

Citation: Gerard Dericks, Edmund Thompson, Margaret Roberts & Florence Phua (2019): Determinants of PhD student satisfaction: the roles of supervisor, department, and peer qualities, Assessment & Evaluation in Higher Education, DOI: 10.1080/02602938.2019.1570484

$\endgroup$

1 Answer 1

1
$\begingroup$
  1. Yes, point-biserial correlation is usually recommended when you want to check the correlation between binary and continuous variables (see this wikipedia entry). In R, you can use cor.test function. As you can see below, the output returns Pearson's product-moment correlation. In this case, it is equivalent to point-biserial correlation:
    df <- data.frame(
      x = c(0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0),
      y = c(10, 18, 12, 14, 9, 22, 25, 15, 19, 18, 8)
    )
    
    cor.test(df$x,df$y)

        Pearson's product-moment correlation
    
    data:  df$x and df$y
    t = 2.2684, df = 9, p-value = 0.04949
    alternative hypothesis: true correlation is not equal to 0
    95 percent confidence interval:
     0.005098737 0.883391276
    sample estimates:
         cor 
    0.603129 

When authors did not state the type of correlation analysis they used, we can assume that they used Pearson's correlation.

  1. Yes, that is true. That's how you get 1 for correlation coefficient, which is quite unlikely:
    a <- c(0,0,0,0,0,1,1,1,1,1)
    b <- c(11,11,11,11,11,21,21,21,21,21)
    
    cor.test(a,b)

        Pearson's product-moment correlation
    
    data:  a and b
    t = Inf, df = 8, p-value < 2.2e-16
    alternative hypothesis: true correlation is not equal to 0
    95 percent confidence interval:
     1 1
    sample estimates:
    cor 
      1 

In more realistic cases (as in the first example), positive point-biserial correlation coefficient indicates that observations with $x=1$ have more frequently higher y values compared to observations with $x=0$. Or, as Gung nicely explained here: "...if the correlation is positive, I would say that means moving from the 0 category to the 1 category is associated with an increase in 𝑌, and/or higher 𝑌 values tend to co-occur with category 1. A negative correlation would be the opposite of that." Otherwise, the interpretation is similar to Pearson's correlation.

  1. I guess the authors want to provide a single bivariate measure for all variables which is quite common in some fields. You can use t-test and report mean difference, etc. In the end, you will get identical or very similar results (e.g., test statistic, p-value) because common statistical tests are linear models. You can see this in our example:
    cor.test(df$y, df$x)

        Pearson's product-moment correlation
    
    data:  df$y and df$x
    t = 2.2684, df = 9, p-value = 0.04949
    alternative hypothesis: true correlation is not equal to 0
    95 percent confidence interval:
     0.005098737 0.883391276
    sample estimates:
         cor 
    0.603129 

    t.test(df$y ~ df$x, var.equal = TRUE)

        Two Sample t-test
    
    data:  df$y by df$x
    t = -2.2684, df = 9, p-value = 0.04949
    alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
    95 percent confidence interval:
     -12.64919419  -0.01747248
    sample estimates:
    mean in group 0 mean in group 1 
           12.00000        18.33333 

You can calculate point-biserial correlation manually to see how it relates, e.g., to t-test:

$$r_{pb} = \frac{M_1 - M_0}{s_{n-1}}\sqrt{\frac{n_1n_0}{(n(n-1))}}$$

Where $M_1$ and $M_0$ are the mean values on the continuous variable y for all observations in groups 1 and 0, respectively. Similarly, $n_1$ are $n_0$ are the sample sizes for each group, and $n$ is the total sample size.

mean_y0 <- mean(subset(df, x == 0)$y)
mean_y1 <- mean(subset(df, x == 1)$y)

(mean_y1 - mean_y0)/sd(df$y) * (sqrt((5*6)/(11*10))) 
0.603129
$\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.