Correlation is a statistical measure that indicates how strongly two variables are related. It involves the relationship between multiple variables as well. For instance, if one is interested to know whether there is a relationship between the heights of fathers and sons, a correlation coefficient can be calculated to answer this question. Generally, it lies between -1 and +1. It is a scaled version of covariance and provides direction and strength of a relationship. There are mainly two types of correlation:

**Parametric Correlation**– Pearson correlation(r): It measures a linear dependence between two variables (x and y) is known as a parametric correlation test because it depends on the distribution of the data.**Non-Parametric Correlation**– Kendall(tau) and Spearman(rho): They are rank-based correlation coefficients, are known as non-parametric correlation.

#### Pearson Rank Correlation Coefficient Formula

Pearson Rank Correlation is a parametric correlation. The Pearson correlation coefficient is probably the most widely used measure for linear relationships between two normal distributed variables and thus often just called “correlation coefficient”. The formula for calculating the Pearson Rank Correlation is as follows:

where,

r:pearson correlation coefficient

x and y:two vectors of length n

mcorresponds to the means of x and y, respectively._{x}and m_{y}:

**Note:**

- r takes value between -1 (negative correlation) and 1 (positive correlation).
- r = 0 means no correlation.
- Can not be applied to ordinal variables.
- The sample size should be moderate (20-30) for good estimation.
- Outliers can lead to misleading values means not robust with outliers.

#### Implementation in R

R Language provides two methods to calculate the pearson correlation coefficient. By using the functions cor() or

it can be calculated. It can be noted that **cor.test()**

computes the correlation coefficient whereas **cor()**

computes test for association or correlation between paired samples. It returns both the correlation coefficient and the significance level(or p-value) of the correlation.**cor.test()**

Syntax:

cor(x, y, method = “pearson”)

cor.test(x, y, method = “pearson”)

Parameters:

x, y:numeric vectors with the same length

method:correlation method

**Example 1:**

**# Using cor() method**

`# R program to illustrate ` `# pearson Correlation Testing ` `# Using cor() ` ` ` `# Taking two numeric ` `# Vectors with same length ` `x ` `=` `c(` `1` `, ` `2` `, ` `3` `, ` `4` `, ` `5` `, ` `6` `, ` `7` `) ` `y ` `=` `c(` `1` `, ` `3` `, ` `6` `, ` `2` `, ` `7` `, ` `4` `, ` `5` `) ` ` ` `# Calculating ` `# Correlation coefficient ` `# Using cor() method ` `result ` `=` `cor(x, y, method ` `=` `"pearson"` `) ` ` ` `# Print the result ` `cat(` `"Pearson correlation coefficient is:"` `, result) ` |

*chevron_right*

*filter_none*

**Output:**

Pearson correlation coefficient is: 0.5357143

**# Using cor.test() method**

`# R program to illustrate ` `# pearson Correlation Testing ` `# Using cor.test() ` ` ` `# Taking two numeric ` `# Vectors with same length ` `x ` `=` `c(` `1` `, ` `2` `, ` `3` `, ` `4` `, ` `5` `, ` `6` `, ` `7` `) ` `y ` `=` `c(` `1` `, ` `3` `, ` `6` `, ` `2` `, ` `7` `, ` `4` `, ` `5` `) ` ` ` `# Calculating ` `# Correlation coefficient ` `# Using cor.test() method ` `result ` `=` `cor.test(x, y, method ` `=` `"pearson"` `) ` ` ` `# Print the result ` `print` `(result) ` |

*chevron_right*

*filter_none*

**Output:**

Pearson's product-moment correlation data: x and y t = 1.4186, df = 5, p-value = 0.2152 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: -0.3643187 0.9183058 sample estimates: cor 0.5357143

In the output above:

- T is the value of the test statistic (T = 1.4186)
- p-value is the significance level of the test statistic (p-value = 0.2152).
- alternative hypothesis is a character string describing the alternative hypothesis (true correlation is not equal to 0).
- sample estimates is the correlation coefficient. For Pearson correlation coefficient it’s named as cor (Cor.coeff = 0.5357).

**Example 2:**

**Data:** Download the CSV file here.

**Example:**

`# R program to illustrate ` `# Pearson Correlation Testing ` ` ` `# Import data into RStudio ` `df ` `=` `read.csv(` `"Auto.csv"` `) ` ` ` `# Taking two column ` `# Vectors with same length ` `x ` `=` `df$mpg ` `y ` `=` `df$weight ` ` ` ` ` `# Calculating ` `# Correlation coefficient ` `# Using cor() method ` `result ` `=` `cor(x, y, method ` `=` `"pearson"` `) ` ` ` `# Print the result ` `cat(` `"Person correlation coefficient is:"` `, result) ` ` ` `# Using cor.test() method ` `res ` `=` `cor.test(x, y, method ` `=` `"pearson"` `) ` `print` `(res) ` |

*chevron_right*

*filter_none*

**Output:**

Person correlation coefficient is: -0.8782815 Pearson's product-moment correlation data: x and y t = -31.709, df = 298, p-value < 2.2e-16 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: -0.9018288 -0.8495329 sample estimates: cor -0.8782815

## Recommended Posts:

- Python - Pearson Correlation Test Between Two Variables
- Spearman Correlation Testing in R Programming
- Kendall Correlation Testing in R Programming
- Python - Pearson's Chi-Square Test
- Covariance and Correlation in R Programming
- Compute the Correlation Coefficient Value between Two Vectors in R Programming - cor() Function
- Visualize correlation matrix using correlogram in R Programming
- Visualize Correlation Matrix using symnum function in R Programming
- Redundancy and Correlation in Data Mining
- Exploring Correlation in Python
- Python - Kendall Rank Correlation Coefficient
- Spearman's Rank Correlation
- Hypothesis Testing in R Programming
- Unit Testing in R Programming
- Understanding Hypothesis Testing
- Getting the Modulus of the Determinant of a Matrix in R Programming - determinant() Function
- Set or View the Graphics Palette in R Programming - palette() Function
- tidyr Package in R Programming
- Get Exclusive Elements between Two Objects in R Programming - setdiff() Function
- Intersection of Two Objects in R Programming - intersect() Function

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.