mat_pages []에 열 (클러스터 화하려는)의 페이지와 행의 개인이 포함되어 있다고 가정합니다. 다음 명령을 사용하여 Rby의 개별 데이터를 기반으로 페이지를 클러스터링 할 수 있습니다.
pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)
로딩 행렬은 데이터의 SVD 분해의 고유 벡터 행렬입니다. 점수 계산에서 각 PAGE의 상대적 가중치를 제공합니다. 절대 값이 더 큰 하중은 해당 기본 구성 요소의 점수를 결정하는 데 더 많은 영향을 미칩니다.
그러나 PCA를 사용하여 페이지를 클러스터링 할 때의 단점 도 지적해야 합니다. 그 이유는이 변형이 실제로 PAGE 내용 때문인지 또는 다른 이유 (기술적이거나 개별적인 변형 일 수 있음)에 관계없이 로딩이 PAGES에 더 큰 가중치를 부여하기 때문입니다. 하중이 그룹 간의 실제 차이를 반드시 반영하는 것은 아니며, 이는 아마도 귀하의 주요 관심사 일 것입니다. 그러나이 클러스터링은 모든 페이지가 동일한 분산을 갖는다는 가정하에 그룹의 차이점을 실제로 반영합니다 (이것이 유효한 가정인지는 모르겠습니다).
강력한 컴퓨팅 기능이있는 경우 (데이터 크기에 따라 가능할 수 있음) 계층 적 모델을 사용하는 것이 좋습니다. R에서는 lme4 패키지를 사용하여 수행 할 수 있습니다.
당신은 점수를 얻은 후 무엇을합니까?
이것은 조잡한 제안이며 분석은 데이터의 모양에 크게 좌우됩니다. 또한,이 프로세스는 보유하고있는 규모의 데이터를 그룹화하는 것이 불가능할 것이라고 생각합니다.
pc.col <- paste("page", 1:27000, sep=".")
pdf("principle-components.pdf")
plot(pc$x[,1:2]) ## Just look at the 1st two loadings (as you can see the groupings in a plane)
dev.off()
바라건대, 이것은 데이터가 어떻게 그룹화되는지에 대한 그림을 줄 수 있습니다.
경고 : 이것은 내가 권장하지 않습니다.
내 추천 :
이러한 문제는 유전체학에서 자주 발생합니다.이 경우 페이지는 유전자에 해당하고 개인은 환자에 해당합니다 (기본적으로 개인은 유전체학에서와 동일한 의미를 갖습니다)
데이터를 기반으로 페이지를 클러스터링하려고합니다.
R에서 많은 클러스터링 패키지를 사용할 수 있으며 다른 답변에서 지적되었습니다. 패키지의 근본적인 문제는 hclust와 비슷하지만 클러스터 수를 결정하는 방법입니다. 내가 좋아하는 몇 가지는 다음과 같습니다.
- pvclust은 (당신이 클러스터를 제공하며 각 클러스터에 대한 p- 값을 제공하는 p- 값은 당신이 통계적으로 유의 한 클러스터를 확인할 수 있습니다 사용.. 문제가 : 연산 능력이 많이 필요하고의 데이터로 작업 할 경우 나는 확실하지 않다 당신의 크기)
- hopach (예상 클러스터 수와 클러스터 수)
- Bioconductor에 사용 가능한 다른 패키지가있는 경우 작업보기에서 해당 패키지를 확인하십시오.
k-means 등과 같은 클러스터링 알고리즘을 사용할 수도 있습니다.이 포럼에서 클러스터링에 대한 스레드를 보았습니다. 답은 매우 상세했습니다. Tal Galili가 올바르게 기억하는지 묻습니다.