Могу ли я использовать CLR (центрированное преобразование логарифмического отношения) для подготовки данных для PCA?


13

Я использую скрипт. Это для основных записей. У меня есть датафрейм, который показывает различные элементные композиции в столбцах на заданной глубине (в первом столбце). Я хочу провести с ним PCA, и меня не устраивает метод стандартизации, который я должен выбрать.

Кто-нибудь из вас использовал clr()данные для подготовки prcomp()? Или это фальсифицирует мои решения. Я пытался использовать clr()данные, прежде чем использовать prcomp()функцию в дополнение к использованию масштаба атрибута в prcomp().

data_f_clr<- clr(data_f)
data_pca <- prcomp(data_f, center = TRUE, scale. = TRUE)

https://stat.ethz.ch/R-manual/R-devel/library/stats/html/prcomp.html

шкала описывается для масштабирования данных, поэтому они имеют единичную дисперсию. Я считаю, что мои данные имеют совершенно другой масштаб, что я и хотел. Проблема в том, что я получаю другое решение, когда использую приведенный выше код или когда пропускаю clr()(что дает более желаемый результат). Но я хочу знать, почему clr()беспокойство в этом случае?


2
Для не-пользователей R, как я, было бы полезно уточнить, что clrделает ....
Дугал

3
Конечно, CLR меняет решения - зачем еще вы будете использовать эту процедуру? Возможно, вам следует спросить, как определить, какой подход лучше. Есть полезные сообщения, которые можно найти, выполнив поиск на нашем сайте для CLR . В ответе на связанный вопрос я привел несколько иллюстраций, которые могут вам помочь.
whuber

1
Быстрый ответ заключается в том, что вы можете делать с данными все, что хотите, до PCA. Нет никаких указов, законов или рецептов, регулирующих это. Некоторые утверждают, что PCA (без ротации) не зависит от масштаба, в то время как другие утверждают, что результаты PCA очень чувствительны к масштабу. Но если вы поворачиваете результаты PCA, то правила большого пальца требуют обязательной предварительной PCA нормализации, такой как CLR или стандартизация, чтобы означать = 0 и SD = 1. Отличное обсуждение CLR содержится в книге Ли Купера « Анализ доли рынка» ( anderson.ucla.edu/faculty/lee.cooper/MCI_Book/BOOKI2010.pdf ), в которой он связан с анализом компонентов.
Майк Хантер

2
@DJohnson Я искал в pdf ссылки на различные слова в CLR и центрированное преобразование логарифмического соотношения, но ничего не смог найти. Что я сделал не так? В этой версии нет индекса, но заголовки разделов не выглядят многообещающими, и в ссылки не входит Джон Эйтчисон, который предложил это преобразование для композиционных данных. На странице ссылки на обсуждения под тем или иным названием приветствуются.
Ник Кокс

1
Как уже упоминалось, в версии, с которой вы связаны, нет указателя, так что извините за то, что я не обращался к нему. Спасибо за ключевое слово "log-centering", из которого я нахожу дискуссии о другом звере, а не о центрированном преобразовании логарифмического соотношения , о котором идет речь в этой теме. @whuber уже дал ссылку на обсуждение на этом сайте. Ключевым моментом является то, что для композиционных данных с пропорциями, добавляемыми к 1, существует необходимость и возможности для коллективного преобразования в другое пространство. Вы пропустили слово «коэффициент» как указывающее на идею, отличную от той, которую вы знаете.
Ник Кокс

Ответы:


5

Да, вы можете, и на самом деле вы должны, когда ваши данные составлены.

Здесь можно найти обзор в области микробиологии, который мотивирует использовать CLR-преобразование с последующим PCA для анализа наборов данных микробиомов (которые по определению являются композиционными): https://www.frontiersin.org/articles/10.3389/fmicb .2017.02224 / полный .


К сожалению, во многих случаях эта статья ужасно ошибочна, что очень жаль, учитывая, что два соавтора являются лидерами анализа композиционных данных.
Эли Корвиго

@EliKorvigo Этот комментарий может быть обоснованным, но сам по себе он бесполезен. Если бы вы могли указать на опубликованную или хотя бы публичную критику, тогда такая критика изменила бы картину.
Ник Кокс

@NickCox, конечно, есть статья Филцмозера и Хрона . Это не прямая критика вышеупомянутого документа, но он выступает против использования CLR для корреляционного анализа, в то время как вышеупомянутый документ рекомендует инструменты, основанные на CLR.
Эли Корвиго

@NickCox Я хотел бы подчеркнуть мое глубокое уважение к доктору Павловски-Глану и доктору Эгозкуе, которые являются двумя последними авторами статьи, упомянутой Арчи. Фактически, они ввели ILR для устранения недостатков CLR (Egozcue и Pawlowsky-Glahn, 2003) . Ссылаясь на CLR, они пишут: «Тем не менее, ортогональные ссылки в этом подпространстве не получаются прямым способом» .
Эли Корвиго

Pawlowsky-Glahn и Egozcue заявляют в «Составных данных и их анализе: введение» (2006), что коэффициенты clr »имеют определенные преимущества: выражение симметрично по частям, и эти координаты уменьшают вычисление расстояний Aitchison до обычных расстояний. полезно при вычислении би-сюжетов (...) "
jO.

5

У вас могут возникнуть проблемы с ванильным PCA по координатам CLR. Есть две основные проблемы с композиционными данными:

  • они строго неотрицательны
  • у них есть ограничение по сумме

xG(x)

