Clauset ve arkadaşlarına göre, güç yasası kuyruğunu poweRlaw
paketle şu şekilde test edersiniz :
- Güç hukuku dağıtım nesnesini oluşturun. Bu durumda verileriniz ayrık olduğundan, sınıfın ayrık sürümünü kullanın
data <- c(100, 100, 10, 10, 10 ...)
data_pl <- displ$new(data)
- Güç yasasının ve üs değerini tahmin edin ve bunları güç yasası nesnesine atayın αxminα
est <- estimate_xmin(data_pl)
data_pl$xmin <- est$xmin
data_pl$pars <- est$pars
son iki satır bir satır olarak yeniden yazılabilir
data_pl$xmin <- est
Ayrıca, bu noktada KS istatistiğini görebilirsiniz:
est$KS
- KS istatistiği, güç yasası dağıtımının verilerinize ne kadar iyi uyduğunu söyler, ancak verilerinizin güç yasasından ne kadar çekildiğini söylemez. Yani değerine de ihtiyacınız var . Bunu şu şekilde yapabilirsiniz:p
bs <- bootstrap_p(data_pl)
bs$p
Bu biraz zaman alabilir, bu yüzden git ve bir fincan çay al ...
- Bir değeri aldığınızı ve bunun 0.05'ten büyük olduğunu veya önemli seviyeniz ne olursa olsun, başka hiçbir alternatif dağıtımın verilere güç yasalarından daha iyi uyma olasılığını hariç tutmanız gerekir. Paket ile mukayese edebilmek 3 diğer alternatifleri uygular. Örneğin log-normal'i ele alalım: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)
O Not çünkü log-normal dağılım, güç yasasının olarak ayarlanır işlevi gerektiren Her iki dağılımlar için aynı olması bu. Nesne ilginç iki alan vardır: bir pozitif sayı anlamı ile daha iyi bir uyum, hangi gösterir aksi iyidir ve negatif; yani fark ne kadar önemli. x m i nxmincompare_distributions
xmincomp
comp$test_statistic
data_pl
comp$p_two_side
İle bu adımı yineleyin disexp
, dispois
bu alternatiflerle güç kanunu karşılaştırmak için sınıflar.