Làm thế nào để thực hiện chuyển đổi tỷ lệ log-isometric


17

Tôi có dữ liệu về các hành vi di chuyển (thời gian ngủ, ít vận động và hoạt động thể chất) tổng cộng khoảng 24 (như tính theo giờ mỗi ngày). Tôi muốn tạo một biến số nắm bắt thời gian tương đối dành cho mỗi hành vi này - Tôi đã được thông báo rằng một phép biến đổi tỷ lệ log-isometric sẽ thực hiện điều này.

Có vẻ như tôi nên sử dụng hàm ilr trong R, nhưng không thể tìm thấy bất kỳ ví dụ thực tế nào có mã. Tôi bắt đầu từ đâu?

Các biến tôi có là thời gian ngủ, thời gian ít vận động trung bình, hoạt động thể chất nhẹ trung bình, hoạt động thể chất trung bình trung bình và hoạt động thể chất mạnh mẽ trung bình. Giấc ngủ được tự báo cáo, trong khi những người khác là trung bình từ những ngày dữ liệu gia tốc hợp lệ. Vì vậy, đối với các biến này, các trường hợp không tổng hợp chính xác đến 24.

Tôi đoán: Tôi đang làm việc tại SAS, nhưng có vẻ như R sẽ dễ sử dụng hơn cho phần này. Vì vậy, đầu tiên nhập dữ liệu chỉ với các biến quan tâm. Sau đó sử dụng hàm acomp (). Sau đó, tôi không thể tìm ra cú pháp cho hàm ilr (). Bất kì sự trợ giúp nào đều được đánh giá cao.

Câu trả lời:


21

Phép biến đổi ILR (Isometric Log-Ratio) được sử dụng trong phân tích dữ liệu thành phần. Bất kỳ quan sát nào cũng là một tập hợp các giá trị dương tổng hợp thành sự thống nhất, chẳng hạn như tỷ lệ hóa chất trong hỗn hợp hoặc tỷ lệ của tổng thời gian dành cho các hoạt động khác nhau. Bất biến tổng hợp thống nhất ngụ ý rằng mặc dù có thể có các thành phần cho mỗi quan sát, nhưng chỉ có các giá trị độc lập về chức năng . (Về mặt hình học, các quan sát nằm trên một đơn giản hai chiều trong không gian Euclide -dimensional . Bản chất đơn giản này được biểu hiện trong các hình tam giác của các biểu đồ phân tán dữ liệu được mô phỏng bên dưới.)k2k1k1kRk

Thông thường, các bản phân phối của các thành phần trở nên "đẹp hơn" khi chuyển đổi nhật ký. Phép biến đổi này có thể được thu nhỏ bằng cách chia tất cả các giá trị trong một quan sát cho giá trị trung bình hình học của chúng trước khi lấy các bản ghi. (Tương đương, nhật ký của dữ liệu trong bất kỳ quan sát nào đều được căn giữa bằng cách trừ đi giá trị trung bình của chúng.) Điều này được gọi là phép biến đổi "Tỷ lệ log trung tâm" hoặc CLR. Các giá trị kết quả vẫn nằm trong một siêu phẳng trong , vì tỷ lệ làm cho tổng số các bản ghi bằng không. ILR bao gồm việc chọn bất kỳ cơ sở trực giao nào cho siêu phẳng này: tọa độ của mỗi quan sát được chuyển đổi trở thành dữ liệu mới của nó. Tương đương, siêu phẳng được quay (hoặc phản xạ) trùng với mặt phẳng có biến mấtRkk1kth k-1tọa độ và người ta sử dụng tọa độ đầu tiên . (Vì các phép quay và phản xạ giữ khoảng cách chúng là các hình học , từ đó tên của thủ tục này.)k1

Tsagris, Preston và Wood nói rằng "một lựa chọn tiêu chuẩn của [ma trận xoay vòng] là ma trận con Helmert thu được bằng cách loại bỏ hàng đầu tiên khỏi ma trận Helmert."H

