2014-11-26 3 views
-3

У меня есть набор данных, который выглядит следующим образом:Как вычислить это в R?

y1 y2 1 2 3 4 2 5 7 2 и так далее. Поэтому каждое наблюдение является двумерным. Вызов этой матрицы y

Я хотел бы вычислить

enter image description here

где теперь каждый yi является вектором.

Как я могу сделать это с помощью R? Есть ли предопределенная функция? Большое спасибо!

+0

Что вы ** ** ** пробовали? – Spacedman

+0

Я пробовал функции «cov» и «var», но я получаю разные вещи, и поиск в Google я не нашел разницы между этими двумя :(В худшем случае я думал о кодировании adhoc, но я считаю, что это неприемлемо, если R уже имеет функцию для этого – Martingalo

+1

Итак, у вас есть имя для того, что, по вашему мнению, вызывается этим вычислением? Является ли y-bar в формуле средним значением y1 и y2? – Spacedman

ответ

2

Его явно не ковариация. Посмотрим, что это.

у-бар среднее y1 и y2:

> d=data.frame(y1=c(1,3,2,7),y2=c(2,4,5,2)) 
> ybar = mean(c(d$y1, d$y2)) 
> ybar 
[1] 3.25 

Теперь в вашей сумме мы имеем небольшую точку растерянность. A * A 'будет зависеть от того, является ли A матрицей строк или матрицей столбцов. R имеет только векторы в одном измерении. В одном направлении вы получите скалярный ответ, иначе вы получите матрицу 4x4, так как у вас есть четыре наблюдения. Я думаю, ты хочешь первого. Таким образом, внутренний бит вашей суммы есть суммы этих:

> t(d$y1-ybar) %*% (d$y1-ybar) 
     [,1] 
[1,] 20.75 
> t(d$y2-ybar) %*% (d$y2-ybar) 
    [,1] 
[1,] 6.75 

Сумма затем 20,75 + 6,75, который +27,5. Вот ваш ответ.

Но эти вещи не заботятся, являются ли они y1 или y2. Это всего лишь сумма квадратов от среднего. Мы можем получить вектор всех значений с помощью unlist и работать с этим в одном:

> unlist(d) 
y11 y12 y13 y14 y21 y22 y23 y24 
    1 3 2 7 2 4 5 2 
> sum((unlist(d) - mean(unlist(d)))^2) 
[1] 27.5 

и есть ваш ответ снова.

+0

, но я должен получить матрицу. В сумме мы имеем произведение (2x1) раз a (1x2), поэтому мы должны получить (2x2) матрицу или я ошибаюсь ? – Martingalo

+0

Является ли y_i в формуле не ваши векторы столбцов y1 и y2 ** **? Тогда (y1 - ybar) - длина 4. Если y_i в формуле не та, то измените свою нотацию или уточните, что вы делая строки и столбцы. * отдает * – Spacedman

+0

Мои записи были ясными, я назвал матрицу y столбцами y1 и y2, поэтому да yi - вектор. Неважно. – Martingalo

Смежные вопросы