Обновлено 13.04.2009 Автор: Administrator
Мои черновые записи по методам разведочного анализа данных.There is a contrast between exploratory data analysis, where the aim is to allow the data
to speak for themselves, and confirmatory analysis (which includes formal estimation and
testing), where the form of the analysis should have been largely decided before the data
were collected(!!).
Data cleaning – filling in missing values, smoothing noisy data, removing outliers and resolving inconsistencies.
TODO: описать схему анализа любых новых данных
1) гистограммы всех переменных. Основываясь на этом, ищем нормировку.
Если есть два класса, то удобно строить гистограмму одновременно с ROC
2) корреляции между переменными
3) распределение расстояний между всеми объектами
4) …
1. z-score :
такая линейная трансформация хорошо работает если распределение симметрично.
Если нет – то логарифм, сигмоид, степенная функция.
2. using range:
или
3. Sphering:
covariance matrix :
transformation:
Сolumns of Q are the eigenvectors obtained from S, lambda is a diagonal matrix of corresponding eigenvalues.
открыл Pearson, потом Hotelling
PCA основан на SVD матрицы ковариаций или корреляций
лучше использовать матрицу корреляций, т.к. можно сравнивать результаты PCA для разных анализов.
Но: принципиальные компоненты полученные по матрицам ковариаций и корреляций различаются!
Сколько компонент оставить:
1) scree plot
2) возьмем сегмент и случайно разделим на p частей. Упорядочим по убыванию по длинне.
Ожидаемый размер k-ой длиннейшей части равен
Q: откуда это получается? ВАЖНЕЙШАЯ ЗАДАЧА
Если пропорция дисперсии объясняемая k-ым компонентом больше этой величины, то этот компонент оставляем
Не всегда первые компоненты PCA самые интересные.
Дискриминирующие компоненты – те где коэффициенты имеют разные знаки.
Посмотреть на переменные, у которых самые большие по абс значению коэффициенты
TODO: посмотреть
NIPALS Algorithm ("Nonlinear Iterative Partial Least Squares") – лучше, чем SVD?
Может применяться, когда есть пропущенные данные!
nipals{ade4}
…
TODO: написать!
Общая идея: p наблюденных переменных могут быть записаны как
линейная комбинация d < p common факторов f (нескореллированных между собой??)
- factor loadings
epsilon-i - своя для каждой переменной – specific factors. Некоррелированы друг с другом.
Дисперсия - specificity of xi.
- communality (сумма loadings для i-ой переменной )
матрицу ковариаций (или корреляций) можно представить в виде
где это диагональная матрица представляющая .
Похоже на постановку задачи регрессии. Но оценки не являются уникальными.
Хорошо чтобы побольше были близки к 0 (достигается вращениями – varimax, equimax, orthomax, etc).
Цель - получить переменную с большой loading по одному фактору и маленькими loadings по другим факторам.
Idea: the variables we are looking at are linear combinations of independent
random non-gaussian variables; and we want to recover those variables.
Рисунок 2 Красные линии - результат PCA, синие - ICA
The main idea behind the algorithm is the fact that (from the central limit theorem) a linear combination
of non-gaussian random variables is "more gaussian".
1. Normalize the data(sphere), so that they have a variance equal
to 1 and that the be uncorrelated.
2. Find (with the usual numeric optimization algorithms)
the linear transformation that maximizes the
non-gaussianity.
One can use several measures of non-gaussianity:
- kurtosis (i.e., the fourth moment),
- entropy (integral of -f * log(f), where f is the pdf),
- mutual information, etc.
ICA – решает Blind Source Separation
X=SA,
X – матрица данных
S – independent components
A – mixing matrix
smallest number of variables needed to model the data without loss.
посмотреть testdim {ade4}
Pettis (1979)
Aims to embed the distance directly in to the mapping domain.
введем objective function
stress =
scale factor =
Stress минимизируется численной оптимизацией.
если расстояния евклидовы, то существует решение в замкнутой форме. Задаем функцию f как 1, т.е. drs = drs
Основано на SVD матрицы расстояний, т.е. идейно очень похоже на PCA.
PCA и classical MDS дают одинаковые результаты когда используется евклидово расстояние.
cmdscale()
stress=
d-hat – это оцененное расстояние в уменьшенном пространстве
sammon()
ищем мажорирующую функцию, которая бы легко минимизировалась.
SMACOF – Scaling by Majorizing a Complicated Function
сохраняет rank of distances within the original dataset
isoMDS()
когда рисуем графики, в которых есть дискретная переменная по одной оси и вещественная по другой,
то всегда лучше трансформировать дискретную в вещественную и чуть-чуть ее jitter
внизу у гистограммы добавляются настоящие данные. Функция rug() в R.
В R любой dataframe можно наглядно визуализировать если установлен ggobi
library(rggobi)
ggobi(cbind(dat,cls))
После этого вызвать Tools->Automatic brushing и выбрать cls
Удобно: Interaction->Identify – идентифицировать точки на графике
При этом GGobi понимает свойство rownames у визуализируемого data.frame
g <- ggobi(mtcars). This creates a GGobi object called g. Getting data out isn’t much harder: Just
index that GGobi object by position (g[[1]]) or by name (g[["mtcars"]] or g$mtcars). These return GGobiData objects which are linked to the data in GGobi. They act just like regular data frames, except that changes are synchronised with the data in the corresponding GGobi. You can get a static copy of the data using as.data.frame.
т.е. можно редактировать данные ggobi из R
g <- ggobi(iris)
clustering <- hclust(dist(iris[,1:4]), method="average")
glyph_colour(g[1]) <- cuttree(clustering,
A function which saves the contents of a GGobi display to a file on disk, is called
ggobi_display_save_picture. This is what we used to create the images in this document. This
creates an exact (raster) copy of the GGobi display. If you want to create publication quality graphics from GGobi, have a look at the DescribeDisplay plugin and package at http://www.ggobi.org/ describe-display. These create R versions of GGobi plots.
поиск интересных пар переменных по scatterplots.
Общая идея – для каждой пары переменных оценить двумерную плотность и смотреть на характеристики получающихся контуров. Например площадь, периметр, convexity, number of connected components of those contours (может выявить multimodality!), non-linearity of the principal curves, average nearest-neighbour distance, etc.
Удобно использовать с интерактивной графикой наподобие xgobi
Если определитель матрицы ковариаций равен нулю, то это значит что есть линейные зависимости между переменными. Чтобы их выявить нужно смотеть на главные компоненты с нулевой дисперсией.
В Statistica 6.0 есть замечательный инструмент Brush для анализа многомерных данных. Иногда проще применять его вместо XGobi
дендрограмму можно использовать для выявления выбросов
хорошо использовать для гистограммы логарифмы частот - после этого намного лучше видна тонкая структура
TODO: projection pursuit – целенаправленное проектирование.
W.Martinez, A.Martinez, Exploratory Data Analysis with MATLAB
< Предыдущая | Следующая > |
---|