종단 데이터 중에서 그룹화 (궤도)를 찾는 방법은 무엇입니까?


11

문맥

질문을 다소 확장하기 전에 장면을 설정하고 싶습니다.

나는 약 3 개월마다 피험자에 대해 측정 한 세로 데이터를 가지고 있으며, 1 차 결과는 5에서 14 사이의 숫자 (연속 1dp에서와 같이)는 7에서 10 사이의 벌크 (모든 데이터 포인트 중)입니다. 스파게티 플롯 (x 축의 나이와 각 사람의 선이있는)은 1500 개가 넘는 과목이있을 때 분명히 엉망이지만 나이가 들수록 더 높은 값을 향한 명확한 발판이 있습니다 (이는 알려져 있습니다).

더 넓은 질문 : 우리가하고 싶은 것은 먼저 트렌드 그룹 (높은 시작하고 높은 유지하는 그룹, 낮은 시작하고 낮은 유지 그룹, 낮은 시작 및 높은 그룹 등)을 식별하고 '트렌드 그룹'멤버십과 관련된 개별 요인을 살펴보십시오.

내 질문은 구체적으로 트렌드에 의한 그룹화의 첫 번째 부분과 관련이 있습니다.

질문

  • 개별 종단 궤도를 어떻게 그룹화 할 수 있습니까?
  • 이를 구현하기에 적합한 소프트웨어는 무엇입니까?

SAS와 M-Plus의 Proc Traj를 살펴보고 있는데 동료가 제안했지만 다른 사람들의 생각이 무엇인지 알고 싶습니다.


1
그것은 시작에 불과하지만 아마도이 질문에 대한 답을 확인하십시오 : stats.stackexchange.com/questions/2777/…
Jeromy Anglim

감사합니다 Jeromy, kml 옵션은 흥미 롭습니다 .R에있는 아이디어가 마음에 들지만 '방문 1'과는 달리 방문 기간이 다른 연령대가 주어지면 데이터와 함께 프레임 워크를 사용할 수 있는지 확실하지 않습니다. '등 2을 방문하여 다른 사람이 50있는 반면 일부는 10 명 방문이 + ...
nzcoops

kml 패키지 확인 -필요한 기능을 제공하는 것 같습니다. JoSS의 용지 에 자세히 설명되어 있습니다. 또한 kml3d& kmlShape관심이있을 수 있습니다.
radek

답변:


11

시간 코스 마이크로 어레이 데이터 세트를 클러스터링하기 위해 RMfuzz 를 사용했습니다 . Mfuzz는 "소프트 클러스터링"을 사용합니다. 기본적으로 개인은 둘 이상의 그룹에 나타날 수 있습니다.

주석에서 @Andy가 지적했듯이 원본 용지는 CTN 데이터를 사용합니다. 그러나 개별 데이터에 대해 제대로 작동해야한다고 생각합니다. 특히 데이터 세트를 탐색하기 때문입니다. 다음은 R의 간단한 예입니다.

##It's a bioconductor package
library(Mfuzz)
library(Biobase)

## Simulate some data
## 6 time points and 90 individuals
tps = 6;cases = 90
d = rpois(tps*cases, 1)  ##Poisson distribution with mean 1
m = matrix(d, ncol=tps, nrow=cases)

##First 30 individuals have increasing trends
m[1:30,] = t(apply(m[1:30,], 1, cumsum))

##Next 30 have decreasing trends
##A bit hacky, sorry
m[31:60,] = t(apply(t(apply(m[31:60,], 1, cumsum)), 1, rev))

##Last 30 individuals have random numbers from a Po(1)

##Create an expressionSet object
tmp_expr = new('ExpressionSet', exprs=m)

##Specify c=3 clusters
cl = mfuzz(tmp_expr, c=3, m=1.25)
mfuzz.plot(tmp_expr,cl=cl, mfrow=c(2, 2))

다음과 같은 줄거리를 제공합니다.

버즈 클러스터링


참조 주셔서 감사합니다, 나는 이것을 전에 오지 않았다. OP가 언급했듯이이 클러스터링 알고리즘이 적은 수의 분산 데이터에 적합합니까 (또는 이분법 데이터)? 참고 문헌 (Futschik & Carlisle 2005)은 데이터를 연속 데이터로 사용했습니다.
앤디 W

@ 앤디 : 좋은 지적입니다. 빠른 시뮬레이션을 포함 시켰습니다. 모든 것이 정상인 것처럼 보이지만보다 최적의 솔루션이있을 수 있습니다.
csgillespie

감사합니다 @csgillespie는 이것을 시도해 볼 것입니다. 그건 그렇고, 내 데이터는 불 연속적이지 않습니다. 질문이 충분히 명확하지 않은지 또는 대답에 오타인지 확실하지 않습니까? Mfuzz를 설치하려면 R을 롤백해야 재미가 시작됩니다.
nzcoops

@csgillespie-이것은 매우 시원합니다. 나는 실제 데이터로 지금 놀고 있습니다. 그룹 수를 추정 할 수있는 방법이 있는지 알고 있습니까?
매크로

4

필요한 작업을 수행 할 수있는 MPLUS 패키지가있을 것으로 기대합니다. Psychometrika에는 거의이 주제에 관한 논문이 있습니다

springerlink.com/content/25r110007g417187

데이터가 이진이고 궤도가 확률 궤도임을 제외하고. 저자는 잠재 클래스 분석 (벌칙 유한 혼합 모델을 사용하여 구현)을 사용하여 궤적을 그룹화합니다. 또한 첫 번째 저자는 10 년 전 비슷한 환경 (궤도 포함)에서 잠재 클래스 분석에 대해 Bengt Muthen (MPLUS 제작자)과 함께 다른 논문을 썼습니다. 예를 들어

http://onlinelibrary.wiley.com/doi/10.1111/j.0006-341X.1999.00463.x/abstract

결과가 이진이라는 점을 제외하면 말하고있는 것과 매우 유사하게 들립니다. 연속적인 경우는 훨씬 간단하므로, 이전에 문헌 검색 (즉,이 논문이 참조하는 논문을 살펴보십시오)을 수행하여보다 정확하게 설명한 내용과 일치하는 것을 찾습니다.

자세한 내용을 알아 보려면 MPLUS 소유주에게 직접 필요한 패키지를 사용해야하는 패키지를 요청할 수 있습니다. 그들은 일반적으로 반응이 매우 빠르며 매우 도움이됩니다.

http://www.statmodel.com/cgi-bin/discus/discus.cgi

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.