Mam zestaw danych, który jest statystykami z internetowego forum dyskusyjnego. Patrzę na rozkład liczby odpowiedzi, których oczekuje się od tematu. W szczególności utworzyłem zestaw danych, który zawiera listę odpowiedzi na temat, a następnie liczbę tematów, które mają taką liczbę odpowiedzi.
"num_replies","count"
0,627568
1,156371
2,151670
3,79094
4,59473
5,39895
6,30947
7,23329
8,18726
Jeśli wykreślę zestaw danych na wykresie dziennika, otrzymam to, co w zasadzie jest linią prostą:
(To jest dystrybucja Zipfian ). Wikipedia mówi mi, że proste linie na wykresach log-log implikują funkcję, którą można modelować za pomocą monomialu postaci . I faktycznie obserwowałem taką funkcję:
lines(data$num_replies, 480000 * data$num_replies ^ -1.62, col="green")
Moje oczy oczywiście nie są tak dokładne jak R. Więc jak mogę sprawić, by R dopasował dla mnie parametry tego modelu bardziej dokładnie? Próbowałem regresji wielomianowej, ale nie sądzę, że R próbuje dopasować wykładnik jako parametr - jaka jest właściwa nazwa dla modelu, który chcę?
Edycja: Dziękujemy za odpowiedzi wszystkim. Jak zasugerowałem, dopasowałem teraz model liniowy do dzienników danych wejściowych, używając tego przepisu:
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")
Wynik jest taki, pokazując model na czerwono:
To wydaje się być dobrym przybliżeniem dla moich celów.
Jeśli następnie użyję tego modelu Zipfian (alfa = 1,703164) wraz z generatorem liczb losowych do wygenerowania tej samej łącznej liczby tematów (1400930), co zawierał oryginalny zmierzony zestaw danych (używając tego kodu C, który znalazłem w Internecie ), wynik wygląda lubić:
Mierzone punkty są w kolorze czarnym, losowo generowane zgodnie z modelem są w kolorze czerwonym.
Myślę, że to pokazuje, że prosta wariancja utworzona przez losowe wygenerowanie tych 1400930 punktów jest dobrym wyjaśnieniem kształtu oryginalnego wykresu.
Jeśli jesteś zainteresowany samodzielną grą z surowymi danymi, opublikowałem je tutaj .
źródło
Odpowiedzi:
Twój przykład jest bardzo dobry, ponieważ wyraźnie wskazuje na powtarzające się problemy z takimi danymi.
Dwie popularne nazwy to funkcja władzy i prawo mocy. W biologii i niektórych innych dziedzinach ludzie często mówią o allometrii, szczególnie gdy odnoszą się do pomiarów wielkości. W fizyce i niektórych innych dziedzinach ludzie mówią o prawach skalowania.
Nie uważałbym jednomianu za dobry termin, ponieważ kojarzę to z mocami całkowitymi. Z tego samego powodu nie jest to najlepiej traktowane jako szczególny przypadek wielomianu.
Problemy dopasowania prawa mocy do ogona rozkładu przekształcają się w problemy dopasowania prawa mocy do relacji między dwiema różnymi zmiennymi.
Najłatwiejszym sposobem dopasowania prawa potęgi jest pobranie logarytmów obu zmiennych, a następnie dopasowanie linii prostej za pomocą regresji. Jest wiele zastrzeżeń do tego, ilekroć obie zmienne są obarczone błędem, co jest powszechne. Przykładem tutaj jest przypadek, gdy obie zmienne (i żadna) mogą być uważane za odpowiedź (zmienna zależna). Argument ten prowadzi do bardziej symetrycznej metody dopasowania.
Ponadto zawsze pojawia się pytanie o założenia dotyczące struktury błędów. Ponownie, przykład tutaj jest przykładem, ponieważ błędy są wyraźnie heteroscedastyczne. To sugeruje coś więcej jak ważone najmniejsze kwadraty.
Doskonałą recenzją jest http://www.ncbi.nlm.nih.gov/pubmed/16573844
Jeszcze innym problemem jest to, że ludzie często identyfikują prawa energetyczne tylko w pewnym zakresie swoich danych. Pytania stają się następnie zarówno naukowe, jak i statystyczne, poczynając od tego, czy identyfikowanie praw władzy jest tylko pobożnym życzeniem czy modną rozrywką amatorską. Znaczna część dyskusji powstaje pod hasłem zachowania fraktalnego i pozbawionego skali, z towarzyszącą dyskusją, od fizyki po metafizykę. W twoim konkretnym przykładzie widoczna jest niewielka krzywizna.
Entuzjastom praw władzy nie zawsze towarzyszą sceptycy, ponieważ entuzjaści publikują więcej niż sceptycy. Sugerowałbym, że wykresowi punktowemu na skalach logarytmicznych, chociaż naturalny i doskonały wykres, który jest niezbędny, powinny towarzyszyć jakieś wykresy resztkowe w celu sprawdzenia odstępstw od postaci funkcji mocy.
źródło
Jeśli przyjmiesz, że moc jest dobrym modelem do dopasowania, możesz użyć jej
log(y) ~ log(x)
jako modelu i dopasować regresję liniową, używająclm()
:Spróbuj tego:
Dopasuj model:
Teraz stwórz wykres:
źródło