2012-11-16 132 views
2

我是新來的使用R,我試圖創建一個相關矩陣。我有三個獨立變量(x1,x2,x3)和一個相關變量(y)。相關矩陣

我一直在嘗試使用cor來製作相關矩陣,但到目前爲止,我還是無法找到一個公式來做到這一點。

回答

2
x1=rnorm(20) 
x2=rnorm(20) 
x3=rnorm(20) 
y=rnorm(20) 
data=cbind(y,x1,x2,x3) 
cor(data) 
+0

謝謝!這工作!我必須做筆記並保存,這比我嘗試使用的過程容易得多。 –

1

如果我已經正確理解,你有3列(說x1到x3)和許多行(作爲y值)的矩陣。您可以執行如下操作:

foo = matrix(runif(30), ncol=3) # creating a matrix of 3 columns 
cor(foo) 

如果您已經在3個向量X與X 3的值,可以使foo這樣的:foo=data.frame(x1,x2,x3)

+0

謝謝你的建議。這實際上確實很好,但對於一個稍微不同的問題(我也試圖弄清楚)。謝謝! –

1

糾正我,如果我錯了,但假設這是關係到一個迴歸問題,這可能是你在找什麼:

#Set the number of data points and build 3 independent variables 
set.seed(0) 
numdatpoi <- 7 
x1 <- runif(numdatpoi) 
x2 <- runif(numdatpoi) 
x3 <- runif(numdatpoi) 

#Build the dependent variable with some added noise 
noisig <- 10 
yact <- 2 + (3 * x1) + (5 * x2) + (10 * x3) 
y <- yact + rnorm(n=numdatpoi, mean=0, sd=noisig) 

#Fit a linear model 
rmod <- lm(y ~ x1 + x2 + x3) 

#Build the variance-covariance matrix. This matrix is typically what is wanted. 
(vcv <- vcov(rmod)) 

#If needed, convert the variance-covariance matrix to a correlation matrix 
(cm <- cov2cor(vcv)) 

從以上,這裏的方差 - 協方差矩陣:

  (Intercept)  x1  x2  x3 
(Intercept) 466.5773 14.3368 -251.1715 -506.1587 
x1    14.3368 452.9569 -170.5603 -307.7007 
x2   -251.1715 -170.5603 387.2546 255.9756 
x3   -506.1587 -307.7007 255.9756 873.6784 

而且,這裏的關聯相關矩陣:

  (Intercept)   x1   x2   x3 
(Intercept) 1.00000000 0.03118617 -0.5908950 -0.7927735 
x1   0.03118617 1.00000000 -0.4072406 -0.4891299 
x2   -0.59089496 -0.40724064 1.0000000 0.4400728 
x3   -0.79277352 -0.48912986 0.4400728 1.0000000 
+0

爲什麼選擇投票?這個問題的寫法暗示了一個典型的迴歸問題的可能性。 –