samedi 9 janvier 2021

Random generated number are linear combination among them even if not specified

I am simulating some draws using random numbers. Unlikely, the generated numbers are not random as I would like. In fact, I obtain that there are some linear combinations.

In details, I have the following starting data:

start_vector = c(1,10,30,40,50,100) # length equal to 6
residual_of_model = 5
n = 1000 # Number of simulations

I try to simulate n observations from a random normal distribution for each of the start_vector elements, assuming it as a "random noise" to add to the original value (that is the one into start_vector):

out_vec <- matrix(NA, nrow = n, ncol = length(start_vector))
for (h_aux in 1:length(start_vector))
  {
    random_noise <- rnorm(n, 0, residual_of_model)
    out_vec[,h_aux] <- as.numeric(start_vector[h_aux]) + random_noise
  }

At this point, I obtain a matrix of size 6x1000. In theory, I assume all the columns and the rows in the matrix are linearly independent among them.

If I try to check it, using the findLinearCombos() function from the caret package I obtain that all the columns are indepent:

caret::findLinearCombos(out_vec)

If I try to evaluate the independence among the rows, using the following code:

caret::findLinearCombos(t(out_vec))

I obtain that all the rows from 7 to 1000 are a linear combination of the first 6 (the length of start_vector).

It is really strange in my opinion, I would like to not observe no dependencies at all since the rows are generated adding a random number using rnorm.

What am I missing? Is there some bug? Thanks in advance!




Aucun commentaire:

Enregistrer un commentaire