Encontrar el valor p en la correlación de Pearson en R

26

¿Es posible encontrar el valor p en la correlación de pearson en R?

Para encontrar la correlación de Pearson, generalmente hago esto

col1 = c(1,2,3,4)
col2 = c(1,4,3,5)
cor(col1,col2)
# [1] 0.8315218

Pero, ¿cómo puedo encontrar el valor p de esto?

rechoncho
fuente
1
La ayuda en cor( ?cor) explícitamente menciona cor.test(en "Véase también")
Glen_b -Reinstate Mónica

Respuestas:

32

puedes usar cor.test:

col1 = c(1,2,3,4) 
col2 = c(1,4,3,5)
cor.test(col1,col2) 

lo que da :

# Pearson's product-moment correlation   
# data:  col1 and col2   
# t = 2.117, df = 2, p-value = 0.1685   
# alternative hypothesis: true correlation is not equal to 0   
# 95 percent confidence interval:   
#  -0.6451325  0.9963561   
# sample estimates:   
#       cor    
# 0.8315218    

Más información sobre las estadísticas y parámetros adicionales en la página oficial:

https://stat.ethz.ch/R-manual/R-patched/library/stats/html/cor.test.html

brumar
fuente
gracias, no hay suficientes puntos para votar, aunque lo usé
rechoncho
9

Si solo desea el valor P:

> cor.test(col1,col2)$p.value
[1] 0.1684782
rnso
fuente
7

Lo siguiente hará lo que pida:

 library(Hmisc) # You need to download it first.
 rcorr(x, type="pearson") # type can be pearson or spearman

Aquí x es un marco de datos, y rcorr devuelve cada correlación que es posible formar a partir del marco de datos "x".

O puede calcular la estadística usted mismo:

t=ρ^1ρ^2n2

Donde es la correlación de Pearson estimada a partir de los datos, y n es el tamaño de la muestra.ρ^

Repmat
fuente
Gracias, pero ¿qué es x? Creo que es una concatenación de col1 y col2 porque necesitamos dos vectores para calcular la correlación de Pearson. Pero, ¿puedes decirme qué es x?
rechoncho
Es un marco de datos, mira mi actualización.
Repmat