Случайно сгенерированное число представляет собой линейную комбинацию между ними, даже если оно не указано

#r #random #linear-algebra

#r #Случайный #линейная алгебра

Вопрос:

Я моделирую некоторые розыгрыши, используя случайные числа. Маловероятно, сгенерированные числа не являются случайными, как хотелось бы. На самом деле, я получаю, что существуют некоторые линейные комбинации.

В деталях у меня есть следующие исходные данные:

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

Я пытаюсь смоделировать n наблюдения из случайного нормального распределения для каждого из start_vector элементов, предполагая, что это «случайный шум» для добавления к исходному значению (то есть к тому, которое входит 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
  }
 

На этом этапе я получаю матрицу размером 6×1000. Теоретически я предполагаю, что все столбцы и строки в матрице линейно независимы между ними.

Если я попытаюсь это проверить, используя findLinearCombos() функцию из caret пакета, я получу, что все столбцы независимы:

 caret::findLinearCombos(out_vec)
 

Если я попытаюсь оценить независимость между строками, используя следующий код:

 caret::findLinearCombos(t(out_vec))
 

Я получаю, что все строки от 7 до 1000 представляют собой линейную комбинацию первых 6 (длина start_vector ).

На мой взгляд, это действительно странно, я бы хотел вообще не наблюдать никаких зависимостей, поскольку строки генерируются с добавлением случайного числа с использованием rnorm .

Чего мне не хватает? Есть ли какая-то ошибка? Заранее спасибо!

Комментарии:

1. Из документации функция выполняет QR-декомпозицию, и только с 6 столбцами декомпозиция устраняет все избыточные уравнения, т.Е. строку 7 до конца.

2. Ваша случайная матрица 1000×6 имеет полный ранг: 6. Ваше наблюдение согласуется с теорией линейной алгебры. Если бы было 7 свободных строк, ранг был бы равен 7. Это невозможно, ранг не может превышать количество столбцов.

3. хорошо, значит, данные не коррелируют между ними, речь идет только о findLinearCombos функции, верно?