Формула Доуна для бінінгу гістограми


9

Я реалізую різні алгоритми, щоб оцінити найкращу кількість бункерів, які слід використовувати для гістограм. Більшість із тих, що я реалізую, описані на сторінці "Гістограма" у Вікіпедії у розділі " Кількість відрізків та ширина " *.

Я застряг у проблемі з формулою Доана:

1 + log(n) + log(1 + kurtosis(data) * sqrt(n / 6.))

де nрозмір даних.

Проблема полягає в тому, коли куртоз є негативним і n >> 1тому, що аргумент logперетворюється на негативний.

* (ця сторінка була змінена з моменту публікації, посилання відредаговано так, щоб вона вказувала на сторінку як на момент публікації)


1
Чи знаєте ви, що у цій формулі використовується куртоз або надлишковий куртоз (тобто нормальний dist має 4 або 0)?
Пітер Флом

@PeterFlom: в оригінальному документі ( amstat.tandfonline.com/doi/pdf/10.1080/00031305.1976.10479172 ) куртоз визначається як Skewness, але я не є експертом. Оригінальний документ також сильно відрізняється від формули wikipedia
Ruggero Turra

1
Помилка, що? Куртоз визначається як косоокість? Це не має сенсу; вони дуже різні. Я не можу отримати доступ до паперу, але це здається, що щось дещо переплутано.
Пітер Флом

@PeterFlom Нормальний розподіл повинен мати куртоз 3 не 4.
Glen_b -Встановити Моніку

@PeterFlom Я досліджував проблему косості та куртозу - див. "Редагувати 2" у своїй відповіді.
Glen_b -Встановити Моніку

Відповіді:


11

Ця відповідь зазнала значних змін, коли я досліджував сторінку вікіпедії. Відповіді я залишив значною мірою такими, якими вони були, але до них додали, тому в даний час це формує прогрес розуміння; останні частини - це найкраща інформація.

Коротка відповідь: сторінка вікіпедії - і формула ОП, яка, здається, була однаковою - просто помиляються, принаймні, з трьох різних причин. Я залишу своє первісне обговорення (яке передбачало, що в ОП та Вікіпедії це правильно), оскільки це пояснює деякі проблеми. Краще обговорення випливає пізніше. Коротка порада: просто забудьте Doane. Якщо вам потрібно скористатися ним, використовуйте те, що зараз говорить вікіпедія (я виправив це).


Я вважаю, що формула повинна стосуватися надлишкового куртозу; моя причина цього полягає в тому, що він змінює формулу для нормальних даних для обліку ненормальних даних, щоб ви могли очікувати відтворення немодифікованих даних у звичайному. Це робиться так, якщо ви використовуєте зайвий куртоз.

Це, однак, викликає проблему, що термін у журналі може стати негативним для великих зразків (справді, можливо, так і буде 0 при зовсім маленькому н). Я б запропонував не використовувати його при негативному надлишковому куртозі (я б ніколи не використовував його поза унімодальністю; як тільки речі набудуть мультимодального значення, ви хочете застосувати ідею надлишкового куртозу до кожного режиму, а не згладжувати їх!), Хоча і з легкими випадками ( надмірний куртоз трохи менше 0) та скромні розміри вибірки не будуть великою проблемою.

Я б також припустив, що в будь-якому випадку він буде віддавати занадто мало бункерів при великих розмірах зразків, навіть коли це працює за призначенням.

Ви можете знайти цей документ (від звичайного CVer Роб Хандман ):

http://www.robjhyndman.com/papers/sturges.pdf

певного інтересу. Якщо аргумент Штурджеса невірний, формула Доана має ту саму проблему ..., як Роб чітко зазначає у статті.

У цій роботі (і в цій відповіді ) він киває на правило Фрідмана-Діаконіса. У статті він також вказує на підхід, про який говорив Метт Уонд (він посилається на робочий документ, який, здається, не є в Інтернеті, але наступний документ доступний, якщо у вас є доступ):

http://www.jstor.org/discover/10.2307/2684697

[Редагувати: насправді посилання на робочий документ знаходиться на сторінці сайтів ]

Цей підхід включає приблизно оцінку конкретних функціональних функцій, щоб отримати приблизно оптимальні (з точки зору середньої інтегральної квадратичної помилки, MISE) ширини відрізків для оцінки базової щільності. Хоча вони працюють добре і дають набагато більше бункерів, ніж Штуржес або Доане загалом, іноді я все-таки вважаю за краще використовувати більше бункерів, хоча зазвичай це дуже хороша перша спроба.

Відверто кажучи, я не знаю, чому підхід Ванда (або принаймні правила Фредмена Діаконіса) не є дефолтом майже скрізь.

R принаймні пропонує пропонувати розрахунок кількості бункерів Фрідмана-Діаконіса:

 nclass.FD(rnorm(100))
[1] 11
 nclass.FD(runif(100))
[1] 6
 nclass.FD(rt(100,1))
[1] 71

Подивитися ?nclass.FD

Особисто мені, щонайменше, в перших двох випадках занадто мало смітників; Я б подвоїв обох, незважаючи на те, що це може бути трохи галасливіше, ніж оптимально. Оскільки росія стає великою, я думаю, що в більшості випадків це дуже добре.


Редагувати 2:

Я вирішив дослідити проблему косості та куртозу, яка @PeterFlom справедливо висловила загадку на.

