2013-03-12 1 views
3

저는 R 초보자이지만 Esri의 ArcGIS를 사용하는 전문가입니다.ArcGIS 10.1에서 그룹화 분석 도구를 모방 한 R 함수가 있습니까?

저는 R을 사용하여 Arc의 10.1 도구 here과 같은 탐색 적 그룹화/클러스터 분석을 실행하고 싶습니다.

필요한 최종 제품은지도 시각화 여야합니다. 나는 여기에 this thread on hierarchical cluster analysis을 찾았습니다. Esri의 데이터 그룹 분석과 동일한 유형입니까? ArcGIS 도구는 매개 변수에 많은 유연성을 제공하며이 기능을 R로 복제하려고합니다.

다시 말하지만, 저는 초보자입니다. 모든 정보, 제안 또는 조언을 많이 주시면 감사하겠습니다.

감사합니다, 마이크

+2

안녕하세요. 마이크, 안녕하세요. 나는 당신이 좀 더 자세하게 설명 할 필요가 있다고 생각한다. 이미 시도한 것, 즉 코드를 게시하는 것, 그리고 예제를 만들면 여전히 더 큰 가능성을 보여 주면 누군가를 도와 줄 수있는 더 큰 기회가됩니다 (http://stackoverflow.com/). q/5963269/1478381). 느슨하게 문구를 넣을 수있는 질문은 * 이것을하기위한 코드를 작성하는 방법은 여기에서 그렇게 잘하지 않는 경향이 있습니다. 그냥 머리를 올려. –

+2

'NO_SPATIAL_CONSTRAINT가 지정되면 그룹화 분석 도구는 K 평균 알고리즘을 사용합니다 .' ArcGIS 도움말에서 .... 따라서 k-means-clustering을 살펴보십시오. – EDi

+0

Simon의 머리를 주셔서 감사합니다. 현재 현재 문제를 해결하고 있으며 곧 재현 할 수있는 내용을 게시하려고합니다. 하지만 저는 R 초심자이기 때문에 클러스터 분석이 모방하려고하는 GIS를 재현 할 수있는 일종의 유효성 검사를 받기를 희망했습니다. – mikeLdub

답변

3

나는 이것이 단순한 KNN 분석이라고 말할 수 있습니다. ESRI 도움말이 설명하는 대안 인 "no distance matrix"구성 요소는 상당히 바람직하지 않은 것처럼 보입니다. 기본적으로 랜덤 시드를 사용하는 영역 성장 접근법을 사용하는 K-means 클러스터링을 사용합니다. 이것은 매우 불안정하고 매우 가변적 인 결과를 반환 할 수 있습니다. 단절된 지역과 같은 일부 문제를 피하기 위해 약간의 기동을 수행하는 것처럼 보이므로 결과를 정확히 재현하는 데 어느 정도 시간이 걸릴 수 있습니다. 당신은 spdep에서 "공간 제약"옵션을 근사시킬 수 있습니다. 다음은 시작점을 제공 할 거리 분석의 간단한 예입니다. "클래스"를 지정하려면 몇 가지 유형의 루핑 구조를 설정해야합니다.

require(sp) 
require(spdep) 

data(meuse) 
coordinates(meuse) <- ~x+y 

# Create distance matrix of specified range 
meuse.dist <- dnearneigh(coordinates(meuse), 0.0001, 1000) 

# Coerce distance object to a list object with distances for each observation 
dist.list <- nbdists(meuse.dist, coordinates(meuse)) 

# Create a new column with the distance to the nearest observation using lapply and unlist 
[email protected] <- data.frame([email protected], NNDist=unlist(lapply(dist.list, FUN=function(x) min(x)))) 

# Plot results 
spplot(meuse, "NNDist", col.regions=colorRampPalette(c("blue","yellow","red"), 
     interpolate="spline")(10) ) 

계층 적 클러스터링을 탐색 할 수도 있습니다. 그러나 더 큰 데이터 세트의 경우 hclust는 삼각형 거리 매트릭스를 필요로하지만 dnearneigh는 삼각형 거리 매트릭스를 필요로합니다. 다음은 제한된 계층 적 클러스터링을 사용하는 예입니다.

# SPATIALLY CONSTRAINED CLUSTERING 
require(sp) 
require(rioja) 

data(meuse) 
    coordinates(meuse) <- ~x+y 
    cdat <- data.frame(x=coordinates(meuse)[,1],y=coordinates(meuse)[,2]) 
     rownames(cdat) <- rownames([email protected]) 

chc <- chclust(dist(cdat), method="conslink") 

# KNN 
    chc.n3 <- cutree(chc, k=3) 

# DISTANCE 
    chc.d200 <- cutree(chc, h=200) 

[email protected] <- data.frame([email protected], KNN=as.factor(chc.n3), DClust=chc.d200) 

opar <- par 
    par(mfcol=c(1,2)) 
    cols <- topo.colors(length(unique([email protected]$KNN))) 
    color <- rep("xx", nrow([email protected])) 
     for(i in 1:length(unique([email protected]$KNN))) { 
     v <- unique([email protected]$KNN)[i] 
      color[([email protected]$KNN == v)] <- cols[i] 
     } 
    plot(meuse, col=color, pch=19, main="KNN Clustering") 

    cols <- topo.colors(length(unique([email protected]$DClust))) 
    color <- rep("xx", nrow([email protected])) 
     for(i in 1:length(unique([email protected]$DClust))) { 
     v <- unique([email protected]$DClust)[i] 
      color[([email protected]$DClust == v)] <- cols[i] 
     } 
    plot(meuse, col=color, pch=19, main="Distance Clustering") 
par <- opar 
+0

제프의 도움에 감사드립니다. 나는 너에게 돌아가서 어떻게되는지 알려줄거야. – mikeLdub

+0

@mikeLdub, 저는 ESRI가 벤치 마크에서 제공하는 것을 사용하지 않을 것입니다. 나는 "공간 통계"도구 상자에 매우 만족하지 못했습니다. 방법 론적 구현의 많은 부분이 최적보다 적거나 결함이 없습니다. 이러한 유형의 분석을 위해 R을 바라 보는 것은 매우 좋은 생각입니다. –