[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