Могу ли я использовать 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⁡[1n∑i=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.