분포가 전력 법을 따르는 지 테스트하는 방법?


13

몇 명의 사용자가 몇 개의 질문을 게시하는지에 대한 데이터가 있습니다. 예를 들어

[UserCount, QuestionCount] 
[2, 100] 
[9, 10] 
[3, 80] 
... ...

이는 2 명의 사용자가 각각 100 개의 질문을 게시하고 9 명의 사용자가 각각 10 개의 질문을 게시하는 등을 의미합니다. 그렇다면 UserCount, QuestionCount분포가 전력 법을 따르는 지 어떻게 알 수 있습니까?

poweRlaw 패키지를 찾았습니다 . 그러나 평가를 위해 한 그룹의 숫자 만 전달할 수 있습니다. (이 패키지에 제공된 예제는 단어 빈도입니다.)이 패키지를 어떻게 사용합니까? 아니면 뭔가 잘못 되었나요? 또한 각 사용자의 질문 수에 대한 데이터가 [100, 100, 10, 10, 10 ... ]있습니다. 이 데이터를 패키지에 전달하면 무엇을 얻을 수 있습니까?


1
이 기사에서는 전력 법칙 분포와 R 코드를 테스트하는 방법에 대한 수학적 설명을 제공합니다. Clauset et al. "실증적 데이터의 전력 법 배포."
Sycorax는 Reinstate Monica

감사. 그러나 논문의 모든 내용을 따라 잡을 수는 없습니다. 유효성 검사를 수행하는 방법이 필요합니다. '단일 데이터 그룹의 의미가 패키지로 전달된다'는 아이디어가 있습니까? 이 예에서 데이터 세트는 단어 빈도입니다. 다시 감사합니다.
t 목요일

죄송합니다. 해당 패키지에 익숙하지 않습니다.
Sycorax는 Reinstate Monica

답변:


8

Clauset et al.에 따르면 poweRlaw패키지로 전력 법칙 꼬리를 테스트하는 방법입니다 .

  1. 전력 법 배포 객체를 구성합니다. 이 경우 데이터가 이산 적이므로 이산 버전의 클래스를 사용하십시오
data <- c(100, 100, 10, 10, 10 ...)
data_pl <- displ$new(data)
  1. 거듭 제곱 의 및 지수 를 추정하여 거듭 제곱 법칙에 할당 αxminα
est <- estimate_xmin(data_pl)
data_pl$xmin <- est$xmin
data_pl$pars <- est$pars

마지막 두 줄은 한 줄로 다시 쓸 수 있습니다

data_pl$xmin <- est

또한이 시점에서 KS 통계를 볼 수 있습니다.

est$KS
  1. KS 통계는 전력 법칙 분포가 데이터에 얼마나 적합한 지 알려주지 만, 데이터가 전력 법칙에서 얼마나 많이 도출되는지는 알려주지 않습니다. 따라서 값 도 필요 합니다. 이것이 당신이하는 방법입니다 :p
bs <- bootstrap_p(data_pl)
bs$p

시간이 좀 걸릴 수 있으니 차 한잔 마시고 ...

  1. 값이 0.05보다 크거나 유의 수준이 높다고 가정하면 다른 대체 분포가 전력 법칙보다 데이터에 더 적합하지 않을 가능성을 배제해야합니다. 이 패키지는 비교할 수있는 3 가지 다른 대안을 구현합니다. 예를 들어 로그 노멀을 사용하십시오.ppoweRlaw
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_distributionsxmincompcomp$test_statisticdata_plcomp$p_two_side

이 단계를 반복 disexp, dispois그 대안으로 전원 법을 비교하는 클래스.


@Clivele 부탁드립니다. 데이터의 독립 사례를 포함시킬 수 있습니까? 데이터를 테스트하는 데 문제가있어서 실행중인 예제를 고맙게 생각합니다. 감사합니다. 귀하의 게시물이 매우 고무적입니다!
maycca

1
소개 와 같이 예제 대신 명령을 입력 data("moby")하고 사용할 수 있습니다.mobydata
Zebra Propulsion Lab
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.