![]() |
Спасибо.
Цитата:
Цитата:
*бурчит под нос* К освоению R приступить, о выполнении доложить себе лично! |
Цитата:
|
Цитата:
|
Ошибка модели большая вышла. Это не слов, а процентов. С чего я про слова решил?
Да и считать здесь MAPE некорректно. Убрал. |
Hogfather, понятно.
|
"Нет, всё-таки откопаем..." Итак, более корректная и интересная первая подгонка, поскольку во втором случае мы просто подгоняем функцию по 22 точкам. С интересом обнаружил, что в 2012 году для R вышел более мощный пакет подгонки fitdistrplus. Попробуем в него поиграть. Опять берем Гамму. Код:
>#Подключаем библиотеку Код:
># Подгоняем распределение Пуассона Пакет позволяет построить красивые картинки. Причем очень просто. Код:
># Рисунок для гаммы Рисунок 1 -- Подгонка гамма-распределения http://aspirantura.spb.ru/forum/pict...&pictureid=976 Рисунок 2 -- Подгонка распределения Пуассона Рисунок 2 можно также получить не прибегая к построению модели. Для распределения Пуассона с лямбдой равной средней длине слова это выглядит так: Код:
> plotdist(LT,"pois",para=list(lambda=mean(LT))) Код:
># Для гамма-распределения Код:
> descdist(LT) http://aspirantura.spb.ru/forum/pict...&pictureid=977 Но, поскольку у нас распределение дискретное, мы нарисуем другой график. Код:
> descdist(LT,discrete = TRUE,boot=1000) Почти Пуассон, красота! В общем, пакет мне понравился. Буду пользоваться. P.S. Если как положено считать Хи-квадрат для дискретного распределения, то видно, что и распределение Пуассона не торт. Еще разные распределения
Код:
> XZ<-fitdist(LT,"beta") Добавлено через 3 часа 40 минут Цитата:
Цитата:
В общем, Колмогорова-Смирнова в данном случае не трогаем. Хотя, красивый результат вышел. То-то мне он подозрительным показался. |
Цитата:
|
Цитата:
Надеюсь, что сюда математик нормальный забредет, подскажет идею какую-нибудь. Добавлено через 8 часов 12 минут Мысль для Дмитрий В. и не только. Пусть у Вас имеются данные по 5 языкам. Чтобы на одном графике показать все распределения, лучше всего использовать диаграмму "Ящик с усами".Привожу пример. Данные выдуманы (заполняются в начале скрипта). У Дмитрия наверняка они есть. Код:
#Инициируем данные, чтобы были, заполнив по 1000 чисел из распределения Пуассона и нормального распределения. http://aspirantura.spb.ru/forum/pict...&pictureid=983 Добавлено через 58 минут А вот пример Бутстреппинга Код:
> bw<-bootdist(XY,niter=1001) |
Hogfather, :up:, выходящие за фрейм.
|
Вот тут меня спрашивают, а как посчитать R2. Не знаю, зачем, но почему бы не посчитать. Формула есть, а заодно и MAE (среднюю абсолютную ошибку) посчитаем.
Для этого сделаем по-быстрому функцию Код:
# Функция, вычисляющая R.Sqv и MAE LT - у нас определено выше, 7.199839 - это полученная в результате лямбда. Результат: Код:
> MyInfo(LT,7.199839) MAE=191.5201 слов. Вот тут уже именно слов ;). График http://aspirantura.spb.ru/forum/pict...&pictureid=985 Теперь о R2. Обратите внимание, что будет если мы чуть изменим лямбду. Код:
> MyInfo(LT,8) Добавлено через 58 минут Можно и совсем облениться, если данных много надо обработать, а вводить команды одни те же лень. Пишем функцию, которая делает за нас все. Код:
# Функция, которая только за пивом не бегает Код:
> MyInfoPois(LT) Картинки повторять не буду. Они все уже приведены. Лирическое отступление для Дмитрия В. и не только. Ежу понятно, что вышеописанное никому не нужно, разве что, продемонстрировать возможности R (я себе такую цель ставил). Вообще, прежде чем проводить научное исследование, надо себе поставить цель. Поговорим об этом. У нас есть некие эмпирические данные, в данном случае соответствие длины слов количеству букв. Какие возможны варианты. 1. Нам интересна математическая модель, которая показывает зависимость количества слов в языке данной длины в данном словаре от количества букв в слове. Звучит идиотски, согласитесь. Во всяком случае, это легко аппроксимируется полиномом или так любимой Дмитрием гаммой (но полином лучше будет). Да, в данном случае мы можем говорить о R квадрате. Но! В данном случае у нас данные фиксированы. Нельзя добавлять или убавлять слова, поскольку это рушит нашу модель. Случайная выборка из словаря рушит всё напрочь! И модель не выполняет своей функции -- не объясняет закономерность. 2. Нам интересна закономерность, описывающая частотное распределение слов по длине. Тогда мы говорим о дискретном стохастическом процессе, причем нас интересуют именно вероятности и мы подгоняем не только дифференциальную, но и интегральную функцию распределения. Тогда ошибки считать -- заниматься профанацией. Для каждой выборки они будут свои. Задача стоит выбрать лучшее из возможных плохих вариантов. Тут в нас начинают работать информационные критерии AIC и BIC и мы выбираем из нескольких распределений лучшее. Если бы сошелся Хи-квадрат, было бы вообще счастье. Но, к сожалению, счастье бывает только в учебниках. В жизни приходится мучатся. Где-то так. Никто, правда нам не мешает сказать, что для всего словаря Эр. квадрат такой-то, а средняя абсолютная ошибка такая-то (причем для дифференциальной и интегральной функции они будут разные, гы). А смысл? Другой вариант, бутстреппинг. Т.е. случайная выборка, пересчет Эр квадрат и ошибки для каждого случая и отображение этого на двумерном графике. Но это чересчур брутально. Надеюсь, что несильно наврал, а если и наврал меня поправят. |
Текущее время: 20:24. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
© 2001—2025, «Аспирантура. Портал аспирантов»