У мене є набір даних, який є статистикою з веб-форуму для обговорення. Я дивлюся на розподіл кількості відповідей, на які очікується тема. Зокрема, я створив набір даних, у якому є перелік кількості відповідей на теми, а потім кількість тем, що мають таку кількість відповідей.
"num_replies","count"
0,627568
1,156371
2,151670
3,79094
4,59473
5,39895
6,30947
7,23329
8,18726
Якщо я будувати набір даних на графіку журналу журналу, я отримую те, що в основному є прямою лінією:
(Це розповсюдження Zipfian ). У Вікіпедії мені кажуть, що прямі лінії на графіках журналу журналу передбачають функцію, яку можна змоделювати за допомогою одночлена виду . Насправді я прихилив таку функцію:
lines(data$num_replies, 480000 * data$num_replies ^ -1.62, col="green")
Мої очні яблука, очевидно, не такі точні, як Р. Тож як я можу отримати R, щоб більш точно відповідати параметрам цієї моделі для мене? Я спробував поліноміальну регресію, але не думаю, що R намагається вписати показник як параметр - яке саме ім'я для моделі, яку я хочу?
Редагувати: Дякую за відповіді всім. Як було запропоновано, я тепер підходив до лінійної моделі проти журналів вхідних даних, використовуючи цей рецепт:
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")
Результат такий, показуючи модель червоним кольором:
Це схоже на гарне наближення для моїх цілей.
Якщо я потім використовую цю модель Zipfian (альфа = 1.703164) разом із генератором випадкових чисел, щоб генерувати таку ж загальну кількість тем (1400930), як і вихідний вимірюваний набір даних (використовуючи цей код C, який я знайшов в Інтернеті ), результат виглядає подібно до:
Виміряні точки є чорним кольором, випадкові породжені відповідно до моделі - червоними.
Я думаю, що це показує, що проста дисперсія, створена випадковим чином, генеруючи ці 1400930 точок, є хорошим поясненням форми оригінального графіка.
Якщо вам цікаво грати із сирими даними самостійно, я розмістив їх тут .