Ну, программу выделения главных компонент написать легко: основная команда
prcomp(). Пусть данные хранятся в объекте
dann (например, типа
data.frame)
Код:
prcomp(dann)$rotation-> a
as.matrix(dann) %*% a-> nov
plot(nov[,1:2])
Здесь
a -- матрица поворота данных.
as.matrix нужно для того, чтобы преобразовать таблицу (
data.frame) в матрицу (
matrix). Это если данные именно в таком виде.
В
nov будут храниться новые "повернутые" данные, первые компоненты - самые важные.
Но, конечно, в таком виде программа применяется к однородным данным (с примерно одинаковым разбросом). Если не так, можно предварительно применить шкалирование scale().
Посмотрите состав объекта
prcomp(dann). Там должны храниться сведения о вкладе каждой компоненты в дисперсию.
-- 11.02.2015, 16:15 --Нет, кажется, надо данные сперва транспонировать,
t(dann). Иначе будут преобразовываться объекты... Впрочем, посмотрите сами.