Чи можу я використовувати 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робить ....
Dougal

3
Звичайно, CLR змінює рішення - чому б ще ви використовували цю процедуру? Можливо, вам слід запитати, як визначити, який підхід кращий. Корисні публікації можна знайти, шукаючи CLR на нашому сайті . У відповіді на відповідне запитання я подав кілька ілюстрацій, які можуть вам допомогти.
whuber

1
Швидка відповідь полягає в тому, що ви можете робити все, що завгодно, з даними перед PCA. Не існує правил, законів чи рецептів, які б регулювали це. Одні стверджують, що PCA (без обертання) є інваріантною за шкалою, а інші стверджують, що результати PCA дуже чутливі до масштабу. Але якщо ви обертаєте результати PCA, тоді правила мандату великого пальця попередньо PCA нормалізуються, такі як CLR або стандартизуються в середньому = 0 і SD = 1. Велике обговорення CLR знаходиться у книзі Лі Купера Аналіз ринку ( Anderson.ucla.edu/facturing/lee.cooper/MCI_Book/BOOKI2010.pdf ), що пов'язує його з аналізом компонентів.
Майк Хантер

2
@DJohnson Я шукав pdf, пов'язаний з різними словами в CLR, і зосередженим перетворенням коефіцієнта журналу, але нічого не міг знайти. Що я зробив не так? У цій версії немає індексу, але заголовки розділів не виглядають перспективними, а посилання не містять Джона Ейчісона, який запропонував цю трансформацію для композиційних даних. Посилання на сторінку обговорень під цією чи іншою назвою високо оцінені.
Нік Кокс

1
Як уже згадувалося, у версії, з якою ви пов’язані, немає індексу, тож пробачте мене за те, що я не звертався до нього. Дякую за ключове слово "log-centering", в якому я знаходжу обговорення іншого звіра, а не зосереджене перетворення коефіцієнта журналу , про яке йде ця тема. @whuber вже дав посилання на дискусію на цьому сайті. Ключовим є те, що для композиційних даних із пропорціями, що додають до 1, є необхідність та можливість колективного перетворення в інший простір. Ви пропустили слово "співвідношення" як вказівку на іншу ідею від тієї, яку ви знаєте.
Нік Кокс

Відповіді:


6

У вас можуть виникнути проблеми з ванільним PCA на координатах CLR. Є дві основні проблеми з композиційними даними:

  • вони суворо негативні
  • вони мають обмеження суми

Різні композиційні перетворення стосуються одного або обох цих питань. Зокрема, 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 є ізометріями на симплекс). Однак існують методи для надійної оцінки коваріації на координатах ІЛР [2].

Оновити I

Просто для того, щоб проілюструвати, що 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 співавт., 2017).

Слава та ін., 2017

Оновлення III

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

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

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

@kjetilbhalvorsen дійсно, PCA сама по собі не вимагає, щоб матриця була повноцінною. Технічно кажучи, сингулярна матриця коваріації призведе лише до однієї або декількох нульових власних значень. Тим не менш, люди зазвичай застосовують PCA для дослідження джерел дисперсійності, саме там і починається композиційність. Ось чому я досить обережно
ставився

Отже, ви маєте на увазі, що через сингулярність не можна обчислити величину дисперсії, що пояснюється для кожного компонента? Крім цього, все ще можна виконати PCA для зменшення розмірності. Як це впливає на ANOVA / лінійну регресію?
Арчі

1
+1, тому що відповідь дуже цікава. Однак це не обходиться без критики. Ви, здавалося б, (для мене дурні), не пояснили точно, чому робити PCA на композиційних або перетворених на кліті даних, є неправомірними "тонкими способами" (що? Як?). Також ви надаєте код python, але не його результати. Чи можете ви відображати та коментувати його результати? Нарешті, ви можете залишити посилання про транскопт ILR, щоб прочитати?
ttnphns

1
@ttnphns 1) як я писав у коментарях, CLR не усуває спотворення джерел дисперсії, введених композиційним закриттям, впливаючи на дослідницький аналіз даних: для надійної оцінки коваріації потрібна повноцінна матриця; 2) Я не впевнений, що слідую, чому ви говорите, що результатів немає: це інтерактивний сеанс Python з введеннями та виходами (тобто результати); 3) Я додав посилання на ILR.
Елі Корвіго

5

Так, ви можете, а насправді ви повинні, коли ваші дані є композиційними.

Тут можна знайти огляд з області мікробіології, який мотивує використовувати перетворення CLR з подальшим PCA для аналізу наборів даних мікробіомів (які за визначенням складаються): https://www.frontiersin.org/articles/10.3389/fmicb .2017.02224 / пов .


На жаль, цей документ у багатьох випадках жахливо помиляється, що шкода, враховуючи, що два співавтори є чемпіонами композиційного аналізу даних.
Елі Корвіго

@EliKorvigo Цей коментар може бути обґрунтованим, але сам по собі він не корисний. Якби ви могли вказати на опубліковану чи принаймні публічну критику, тоді така критика змінила б картину.
Нік Кокс

@NickCox впевнено, є документ Filzmoser та Hron . Це не пряма критика вищезгаданої роботи, але вона заперечує проти використання CLR для кореляційного аналізу, тоді як вищезгаданий документ рекомендує інструменти, засновані на CLR.
Елі Корвіго

@ NickCox Я хотів би підкреслити глибоку повагу доктора Павловського-Глана та доктора Егоцкуе, які є останніми двома авторами статті, згаданої Арчі. Насправді вони ввели ILR для усунення недоліків CLR (Egozcue та Pawlowsky-Glahn, 2003) . Посилаючись на CLR, вони пишуть: "Тим не менш, ортогональні посилання в цьому підпросторі не отримуються прямо" .
Елі Корвіго

Павловський-Глан та Егоцкуе у стані "Композиційні дані та їх аналіз: вступ" (2006), що коефіцієнти клр "мають певні переваги: ​​вираз симетричний у частинах, і ці координати зменшують обчислення відстаней Ейчісона до звичайних відстаней. Вони корисний при обчисленні бі-графіків (...) "
jO.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.