ตามที่ Clauset et al. นี่คือวิธีที่คุณทดสอบหางกฎหมายพลังงานด้วยpoweRlaw
แพ็คเกจ:
- สร้างวัตถุการกระจายกฎหมายพลังงาน ในกรณีนี้ข้อมูลของคุณไม่ต่อเนื่องดังนั้นให้ใช้คลาสต่อเนื่องของคลาส
data <- c(100, 100, 10, 10, 10 ...)
data_pl <- displ$new(data)
- ประมาณค่าและเลขชี้กำลังของกฎกำลังและกำหนดให้วัตถุทางกฎหมายกำลัง αxm ฉันnα
est <- estimate_xmin(data_pl)
data_pl$xmin <- est$xmin
data_pl$pars <- est$pars
สองบรรทัดสุดท้ายสามารถเขียนใหม่เป็นหนึ่งบรรทัด
data_pl$xmin <- est
นอกจากนี้ ณ จุดนี้คุณสามารถดูสถิติ KS:
est$KS
- สถิติ KS บอกคุณว่าการกระจายของกฎหมายพลังงานเหมาะสมกับข้อมูลของคุณอย่างไร แต่ก็ไม่ได้บอกคุณว่าข้อมูลของคุณมาจากกฎหมายพลังงาน ดังนั้นคุณต้องมีค่าด้วย นี่คือวิธีที่คุณทำ:พี
bs <- bootstrap_p(data_pl)
bs$p
นี่อาจใช้เวลาสักครู่ดังนั้นจงไปดื่มชาสักถ้วย ...
- สมมติว่าคุณได้รับค่าและมากกว่า 0.05 หรือระดับที่สำคัญของคุณคือคุณยังต้องแยกความเป็นไปได้ที่ไม่มีการกระจายทางเลือกอื่นที่เหมาะสมกับข้อมูลที่ดีกว่ากฎหมายพลังงาน แพคเกจการดำเนินการ 3 ทางเลือกอื่น ๆ ที่คุณสามารถเปรียบเทียบกับ เข้าสู่ระบบปกติเช่น:พี
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)
โปรดทราบว่าของการแจกแจงแบบล็อกปกติถูกตั้งค่าเป็นกฎพลังงานเนื่องจากฟังก์ชันต้องการให้ s เป็นค่าเดียวกันสำหรับการแจกแจงทั้งสอง วัตถุมีสองเขตข้อมูลที่น่าสนใจ: บ่งชี้ที่หนึ่งที่เป็นแบบที่ดีกว่าที่มีความหมายจำนวนบวกจะดีกว่าและเชิงลบอย่างอื่น; หมายถึงความแตกต่างที่สำคัญ x m ฉันnxm ฉันncompare_distributions
xm ฉันncomp
comp$test_statistic
data_pl
comp$p_two_side
ทำซ้ำขั้นตอนนี้กับdisexp
, dispois
เรียนเพื่อเปรียบเทียบอำนาจกฎหมายที่มีทางเลือกเหล่านั้น