нормализующие матрицы в R - PullRequest
1 голос
/ 16 августа 2010

Как мне нормализовать / масштабировать матрицы в R по столбцам.Например, когда я вычисляю собственные векторы матрицы, R возвращает:

> eigen(matrix(c(2,-2,-2,5),2,2))$vectors
       [,1]       [,2]
[1,] -0.4472136 -0.8944272
[2,]  0.8944272 -0.4472136

// should be normalized to
     [,1] [,2]
[1,]   -1   -2
[2,]    2   -1

Функция «масштаб» вычитает среднее значение и делится на стандартное отклонение по столбцу, что не помогает в этом случае.Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 16 августа 2010

В результате получается матрица, которую вы говорите, что хотите:

> a <- eigen(matrix(c(2,-2,-2,5),2,2))$vectors
> a / min(abs(a))
     [,1] [,2]
[1,]   -1   -2
[2,]    2   -1

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

0 голосов
/ 16 августа 2010

Wolfram Alpha дает следующий результат:

http://www.wolframalpha.com/input/?i=eigenvalues{{2,-2},{-2,5}}

Ввод:

альтернативный текст http://www4a.wolframalpha.com/Calculate/MSP/MSP2019c09551ice7322c0000597gh9iecce8ce5a?MSPStoreType=image/gif&s=58&w=162&h=36

Собственные значения:

альтернативный текст http://www4a.wolframalpha.com/Calculate/MSP/MSP2319c09551ice7322c00000d87ab28c27g8i27?MSPStoreType=image/gif&s=58&w=500&h=52

Собственные векторы:

альтернативный текст http://www4a.wolframalpha.com/Calculate/MSP/MSP2619c09551ice7322c00001c9hcg6e2bgiefgf?MSPStoreType=image/gif&s=58&w=500&h=64

Я не уверен, что вы говорите со средними и стандартными отклонениями.Хороший итеративный метод, такой как QR, должен дать вам собственные значения и собственные векторы, которые вам нужны.Проверьте Якоби или Домовладелец.

Вы нормализуете любой вектор, разделив каждый компонент на квадратный корень из суммы квадратов его компонентов.Единичный вектор будет иметь величину, равную единице.

В вашем случае это верно: векторы, представленные R , имеют , нормализованы.Если вы нормализуете два собственных вектора Вольфрама, вы увидите, что оба имеют величину, равную квадратному корню из 5. Разделите каждый вектор-столбец на это значение, и вы получите те, которые даны вам R. Оба являются правильными.

...