R: Semi-partial (part) correlation for two variables given a...

spcor.test {ppcor} | R Documentation

## Semi-partial (part) correlation for two variables given a third variable.

### Description

The function `spcor.test` can calculate the pairwise semi-partial (part) correlations between two variables. In addition, it gives us the p value as well as statistic.

### Usage

    spcor.test(x, y, z, method = c("pearson", "kendall", "spearman"))

### Arguments

`x` | a numeric vector.
`y` | a numeric vector.
`z` | a numeric vector.
`method` | a character string indicating which partial correlation coefficient is to be computed. One of "pearson" (default), "kendall", or "spearman" can be abbreviated.

### Details

Semi-partial correlation is the correlation of two variables with variation from a third variable removed only from the second variable. When the determinant of variance-covariance matrix is numerically zero, Moore-Penrose generalized matrix inverse is used. In this case, no `p-value` and `statistic` will be provided if the number of variables are greater than or equal to the sample size.

### Value

`estimate` | the semi-partial (part) correlation coefficient between two variables
`p.value` | the p value of the test
`statistic` | the value of the test statistic
`n` | the number of samples
`gn` | the number of given variables
`method` | the correlation method used

### Note

Missing values are not allowed

### Author(s)

Seongho Kim <biostatistician.kim@gmail.com>

### References

Kim, S. (2015) ppcor: An R Package for a Fast Calculation to Semi-partial Correlation Coefficients. Communications for Statistical Applications and Methods, 22(6), 665-674.

### See Also

`spcor`, `pcor`, `pcor.test`

### Examples

    # data
    y.data <- data.frame(
    				hl=c(7,15,19,15,21,22,57,15,20,18),
    				disp=c(0.000,0.964,0.000,0.000,0.921,0.000,0.000,1.006,0.000,1.011),
    				deg=c(9,2,3,4,1,3,1,3,6,1),
    				BC=c(1.78e-02,1.05e-06,1.37e-05,7.18e-03,0.00e+00,0.00e+00,0.00e+00
                  ,4.48e-03,2.10e-06,0.00e+00)
    			)

    # semi-partial (part) correlation between "hl" and "disp" given "deg" and "BC"
    spcor.test(y.data$hl,y.data$disp,y.data[,c("deg","BC")])
    spcor.test(y.data[,1],y.data[,2],y.data[,c(3:4)])
    spcor.test(y.data[,1],y.data[,2],y.data[,-c(1:2)])

[Package ppcor version 1.1 Index]