Трансформація ІЛР (ізометричного логічного відношення) використовується при аналізі композиційних даних. Будь-яке дане спостереження - це набір позитивних значень, що підсумовуються до єдності, такі як пропорції хімічних речовин у суміші або пропорції загального часу, проведеного в різних видах діяльності. Інваріант суми до єдності означає, що хоча в кожному спостереженні може бути k≥2 компоненти, є лише k−1 функціонально незалежні значення. (Геометрично спостереження лежать на k−1 -вимірному симплексі в k -вимірному евклідовому просторі Rk. Цей спрощений характер проявляється в трикутних формах розсипань імітованих даних, показаних нижче.)
Зазвичай розподіли компонентів стають "приємнішими" при перетворенні журналу. Це перетворення можна масштабувати, поділивши всі значення спостереження на їхнє геометричне середнє перед тим, як взяти журнали. (Еквівалентно, що журнали даних у будь-якому спостереженні центрируються шляхом віднімання їх середнього значення.) Це відомо як трансформація "Centered Log-Ratio" або CLR. Отримані значення все ще лежать у гіперплощині в Rk , оскільки масштабування призводить до того, що сума журналів дорівнює нулю. ІЛР складається з вибору будь-якої ортонормальної основи для цієї гіперплани: k−1 координати кожного перетвореного спостереження стають його новими даними. Рівнозначно гіперплан обертається (або відбивається), щоб збігатися з площиною зі зникаючим kth координата, і використовується першаk−1 координат. (Оскільки обертання та відбиття зберігають відстань, вони єізометрією, звідки назва цієї процедури.)
Цагріс, Престон та Вуд заявляють, що "стандартний вибір [матриці обертання] H - це підматриця Гельмерта, отримана шляхом видалення першого рядка з матриці Гельмерта".
Матриця Гельмерта порядку k побудована просто (див., Наприклад, Харвілл, стор. 86). Перший її ряд - 1 с. Наступний рядок - один із найпростіших, який можна зробити ортогональним до першого ряду, а саме (1,−1,0,…,0) . Рядок j - один із найпростіших, що є ортогональним для всіх попередніх рядків: його перші записи -j−1 це 1 s, що гарантує, що він є ортогональним для рядків 2,3,…,j−1, і його jго запис встановлено на 1 - j щоб зробити його ортогональним для першого рядка (тобто його записи повинні дорівнювати нулю). Після цього всі рядки змінюються на одиницю довжини.
Тут, щоб проілюструвати шаблон, це 4 × 4 Гельмерта матриця , перш ніж його рядки були перераховані:
⎛⎝⎜⎜⎜11111- 11110- 21100- 3⎞⎠⎟⎟⎟.
(Редагувати додано в серпні 2017 року) Один особливо приємний аспект цих "контрастів" (які читаються рядком за рядком) - їх інтерпретація. Перший рядок випадає, залишаючи k - 1 решту рядків для представлення даних. Другий ряд пропорційний різниці між другою змінною та першою. Третій ряд пропорційний різниці між третьою змінною та першими двома. Як правило, рядок j ( 2 ≤ j ≤ k ) відображає різницю між змінною j та всіма, що їй передують, змінними1 , 2 , … , j - 1. Це залишає першу змінну j = 1 як "базу" для всіх контрастів. Я вважаю ці інтерпретації корисними при дотриманні ILR за допомогою аналізу основних компонентів (PCA): це дає змогу інтерпретувати навантаження, принаймні приблизно, з точки зору порівнянь між початковими змінними. Я вклав рядок у R
реалізацію ilr
нижче, яка дає вихідним змінним відповідні назви, щоб допомогти в цій інтерпретації. (Кінець редагування.)
Оскільки R
передбачена функція contr.helmert
створення таких матриць (хоча і без масштабування, а рядки та стовпці заперечуються та переміщуються), вам навіть не потрібно писати (простий) код для цього. Використовуючи це, я реалізував ILR (див. Нижче). Для здійснення та тестування я створив 1000 незалежних малюнків із розподілу Діріхле (з параметрами 1 , 2 , 3 , 4 ) та побудував їх матрицю розсіювання. Тут k = 4 .
Усі точки стискаються біля лівих нижніх кутів і заповнюють трикутні ділянки ділянок їх графіки, як це характерно для композиційних даних.
Їх ILR має лише три змінні, знову побудовані як матриця розсіювання:
Це дійсно виглядає приємніше: розсіювачі набули більш характерних форм "еліптичної хмари", краще піддаються аналізам другого порядку, таких як лінійна регресія та PCA.
01 / 2
1 / 2
Це узагальнення реалізовано у наведеній ilr
нижче функції. Команда створити ці змінні "Z" була просто
z <- ilr(x, 1/2)
Однією з переваг трансформації Box-Cox є її застосовність до спостережень, що включають справжні нулі: вона все ще визначається за умови, що параметр є позитивним.
Список літератури
Майкл Т. Цагріс, Саймон Престон та Ендрю Т. А. Вуд, Перетворення потужності на основі даних композиційних даних . arXiv: 1106.1451v2 [stat.ME] 16 червня 2011 р.
Девід А. Харвілл, Матрична алгебра з точки зору статистики . Springer Science & Business Media, 27 червня 2008 року.
Ось R
код.
#
# ILR (Isometric log-ratio) transformation.
# `x` is an `n` by `k` matrix of positive observations with k >= 2.
#
ilr <- function(x, p=0) {
y <- log(x)
if (p != 0) y <- (exp(p * y) - 1) / p # Box-Cox transformation
y <- y - rowMeans(y, na.rm=TRUE) # Recentered values
k <- dim(y)[2]
H <- contr.helmert(k) # Dimensions k by k-1
H <- t(H) / sqrt((2:k)*(2:k-1)) # Dimensions k-1 by k
if(!is.null(colnames(x))) # (Helps with interpreting output)
colnames(z) <- paste0(colnames(x)[-1], ".ILR")
return(y %*% t(H)) # Rotated/reflected values
}
#
# Specify a Dirichlet(alpha) distribution for testing.
#
alpha <- c(1,2,3,4)
#
# Simulate and plot compositional data.
#
n <- 1000
k <- length(alpha)
x <- matrix(rgamma(n*k, alpha), nrow=n, byrow=TRUE)
x <- x / rowSums(x)
colnames(x) <- paste0("X.", 1:k)
pairs(x, pch=19, col="#00000040", cex=0.6)
#
# Obtain the ILR.
#
y <- ilr(x)
colnames(y) <- paste0("Y.", 1:(k-1))
#
# Plot the ILR.
#
pairs(y, pch=19, col="#00000040", cex=0.6)