2013-04-19 10 views
12

には、各条件(xとy)ごとに54個のサンプルが含まれています。 I相関を次のように計算した:Rのcor()の相関分析からP値と標準誤差を計算する方法

> dat <- read.table("http://dpaste.com/1064360/plain/",header=TRUE) 
> cor(dat$x,dat$y) 
[1] 0.2870823 

はT検定からRの 上記COR()関数とp値に相関のSEを生成するネイティブ方法はありますか?

としては、このweb(ページ14.6)

+4

'COR代わりに.test'を使用します。 – A5C1D2H2I1M1N2O1R2T1

答えて

20

私は何を探していることは、単にあなたが探しているすべてのものを返しますcor.test()関数であることを考えるで説明した相関の標準誤差を除きます。しかし、あなたが見ることができるように、その式は非常に簡単で、cor.testを使用すると、それを計算するために必要なすべての入力があります。

> cor.test(mydf$X, mydf$Y) 

    Pearson's product-moment correlation 

data: mydf$X and mydf$Y 
t = -5.0867, df = 10, p-value = 0.0004731 
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval: 
-0.9568189 -0.5371871 
sample estimates: 
     cor 
-0.8492663 

あなたは、あなたはまた、標準が含まれるように、次のような機能を作成することができますしたい場合は、次の例のデータを用いて

(あなたがページ14.6の結果とそれを自分で比較することができます)相関係数の誤差。 - 上記の出力で容易に入手可能であり、どちらも自由= 2度、

enter image description here

R =相関推定値とN

は便宜上、ここで式です。

cor.test.plus <- function(x) { 
    list(x, 
     Standard.Error = unname(sqrt((1 - x$estimate^2)/x$parameter))) 
} 

を、次のようにそれを使用する:このように、単純な関数は、可能性が

mydf <- structure(list(Neighborhood = c("Fair Oaks", "Strandwood", "Walnut Acres", 
    "Discov. Bay", "Belshaw", "Kennedy", "Cassell", "Miner", "Sedgewick", 
    "Sakamoto", "Toyon", "Lietz"), X = c(50L, 11L, 2L, 19L, 26L, 
    73L, 81L, 51L, 11L, 2L, 19L, 25L), Y = c(22.1, 35.9, 57.9, 22.2, 
    42.4, 5.8, 3.6, 21.4, 55.2, 33.3, 32.4, 38.4)), .Names = c("Neighborhood", 
    "X", "Y"), class = "data.frame", row.names = c(NA, -12L)) 
3

は、あなたは、単に取ることができない。ここで

cor.test.plus(cor.test(mydf$X, mydf$Y)) 

を、 "mydfは" と定義されます戻り値からのテスト統計?もちろん、検定統計量が推定される/ SEそうすることができますカルクSEだけTSTATによる推定値を割るから:上記の回答でmydfを使用して

:?おそらく、あなたが探している

r = cor.test(mydf$X, mydf$Y) 
tstat = r$statistic 
estimate = r$estimate 
estimate; tstat 

     cor 
-0.8492663 
     t 
-5.086732 
関連する問題