Ma trận Helmert của thứ tự được xây dựng một cách đơn giản (ví dụ, xem Harville trang 86). Hàng đầu tiên của nó là tất cả s. Hàng tiếp theo là một trong những hàng đơn giản nhất có thể được tạo trực giao cho hàng đầu tiên, cụ thể là . Hàng là một trong những hàng đơn giản nhất trực giao với tất cả các hàng trước: các mục đầu tiên của nó là s, đảm bảo nó trực giao với các hàng và mục nhập được đặt thành để làm cho nó trực giao với hàng đầu tiên (nghĩa là các mục nhập của nó phải bằng 0). Tất cả các hàng sau đó được định cỡ lại theo đơn vị chiều dài.k1(1,1,0,,0)jj112,3,,j1jth1j

Ở đây, để minh họa cho mẫu, là ma trận Helmert trước khi các hàng của nó được định cỡ lại:4×4

(1111110011201113).

(Chỉnh sửa thêm vào tháng 8 năm 2017) Một khía cạnh đặc biệt tốt đẹp của những "tương phản" này (được đọc theo từng hàng) là tính dễ hiểu của chúng. Hàng đầu tiên được loại bỏ, để lại các hàng còn lại để biểu thị dữ liệu. Hàng thứ hai tỷ lệ với sự khác biệt giữa biến thứ hai và biến thứ nhất. Hàng thứ ba tỷ lệ với sự khác biệt giữa biến thứ ba và hai biến đầu tiên. Nói chung, hàng ( ) phản ánh sự khác biệt giữa biến và tất cả các biến đứng trước nó, các biến . Điều này để lại biến đầu tiênk1j2jkj1,2,,j1j=1như một "cơ sở" cho tất cả các tương phản. Tôi đã thấy những diễn giải này hữu ích khi tuân theo ILR theo Phân tích thành phần chính (PCA): nó cho phép các tải trọng được diễn giải, ít nhất là về mặt so sánh giữa các biến ban đầu. Tôi đã chèn một dòng vào việc Rthực hiện ilrbên dưới để cung cấp cho các biến đầu ra tên phù hợp để giúp giải thích. (Kết thúc chỉnh sửa.)

Rcung cấp một hàm contr.helmertđể tạo các ma trận như vậy (mặc dù không có tỷ lệ và với các hàng và cột bị phủ định và hoán vị), bạn thậm chí không phải viết mã (đơn giản) để làm điều đó. Sử dụng điều này, tôi đã triển khai ILR (xem bên dưới). Để thực hiện và kiểm tra nó, tôi đã tạo ra vẽ độc lập từ bản phân phối Dirichlet (với các tham số ) và vẽ sơ đồ ma trận phân tán của chúng. Ở đây, .10001,2,3,4k=4

Hình 1

Tất cả các điểm đóng cục gần các góc dưới bên trái và điền vào các miếng vá hình tam giác của các khu vực âm mưu của chúng, như là đặc trưng của dữ liệu thành phần.

ILR của họ chỉ có ba biến, một lần nữa được vẽ như một ma trận phân tán:

Hình 2

Điều này thực sự trông đẹp hơn: các biểu đồ tán xạ đã thu được các hình dạng "đám mây hình elip" đặc trưng hơn, phù hợp hơn với các phân tích bậc hai như hồi quy tuyến tính và PCA.

Tsagris và cộng sự. khái quát hóa CLR bằng cách sử dụng phép biến đổi Box-Cox, tổng quát hóa logarit. (Nhật ký là một phép biến đổi Box-Cox với tham số ) Nó rất hữu ích bởi vì, như các tác giả (chính xác là IMHO) lập luận, trong nhiều ứng dụng, dữ liệu phải xác định phép biến đổi của chúng. Đối với những dữ liệu Dirichlet này, tham số (nằm giữa nửa không chuyển đổi và chuyển đổi nhật ký) hoạt động rất đẹp:01/2

Hình_3

