znajdowanie wartości p w korelacji Pearsona w R

26

Czy można znaleźć wartość p w korelacji Pearsona w R?

Aby znaleźć korelację Pearsona, zwykle to robię

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

Ale jak mogę znaleźć wartość p tego?

baryłkowaty
źródło
1
Pomoc na cor( ?cor) wyraźnie wspomina cor.test(pod „Zobacz także”)
Glen_b

Odpowiedzi:

32

możesz użyć cor.test:

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

co daje :

# 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    

Więcej informacji o statystykach i dodatkowych parametrach na oficjalnej stronie:

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

brumar
źródło
dzięki, za mało punktów do głosowania, wykorzystałem to
tubby
9

Jeśli chcesz tylko wartość P:

> cor.test(col1,col2)$p.value
[1] 0.1684782
rnso
źródło
7

Następujące czynności zrobią, jak poprosisz:

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

Tutaj x jest ramką danych, a rcorr zwraca każdą korelację, którą można utworzyć z ramki danych „x”.

Lub możesz sam obliczyć statystyki:

t=ρ^1-ρ^2)n-2)

ρ^

Repmat
źródło
Dzięki, ale co to jest x? Wydaje mi się, że to jakaś konkatenacja col1 i col2, ponieważ potrzebujemy dwóch wektorów do obliczenia korelacji Pearsona. Ale czy możesz mi powiedzieć, co to jest x?
tubby
Jest to ramka danych, zobacz moją aktualizację.
Repmat