2

私はRを初めて使用し、相関行列を作成しようとしています。3 つの独立変数 (x1、x2、x3) と 1 つの従属変数 (y) があります。

私はcorを使用して相関行列を作成しようとしましたが、これまでのところ、これを行うための式を見つけることができませんでした.

4

3 に答える 3

2
x1=rnorm(20)
x2=rnorm(20)
x3=rnorm(20)
y=rnorm(20)
data=cbind(y,x1,x2,x3)
cor(data)
于 2012-11-16T00:42:15.697 に答える
1

私が正しく理解していれば、3 列 (x1 から x3 など) と多くの行 (y 値) の行列があります。次のように行動できます。

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

x1 から x3 までの 3 つのベクトルに既に値がある場合は、次fooのように作成できます。foo=data.frame(x1,x2,x3)

于 2012-11-16T00:36:38.313 に答える
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
于 2012-11-16T00:57:16.987 に答える