Don't you have the dimension of x backward? Try: > set.seed(1) > x <- matrix(rnorm(50, 3, 3), 10, 5) > vinv <- solve(crossprod(x)) > vinv [,1] [,2] [,3] [,4] [,5] [1,] 0.019918251 -0.006247646 0.006600209 0.003687249 -0.018670806 [2,] -0.006247646 0.018121025 -0.014815905 -0.005647350 0.003434065 [3,] 0.006600209 -0.014815905 0.023411617 -0.002250342 -0.003258960 [4,] 0.003687249 -0.005647350 -0.002250342 0.025168959 -0.020070844 [5,] -0.018670806 0.003434065 -0.003258960 -0.020070844 0.039593016
If you really have 5 cases and 10 variables, the covariance matrix will have to be singular. Andy > From: Marc Bernard > > Dear All, > > I have written the following programs to find a > non-singular (10*10) covariance matrix. > Here is the program: > > nitems <- 10 > > x <- array(rnorm(5*nitems,3,3), c(5,nitems)) > > sigma <- t(x)%*%x > > inverse <- try(solve(sigma), TRUE) > > > > while(inherits(inverse, "try-error")) > > { > > x <- array(rnorm(5*nitems,3,3), c(5,nitems)) > > sigma <- t(x)%*%x > > inverse <- try(solve(sigma), TRUE) > > } > > > > The loop doesn't stop ... This means that no "non-singular" > matrix was found!!! > > some thing wrong !! > > > > Thanks a lot for any reply > > > > Bernard > > > > > > > > > > --------------------------------- > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html