Clauset et al.에 따르면 poweRlaw
패키지로 전력 법칙 꼬리를 테스트하는 방법입니다 .
- 전력 법 배포 객체를 구성합니다. 이 경우 데이터가 이산 적이므로 이산 버전의 클래스를 사용하십시오
data <- c(100, 100, 10, 10, 10 ...)
data_pl <- displ$new(data)
- 거듭 제곱 의 및 지수 를 추정하여 거듭 제곱 법칙에 할당 αxminα
est <- estimate_xmin(data_pl)
data_pl$xmin <- est$xmin
data_pl$pars <- est$pars
마지막 두 줄은 한 줄로 다시 쓸 수 있습니다
data_pl$xmin <- est
또한이 시점에서 KS 통계를 볼 수 있습니다.
est$KS
- KS 통계는 전력 법칙 분포가 데이터에 얼마나 적합한 지 알려주지 만, 데이터가 전력 법칙에서 얼마나 많이 도출되는지는 알려주지 않습니다. 따라서 값 도 필요 합니다. 이것이 당신이하는 방법입니다 :p
bs <- bootstrap_p(data_pl)
bs$p
시간이 좀 걸릴 수 있으니 차 한잔 마시고 ...
- 값이 0.05보다 크거나 유의 수준이 높다고 가정하면 다른 대체 분포가 전력 법칙보다 데이터에 더 적합하지 않을 가능성을 배제해야합니다. 이 패키지는 비교할 수있는 3 가지 다른 대안을 구현합니다. 예를 들어 로그 노멀을 사용하십시오.p
poweRlaw
data_alt <- dislnorm$new(data)
data_alt$xmin <- est$xmin
data_alt$pars <- estimate_pars(data_alt)
comp <- compare_distributions(data_pl, data_alt)
로그 정규 분포 의 은 거듭 제곱 법 의 으로 설정됩니다. 함수는 두 분포 모두에 대해 이 같아야하기 때문입니다. 객체는 흥미로운 두 개의 필드가 있습니다 : 하나는 양수의 의미를 더 잘 맞는이, 어떤 표시 , 그렇지 않으면 더 나은, 그리고 부정적인; 차이가 얼마나 중요한지를 의미합니다. x m i nxmincompare_distributions
xmincomp
comp$test_statistic
data_pl
comp$p_two_side
이 단계를 반복 disexp
, dispois
그 대안으로 전원 법을 비교하는 클래스.