Tôi có một bộ dữ liệu thống kê từ một diễn đàn thảo luận web. Tôi đang xem xét sự phân phối số lượng câu trả lời mà một chủ đề dự kiến sẽ có. Cụ thể, tôi đã tạo một bộ dữ liệu có danh sách số lần trả lời chủ đề và sau đó là số lượng chủ đề có số lần trả lời đó.
"num_replies","count"
0,627568
1,156371
2,151670
3,79094
4,59473
5,39895
6,30947
7,23329
8,18726
Nếu tôi vẽ sơ đồ dữ liệu trên một biểu đồ log-log, tôi sẽ nhận được về cơ bản là một đường thẳng:
(Đây là một bản phân phối Zipfian ). Wikipedia cho tôi biết rằng các đường thẳng trên các ô log-log ngụ ý một hàm có thể được mô hình hóa bằng một đơn thức có dạng . Và trên thực tế, tôi đã đánh dấu một chức năng như vậy:
lines(data$num_replies, 480000 * data$num_replies ^ -1.62, col="green")
Nhãn cầu của tôi rõ ràng không chính xác như R. Vì vậy, làm thế nào tôi có thể lấy R để phù hợp với các thông số của mô hình này cho tôi chính xác hơn? Tôi đã thử hồi quy đa thức, nhưng tôi không nghĩ rằng R cố gắng khớp số mũ làm tham số - tên thích hợp cho mô hình tôi muốn là gì?
Chỉnh sửa: Cảm ơn câu trả lời của mọi người. Như đã đề xuất, giờ đây tôi đã điều chỉnh mô hình tuyến tính dựa vào nhật ký của dữ liệu đầu vào, sử dụng công thức này:
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")
Kết quả là điều này, hiển thị mô hình màu đỏ:
Điều đó có vẻ như là một xấp xỉ tốt cho mục đích của tôi.
Sau đó, nếu tôi sử dụng mô hình Zipfian này (alpha = 1.703164) cùng với trình tạo số ngẫu nhiên để tạo ra tổng số chủ đề (1400930) như tập dữ liệu đo ban đầu có (sử dụng mã C này tôi tìm thấy trên web ), kết quả sẽ xuất hiện như:
Các điểm đo được có màu đen, các điểm được tạo ngẫu nhiên theo mô hình có màu đỏ.
Tôi nghĩ rằng điều này cho thấy phương sai đơn giản được tạo bằng cách tạo ngẫu nhiên 1400930 điểm này là một lời giải thích tốt cho hình dạng của biểu đồ gốc.
Nếu bạn thích tự chơi với dữ liệu thô, tôi đã đăng nó ở đây .