Я щойно подивився на документ, з яким пов’язаний документ Doane (я читав його раніше ... але це було майже 30 років тому) - це взагалі не посилається на куртоз, а лише на косисть.

Фактична формула Доана :Ке=лог2(1+г1σг1)

де Ке - кількість доданих бункерів, г1є перекосом 3-го моменту. [Насправді, Doane, дотримуючись досить поширеного часу, використовуєб1для підписаного (!) третього моменту нахилу (початок цього особливо неохайного зловживання нотацією досить старе, і я не збираюся його проводити, за винятком того, щоб сказати, що це, на щастя, з’являється набагато рідше).]

Зараз у нормі, σг1=6(н-2)(н+1)(н+3)6н
(хоча це наближення є досить бідним, поки n не минуло 100; Doane використовує першу форму)

Однак, схоже, хтось намагався адаптувати його до куртозу (у той час, коли я пишу цю Вікіпедію, це стосується куртозу , наприклад, і я не думаю, що вони це вигадали) - але є чітка причина вважати, що формула просто помилкова (зауважимо, що стандартна помилка - це остаточне наближення для се косості я, що я дав вище). Я думаю, що я бачив таке використання куртозу в кількох місцях, окрім вікіпедії, але, крім того, що він не знаходиться в роботі Доана, він не присутній ні в роботі Скотта, ні в папері Гіндмана, на який я вказую, ні в роботі Ванда. Однак, схоже, воно походить звідкись (тобто я впевнений, що це не оригінально для Вікіпедії), тому що у Doane немає наближення доσг1. Схоже, це було зіграно кілька разів, перш ніж він закінчився там; Мені буде цікаво, якщо хтось простежив це.

Мені це здається, як аргумент Доана повинен із задоволенням поширюватися на куртоз, але потрібно використовувати правильну стандартну помилку .

Однак, оскільки Доан покладається на аргументи Штуржеса і Стерджеса, здається, недоліки, можливо, все підприємство приречене. У будь-якому випадку я відредагував сторінку розмов з гістограмою у вікіпедії, зазначивши помилку.

---

Редагування 3: Я виправив сторінку вікіпедії (але я взяв на себе сміливість взяти абсолютне значення косості, інакше оригінальну формулу Доуна не можна використовувати для лівокосових розподілів, як вона стояла - очевидно, для кількості бункерів знак " косисть немаловажна). Власне кажучи, я мав би представити формулу в оригінальній (неправильній) формі, а потім пояснив, чому це не має сенсу, але я думаю, що це проблематично з кількох причин - не в останню чергу, що люди будуть спокушатися просто скопіювати формулу і проігнорувати пояснення. Я вважаю, що це фактично охоплює початковий намір Доана. У будь-якому випадку це величезне вдосконалення щодо дурниць, які були в оригіналі. (Будь ласка, будь-хто, хто може отримати доступ до оригінального паперу, подивіться на нього та якб1 визначено, і перевірте мої зміни на wikipedia, щоб переконатися, що це розумно - принаймні три речі були неправильні - куртоз, стандартна помилка та неправильна база журналів, а також невелика помилка Doane.)


дуже тобі дякую. До речі, я здивований, коли бачу таку помилку на "Американському статистику". Я ніколи не бачив позначеньб1.
Ruggero Turra

Невеликі помилки такої шкали (відсутність абсолютного значення) трапляються далеко не все, що рідко трапляється в журналах - поза статистикою я бачив набагато очевидніші (і більш кричущі). Щодо позначень, то насправді це досить поширене явище; eg1 , eg2 , eg3 ... Я міг би вказати на десятки
Glen_b -Встановити Моніку

2

Міра куртозу, визначена у другому та четвертому моментах, ніколи не є негативною ( див. ), То log(1+...)>0.

Ця величина реалізується в команді kurtosis()з бібліотеки R moments. Крім того, за допомогою команди hist()можна вказати кількість перерв наступним чином

library(moments)

n <- 250
data <- rnorm(n)

# Sturges formula log_2(n) + 1
hist(data,breaks = "Sturges")

# Doane's formula    
Doane <- 1 + log(n) + log(1 + kurtosis(data) * sqrt(n / 6.))
hist(data,breaks = Doane)

Формула, яка використовується в команді kurtosis(), проста mean((data - mean(data))^4)/mean((data - mean(data))^2)^2.

Тепер, якщо ви хочете дослідити, що є "найкращою" формулою, вам знадобиться критерій. Вважайте, що це було неабияк обговорено в статистичній літературі.


що я не знаю, це визначення куртозу у формулі
Доуна

У публікації у вікіпедії, яку ви опублікували, є посилання на визначення куртозу. Випадково це те саме, що я розмістив. Він оцінюється як четвертий зразок центрального моменту, поділений на квадрат другого центрального моменту вибірки. Будь ласка, дивіться мою редакцію коду.
Майлз Девіс

1
знову ж таки, я не знаю, чи ваша правильна формула Доана, якщо ви подивитесь на папір, наприклад, він використовує log2 замість журналу
Ruggero Turra

Ну, це "формула Доана", яку ви опублікували ¬¬ . Так чи інакше, це можна виправдати, використовуючи log(n,2)замість цього log(n). Але НЕ, запис у вікіпедії, а також інші джерела вказують, що так і має бути log.
Майлз Девіс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.