[R] apply
Rui Barradas
ru|pb@rr@d@@ @end|ng |rom @@po@pt
Fri Oct 4 15:59:19 CEST 2024
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 using 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 using 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
More information about the R-help
mailing list