"Đẹp" đề cập đến mô tả đơn giản mà hình ảnh này cho phép: thay vì phải chỉ định vị trí, hình dạng, kích thước và hướng của từng đám mây điểm, chúng ta chỉ cần quan sát rằng (với một xấp xỉ xuất sắc) tất cả các đám mây đều có hình tròn với bán kính tương tự . Trên thực tế, CLR đã đơn giản hóa một mô tả ban đầu yêu cầu ít nhất 16 số thành một số chỉ cần 12 số và ILR đã giảm xuống chỉ còn bốn số (ba vị trí đơn và một bán kính), với giá chỉ định tham số ILR là - một số thứ năm. Khi sự đơn giản hóa đáng kể như vậy xảy ra với dữ liệu thực, chúng ta thường hình dung chúng ta đang làm gì đó: chúng ta đã thực hiện một khám phá hoặc đạt được một cái nhìn sâu sắc.1/2


Tổng quát hóa này được thực hiện trong ilrchức năng dưới đây. Lệnh tạo ra các biến "Z" này chỉ đơn giản là

z <- ilr(x, 1/2)

Một lợi thế của phép biến đổi Box-Cox là khả năng áp dụng các quan sát bao gồm các số 0 thực: nó vẫn được xác định với điều kiện tham số là dương.

Người giới thiệu

Michail T. Tsagris, Simon Preston và Andrew TA Wood, Một chuyển đổi sức mạnh dựa trên dữ liệu cho dữ liệu thành phần . arXiv: 1106.1451v2 [stat.ME] 16 tháng 6 năm 2011.

David A. Harville, Đại số ma trận từ quan điểm của một nhà thống kê . Springer Science & Business Media, ngày 27 tháng 6 năm 2008.


Đây là Rmã.

#
# 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)

1
@Alex Tôi không hiểu ý của bạn về tương quan "giả". Đúng, các biến phải phụ thuộc - nhưng công việc của PCA là giúp bạn mô tả và định lượng các phụ thuộc đó. Cũng lưu ý rằng tổng của CLR không phải là hằng số (mặc dù CLR dựa trên các giá trị tổng hợp với nhau).
whuber

1
@Alex Tại sao không chỉ nghiên cứu đầu ra PCA? Nếu nó phức tạp và bạn muốn tập trung vào chỉ hai biến, thì hãy thực hiện PCA của hai biến đó. Một biểu đồ tán xạ của chúng sẽ tiết lộ bản chất và mức độ của bất kỳ sự cộng tác nào.
whuber

1
@Alex Chắc chắn - đó là lý do tại sao tôi sử dụng biểu đồ phân tán trong câu trả lời này để minh họa cho ILR!
whuber

2
@Alex Đó là một trích dẫn thú vị. Nó dường như phản ánh một triết lý bay vào mặt EDA (trong số những thứ khác), điều này cho thấy rằng khi người ta có thể tìm thấy một biểu hiện lại của các biến tạo ra các mối quan hệ hữu ích hoặc thông tin, đó là một điều tốt, không phải là vấn đề. Những người ủng hộ EDA (như John Tukey) cho rằng hình thức mà dữ liệu ban đầu được thể hiện không nhất thiết là hình thức mà chúng cần được phân tích, trong khi trích dẫn này hoàn toàn giả sử ngược lại. Tôi sẽ để nó cho bạn quyết định cách tiếp cận hữu ích hơn.
whuber

1
@Eli Nhận xét đó nhằm mục đích tham khảo CLR tổng quát. Như tôi đã viết trong phần thân của câu trả lời này, "tỷ lệ làm cho tổng số các bản ghi bằng không."
whuber

5

Đối với trường hợp sử dụng của bạn, có thể chỉ cần thu nhỏ mọi thứ xuống một. Thực tế các con số không cộng chính xác đến 24 sẽ tạo thêm một chút nhiễu cho dữ liệu, nhưng nó không nên làm mọi thứ rối tung lên nhiều như vậy.

