Hello,

You don't need apply, covariance calculations are so frequent that R or any other statistics package already has pre-programmed functions.
This time with two vectors x and y.



set.seed(123)
n <- 3
x <- rnorm(n)
y <- rnorm(n)

# the two main diagonal values
var(x)
#> [1] 1.300025
var(y)
#> [1] 0.8704518
# the secondary diagonal values
cov(x, y)
#> [1] 1.056885
# cov(x, y) == cov(y, x)
cov(y, x)
#> [1] 1.056885

# and the result you are after
# (the covariance matrix is symmetric)
cov(cbind(x, y))
#>          x         y
#> x 1.300025 1.0568845
#> y 1.056885 0.8704518



Hope this helps,

Rui Barradas


Às 13:28 de 04/10/2024, Steven Yen escreveu:
OK. Thanks to all. Suppose I have two vectors, x and y. Is there a way to do the covariance matrix with “apply”. The matrix I need really contains the deviation products divided by the degrees of freedom (n-1). That is, the elements

(1,1), (1,2),...,(1,n)

(2,1), (2,2),...., (2,n)

....

(n,1),(n,2),...,(n,n).

Hello,

This doesn't make sense, if you have only one vector you can estimate its variance with

var(x)


but there is no covariance, the joint variance of two rv's. "co" or joint with what if you have only x? Note that the variance of x[1] or any other vector element is zero, it's only one value therefore it does not vary. A similar reasonong can be applied to cov(x[1], x[2]), etc.

Hope this helps,

Rui Barradas

Às 12:14 de 04/10/2024, Steven Yen escreveu:
Hello

I have a vector:

set.seed(123) > n<-3 > x<-rnorm(n); x [1] -0.56047565 -0.23017749 1.55870831 I like to create a matrix with elements containing variances and covariances of x. That is var(x[1]) cov(x[1],x[2]) cov(x[1],x[3]) cov(x[2],x[1]) var(x[2]) cov(x[2],x[3]) cov(x[3],x[1]) cov(x[3],x[2]) var(x[3]) And I like to do it with "apply". Thanks.

On 10/4/2024 6:35 PM, Rui Barradas wrote:
Hello,

If you have a numeric matrix or data.frame, try something like

cov(mtcars)

Hope this helps,

Rui Barradas


Às 10:15 de 04/10/2024, Steven Yen escreveu:
On 10/4/2024 5:13 PM, Steven Yen wrote:

Pardon me!!!

What makes you think this is a homework question? You are not
obligated to respond if the question is not intelligent enough for you.

I did the following: two ways to calculate a covariance matrix but
wonder how I might replicate the results with "apply". I am not too
comfortable with the online documentation of "apply".

set.seed(122345671) > n<-3 > x<-rnorm(n); x [1] 0.92098449 0.80940115
0.60374785 > cov1<-outer(x-mean(x),x-mean(x))/(n-1); cov1 [,1] [,2]
[,3] [1,] 0.0102159207 0.00224105983 -0.0124569805 [2,] 0.0022410598
0.00049161983 -0.0027326797 [3,] -0.0124569805 -0.00273267965
0.0151896601 > cov2<-(x-mean(x))%*%t((x-mean(x)))/(n-1); cov2 [,1]
[,2] [,3] [1,] 0.0102159207 0.00224105983 -0.0124569805 [2,]
0.0022410598 0.00049161983 -0.0027326797 [3,] -0.0124569805
-0.00273267965 0.0151896601 >
On 10/4/2024 4:57 PM, Uwe Ligges wrote:
Homework questions are not answered on this list.

Best,
Uwe Ligges



On 04.10.2024 10:32, Steven Yen wrote:
The following line calculates standard deviations of a column vector:

se<-apply(dd,1,sd)

How can I calculate the covariance matrix using apply? Thanks.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
    [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting- guide.html
and provide commented, minimal, self-contained, reproducible code.






--
Este e-mail foi analisado pelo software antivírus AVG para verificar a presença 
de vírus.
www.avg.com

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to