2017-05-03 1 views
2

R을 사용하여 네트워크의 차수 분포가 스케일없는 특성을 갖는 지수 법칙처럼 동작하는지 테스트하고 싶습니다. 그럼에도 불구하고 여러 가지 다른 방법으로이 작업을 수행하는 사람들을 읽었으며, 혼란스러운 점 중 하나는 모델에서 사용해야하는 입력입니다.네트워크의 지수 분포에 적합한 입력

저는 예를 들어 바라바시가 강세를 '보완 누적 분포'인 도수 (see Advanced Topic 3.B of chapter 4, figure 4.22에 맞추도록 권장했습니다. 그러나 사람들이 그래프의 차수에 승수 법칙을 적용한 것을 보았습니다. (igraph::degree(g)으로 얻음) 저는 또한 다음과 같이 얻어진 확률 분포를 구하기 위해 다음과 같이 구한 확률 법칙을 구했습니다. igraph::degree_distribution(g, cumulative = T)

아래의 재현 가능한 예제에서 볼 수 있듯이이 두 옵션은 매우 다른 결과를 제공합니다. 어느 것이 옳은가요? 다른 말로하면, 그래프에서 "보완적인 누적 누계 분포"를 얻으면 어떻게 권력 법을 적용 할 수 있습니까?

library(igraph) 

# create a graph 
    set.seed(202) 
    g <- static.power.law.game(500, 1000, exponent.out= 2.2, exponent.in = 2.2, loops = FALSE, multiple = T) 

# get input to fit power-law. 

    # 1) degrees of the nodes 
    d <- degree(g, v = V(g), mode ="all") 
    d <- d[ d > 0] # remove nodes with no connection 

    # OR ? 

    # 2) cumulative degree distribution 
    d <- degree_distribution(g, mode ="all", cumulative = T) 

# Fit power law 
    fit <- fit_power_law(d, impelementation = "R.mle") 

답변

2

여기 2 가지 통계가 있습니다. 노드의 차수는 다른 노드에 대한 연결 수를 나타냅니다. 학위 분포는 네트워크를 통한 해당 학위의 확률 분포입니다.

나에겐 학위 분포가 이미 특정 위력 법칙이기 때문에 학위 분포에 igraph::fit_power_law을 적용하는 것은별로 의미가 없습니다.

그러나 igraph::fit_power_law에는 구현 인수보다 더 많은 옵션이 있으며, 이는 "먹이를 먹이는"것에 따라 다른 결과를 초래한다는 것을 잊지 마십시오.