x^={log(x1G(x)),,log(xnG(x))}={log(x1)log(G(x)),,log(xn)log(G(x))}

Теперь посмотрим, что

log(G(x))=log(exp[1ni=1nlog(xi)])=E[log(x)]

x^=[log(x)E[log(x)]]=0

Другими словами, CLR снимает ограничение диапазона значений (что хорошо для некоторых приложений), но не снимает ограничение суммы, что приводит к сингулярной ковариационной матрице, которая эффективно нарушает (M) ANOVA / линейную регрессию / ... и делает PCA чувствителен к выбросам (потому что для надежной оценки ковариации требуется матрица полного ранга). Насколько я знаю, из всех композиционных преобразований только ILR решает обе проблемы без каких-либо серьезных базовых допущений. Однако ситуация немного сложнее. SVD координат CLR дает вам ортогональный базис в пространстве ILR (координаты ILR охватывают гиперплоскость в CLR), поэтому ваши оценки дисперсии не будут различаться между ILR и CLR (что, конечно, очевидно, поскольку и ILR, и CLR являются изометриями на симплекс). Однако существуют методы для надежной оценки ковариации по координатам ILR [2].

Обновить я

Просто чтобы проиллюстрировать, что CLR не подходит для методов корреляции и определения местоположения. Предположим, мы 100 раз отобрали сообщество из трех линейно независимых нормально распределенных компонентов. Для простоты, пусть все компоненты имеют равные ожидания (100) и отклонения (100):

In [1]: import numpy as np

In [2]: from scipy.stats import linregress

In [3]: from scipy.stats.mstats import gmean

In [4]: def clr(x):
   ...:     return np.log(x) - np.log(gmean(x))
   ...: 

In [5]: nsamples = 100

In [6]: samples = np.random.multivariate_normal(
   ...:     mean=[100]*3, cov=np.eye(3)*100, size=nsamples
   ...: ).T

In [7]: transformed = clr(samples)

In [8]: np.corrcoef(transformed)
Out[8]: 
array([[ 1.        , -0.59365113, -0.49087714],
       [-0.59365113,  1.        , -0.40968767],
       [-0.49087714, -0.40968767,  1.        ]])

In [9]: linregress(transformed[0], transformed[1])
Out[9]: LinregressResult(
   ...:     slope=-0.5670, intercept=-0.0027, rvalue=-0.5936, 
   ...:     pvalue=7.5398e-11, stderr=0.0776
   ...: )

Обновление II

Учитывая полученные ответы, я считаю необходимым указать, что ни в одном из своих ответов я не сказал, что PCA не работает с данными, преобразованными в CLR. Я заявлял, что CLR может тонко разрушать PCA , что, возможно, не важно для уменьшения размерности, но важно для анализа поисковых данных. Статья, цитируемая @Archie, посвящена микробной экологии. В этой области вычислительной биологии PCA или PCoA на различных матрицах расстояний используются для изучения источников изменения данных. Мой ответ следует рассматривать только в этом контексте. Более того, это подчеркивается в самой статье:

... Композиционный биплот [примечание: ссылаясь на PCA] имеет несколько преимуществ по сравнению с графиками основных координат (PCoA) для анализа β-разнесения. Полученные результаты очень стабильны, когда данные являются подмножествами (Bian et al., 2017), что означает, что предварительный анализ не обусловлен просто наличием отсутствующих связей в данных или чрезмерной разреженностью (Wong et al., 2016; Morton et al. al., 2017).

Gloor et al., 2017

Обновление III

Дополнительные ссылки на опубликованные исследования (я благодарю @Nick Cox за рекомендацию добавить больше ссылок):

  1. Аргументы против использования CLR для PCA
  2. Аргументы против использования CLR для методов, основанных на корреляции
  3. Введение в ILR

2
Сингулярная ковариационная матрица не является проблемой для pca!
kjetil b halvorsen

@kjetilbhalvorsen действительно, PCA как таковой не требует, чтобы матрица имела полный ранг. Технически говоря, сингулярная ковариационная матрица будет приводить только к одному или нескольким нулевым собственным значениям. Тем не менее, люди обычно применяют PCA, чтобы исследовать источники дисперсии, в которых проявляется композиционная структура. Вот почему я был довольно осторожен с моей формулировкой: «... эффективно ломает PCA / ... многими тонкими способами»
Эли Корвиго

Таким образом, вы имеете в виду, что из-за сингулярности нельзя рассчитать величину дисперсии, которая объясняется для каждого компонента? Кроме того, можно выполнить PCA для уменьшения размерности. Как это влияет на ANOVA / линейную регрессию?
Арчи

1
+1 потому что ответ очень интересный. Это не обходится без критики, хотя. Вы, казалось бы (для меня глупо) не объяснили точно, почему делать PCA на композиционных или clr-преобразованных данных неуместно «тонкими способами» (что? Как?). Кроме того, вы даете код Python, но не его результаты. Можете ли вы отобразить и прокомментировать его результаты? Наконец, не могли бы вы оставить ссылку на трансляцию ILR, чтобы прочитать о ней?
ttnphns

1
@ttnphns 1) как я уже писал в комментариях, CLR не устраняет искажения источников дисперсии, вызванных композиционным замыканием, влияющих на исследовательский анализ данных: для надежной ковариационной оценки требуется матрица полного ранга; 2) Я не уверен, что следую, почему вы говорите, что результатов нет: это интерактивный сеанс Python с входами и выходами (т.е. результатами); 3) Я добавил ссылку на ILR.
Эли Корвиго
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.