Philip Yusupov
Philip Yusupov

Reputation: 23

How to get a single number result for a big matrix using var function?

Using the var function,

(a) find the sample variance of your row averages from above;

(b) find the sample variance for your XYZmat as a whole; <-this

(c) Divide the sample variance of the XYZmat by the sample variance of the row averages. The statistical theory says that ratio will on average be close to the row sample size, which is n, here.

(d) Do your results agree with theory? (That is a non-trivial question.) Show your work.

So this is what he asked for in the question, I could not get the single number result, so I just used the sd function and then squared the result. I keep wondering if there is still a way to get a single number result using var function. In my case n is 30, I got it from the previous part of the homework. This is the first R class I am taking and this is the first homework assigned, so the answer should be pretty simple.

I tried as.vector() function and I still got the set of numbers as a result. I played around with var function, no changes.

Unfortunately, I deleted all the code I had since the matrix is so big that my laptop started lagging.

I did not have any error messages, but I kept getting a set of numbers for the answer...

Upvotes: 0

Views: 96

Answers (1)

Simon Woodward
Simon Woodward

Reputation: 2026

set.seed(123)
XYZmat <- matrix(runif(10000), nrow=100, ncol=100) # make a matrix
varmat <- var(as.vector(XYZmat)) # variance of whole matrix
n <- nrow(XYZmat) # number of rows
n
#> [1] 100
rowmeans <- rowMeans(XYZmat) # row means
varmat/var(rowmeans) # should be near n
#> [1] 100.6907

Created on 2019-07-17 by the reprex package (v0.3.0)

Upvotes: 1

Related Questions