Saya memiliki dataset yang merupakan statistik dari forum diskusi web. Saya melihat distribusi jumlah balasan yang diharapkan dimiliki suatu topik. Secara khusus, saya telah membuat dataset yang memiliki daftar jumlah balasan topik, dan kemudian jumlah topik yang memiliki jumlah balasan tersebut.
"num_replies","count"
0,627568
1,156371
2,151670
3,79094
4,59473
5,39895
6,30947
7,23329
8,18726
Jika saya memplot dataset pada plot log-log, saya mendapatkan apa yang pada dasarnya garis lurus:
(Ini adalah distribusi Zipfian ). Wikipedia memberi tahu saya bahwa garis lurus pada log-log plot menyiratkan suatu fungsi yang dapat dimodelkan dengan monomial dari bentuk . Dan sebenarnya saya sudah melihat fungsi seperti itu:
lines(data$num_replies, 480000 * data$num_replies ^ -1.62, col="green")
Bola mata saya jelas tidak seakurat R. Jadi bagaimana saya bisa mendapatkan R agar sesuai dengan parameter model ini bagi saya lebih akurat? Saya mencoba regresi polinomial, tetapi saya tidak berpikir bahwa R mencoba menyesuaikan eksponen sebagai parameter - apa nama yang tepat untuk model yang saya inginkan?
Sunting: Terima kasih atas jawaban semua orang. Seperti yang disarankan, saya sekarang sudah cocok dengan model linier terhadap log data input, menggunakan resep ini:
data <- read.csv(file="result.txt")
# Avoid taking the log of zero:
data$num_replies = data$num_replies + 1
plot(data$num_replies, data$count, log="xy", cex=0.8)
# Fit just the first 100 points in the series:
model <- lm(log(data$count[1:100]) ~ log(data$num_replies[1:100]))
points(data$num_replies, round(exp(coef(model)[1] + coef(model)[2] * log(data$num_replies))),
col="red")
Hasilnya adalah ini, menunjukkan model dengan warna merah:
Itu terlihat seperti perkiraan yang baik untuk tujuan saya.
Jika saya kemudian menggunakan model Zipfian ini (alpha = 1,703164) bersama dengan generator angka acak untuk menghasilkan jumlah total topik yang sama (1400930) seperti dataset terukur asli yang terkandung (menggunakan kode C ini yang saya temukan di web ), hasilnya terlihat seperti:
Poin yang diukur berwarna hitam, yang dihasilkan secara acak sesuai dengan model berwarna merah.
Saya pikir ini menunjukkan bahwa varian sederhana yang dibuat dengan secara acak menghasilkan 1400930 poin ini adalah penjelasan yang baik untuk bentuk grafik asli.
Jika Anda tertarik untuk bermain sendiri dengan data mentah, saya telah mempostingnya di sini .