RD1D

Tất cả các chi tiết kỹ thuật sang một bên, điều quan trọng là phải biết cách diễn giải đúng dữ liệu chuyển đổi ilr. Cuối cùng, biến đổi ilr chỉ đề cập đến tỷ lệ log của các nhóm. Nhưng nó định nghĩa nó liên quan đến một số thứ bậc được xác định trước. Nếu bạn xác định một hệ thống phân cấp như sau

nhập mô tả hình ảnh ở đây

mỗi biến được chuyển đổi có thể được tính là

bi=rsr+slng(Ri)g(Si)

iRiiSiig(...)

Vì vậy, câu hỏi tiếp theo là, làm thế nào để bạn xác định thứ bậc của các biến? Điều này thực sự tùy thuộc vào bạn, nhưng nếu bạn có ba biến, sẽ không có quá nhiều kết hợp để gây rối. Chẳng hạn, bạn chỉ có thể định nghĩa thứ bậc là

                        /-A
            /(A|B)-----|
-(AB|C)----|            \-B
           |
            \-C

ABC(A|B)A B12lnAB(AB|C)ABC23lnABC

Nhưng trở lại câu hỏi ban đầu của bạn, làm thế nào bạn có thể sử dụng thông tin này để thực sự chuyển đổi ilr?

Nếu bạn đang sử dụng R, tôi sẽ kiểm tra gói tác phẩm

Để sử dụng gói đó, bạn sẽ cần hiểu cách tạo phân vùng nhị phân tuần tự (SBP), đó là cách bạn xác định cấu trúc phân cấp. Đối với hệ thống phân cấp được xác định ở trên, bạn có thể biểu diễn SBP với ma trận sau.

        A  B  C
(A|B)   1 -1  0
(AB|C)  1  1 -1

trong đó các giá trị dương biểu thị các biến trong tử số, các giá trị âm biểu thị các biến trong mẫu số và các số 0 biểu thị sự vắng mặt của biến đó trong số dư. Bạn có thể xây dựng cơ sở trực giao bằng cách sử dụng balanceBasetừ SBP mà bạn đã xác định.
Một khi bạn có điều này, bạn sẽ có thể vượt qua trong bảng tỷ lệ của bạn cùng với cơ sở mà bạn đã tính toán ở trên.

Tôi muốn xem tài liệu tham khảo này để biết định nghĩa ban đầu về số dư


4

Các bài viết ở trên trả lời các câu hỏi về làm thế nào để xây dựng một cơ sở ILR và nhận số dư ILR của bạn. Để thêm vào đó, lựa chọn cơ sở có thể dễ dàng giải thích các kết quả của bạn.

Bạn có thể quan tâm đến một phân vùng phân vùng sau:

(1) (ngủ, ít vận động | vật lý) (2) (ngủ | ít vận động).

Vì bạn có ba phần trong thành phần của mình, bạn sẽ có được hai số dư ILR để phân tích. Bằng cách thiết lập phân vùng như trên, bạn có thể có được số dư tương ứng với "hoạt động hay không" (1) và "hình thức không hoạt động" (2).

Nếu bạn phân tích riêng từng số dư ILR, ví dụ như thực hiện hồi quy theo thời gian trong ngày hoặc thời gian trong năm để xem có bất kỳ thay đổi nào không, bạn có thể diễn giải kết quả theo các thay đổi trong "hoạt động hay không" và thay đổi trong "hình thức không hoạt động".

Mặt khác, nếu bạn sẽ thực hiện các kỹ thuật như PCA có được cơ sở mới trong không gian ILR, kết quả của bạn sẽ không phụ thuộc vào lựa chọn phân vùng của bạn. Điều này là do dữ liệu của bạn tồn tại trong không gian CLR, mặt phẳng D-1 trực giao với một vectơ và cân bằng ILR là các lựa chọn khác nhau của các trục định mức đơn vị để mô tả vị trí của dữ liệu trên mặt phẳng CLR.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.