2017-07-31 1072 views

回答

3

這裏是計算Pearson相關的P值代碼:

x <- c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1) 
y <- c(2.6, 3.1, 2.5, 5.0, 3.6, 4.0, 5.2, 2.8, 3.8) 
ct = cor.test(x, y, method = "pearson") 
ct$p.value ## this is what cor.test() gives 

n <- length(x) 
r <- cor(x, y) 
df <- n - 2 
t = sqrt(df) * r/sqrt(1 - r^2) 
pval = 2 * min(pt(t, df), pt(t, df, lower.tail = FALSE)) ## this is calculated manually 

ct$p.value == pval 
+0

嗨AK88,謝謝你的回答。我正在尋找的是$ p.value背後的公式。 – DataAdventurer

+1

「p.value」背後的公式是 - 首先使用公式'sqrt(df)* r/sqrt(1 - r^2)'找到't-statistic'。然後提取這個「統計量」的上下尾概率。從這些概率中取出最小值並乘以2,因爲我們必須採用分佈的兩個尾部。這是清楚的嗎? – AK88

+0

你能爲我提供配方的來源嗎?我無法在互聯網上找到它。 – DataAdventurer