Портал аспирантов

Портал аспирантов (http://www.aspirantura.spb.ru/forum/index.php)
-   Software (программное обеспечение) (http://www.aspirantura.spb.ru/forum/forumdisplay.php?f=107)
-   -   GRETL: Вопросы и ответы. (http://www.aspirantura.spb.ru/forum/showthread.php?t=10581)

Hogfather 02.12.2012 12:31

GRETL: Вопросы и ответы.
 
Вложений: 1
[table 1 3 0]3^http://aspirantura.spb.ru/forum/pict...&pictureid=979 |
Внимание![BR]Автор темы совместно с Администрацией портала просит писать в эту тему только относящееся к GRETL. Благодарности, разговоры о погоде будут безжалостно удаляться. Все "чмоки", пожалуйста, во флейме. Вопросы по GRETL прошу задавать в личных сообщениях, чтобы тема была удобна для восприятия. Надеюсь на понимание.
[/table]

Поскольку большинству присутствующих на форуме не нужен весь функционал, который даёт R, а также работа в консоли приятна не всем: народ хочет кляцкать мышой, рассмотрим другой бесплатный пакет -- GRETL = GNU Regression, Econometrics and Time-series Library (Библиотека для регрессий, эконометрики и временных рядов).

Рассмотрим кратко задачу с множественной линейной регрессией. Данные перегнаны из R в Excel. Файл Excel импортирован и сохранен в формате gretl (см. вложение).

Загружаем этот файл и видим вот такое окно.
http://aspirantura.spb.ru/forum/pict...pictureid=1005

Дальше строим 3D график.

http://aspirantura.spb.ru/forum/pict...pictureid=1006

График выглядит так.
http://aspirantura.spb.ru/forum/pict...pictureid=1007

Его можно вращать с помощью мыши.

http://aspirantura.spb.ru/forum/pict...pictureid=1008

Вот тут меня спрашивали, Хогфазер, атэц, что же ты Ыкс то выкинул. На картинке, надеюсь, видно, что Ыкс у нас не при делах.

http://aspirantura.spb.ru/forum/pict...pictureid=1009

Опускаем всю лирику, которая была в предыдущей статье. Алгоритм от инструмента не зависит. Эту задачу и в Excel решить можно, просто мене удобно. Создаем новую переменную.

http://aspirantura.spb.ru/forum/pict...pictureid=1010

Дальше в меню "Модель" выбираем "Метод наименьших квадратов..."
Заполняем формочку.

http://aspirantura.spb.ru/forum/pict...pictureid=1011

Получаем результат

http://aspirantura.spb.ru/forum/pict...pictureid=1012

Устраняем лишнее (в модели: меню Правка - Изменить модель) и приходим к той же модели, что была рассмотрена в заметке по R.

Код:

Модель 2: МНК, использованы наблюдения 1-22
Зависимая переменная: lnZ

            Коэффициент  Ст. ошибка    t-статистика  P-значение
  ----------------------------------------------------------------
  y          0.00266438    9.69920e-05      27.47      6.07e-018  ***

Среднее зав. перемен    2.508130  Ст. откл. зав. перемен  1.295627
Сумма кв. остатков      4.701594  Ст. ошибка модели      0.473165
R-квадрат              0.972924  Испр. R-квадрат        0.972924
F(1, 21)                754.6082  Р-значение (F)          6.07e-18
Лог. правдоподобие    -14.24210  Крит. Акаике            30.48420
Крит. Шварца            31.57524  Крит. Хеннана-Куинна    30.74121

Логарифмическое правдоподобие для z = -69.421

Прямо в модели делаем тест на нормальность остатков

http://aspirantura.spb.ru/forum/pict...pictureid=1013

Код:

Тест на нормальное распределение ошибок -
  Нулевая гипотеза: ошибки распределены по нормальному закону
  Тестовая статистика: Хи-квадрат(2) = 0.737064
  р-значение = 0.691749

Там еще много чего полезного в меню есть, но пока хватит.
Sapienti Sat.

Hogfather 02.12.2012 22:32

GRETL и R
 
Вот тут наши корреспонденты интересуются, мол зачем тогда R, если все так чудесно в GRETL. Действительно, работа с регрессией и временными рядами там выше всяческих похвал. Более того, своим студентам я рекомендовал на флешке держать portable версию gretl, чтобы в любой аудитории можно было продолжить начатое. Но, при всех его удобствах, GRETL заточен на решение специфических задач. Если нам нужен серьезный анализ, то в R это сделать проще и быстрее.

К счастью, есть возможность работать с R прямо из GRETL, для этого в меню "Инструменты" выбираем "Запустить R". В сеансе R мы увидим строчку.
Код:

current data loaded as data frame "gretldata"
>

А дальше уже проще. Это именно наши данные и можно с ними делать все что хочется. А если учесть, что gretl читает Excel'овские файлы, то жизнь становится не столько прекрасна, сколько удивительна.

Вот Вам, пожалуйста, первые строки нашей таблицы
Код:

> head(gretldata)
    x    y      z      lnZ
1  75  375  1.452 0.3729419
2  75  625  3.705 1.3096833
3  75 1000 18.857 2.9368842
4  75 1500 50.434 3.9206656
5 100  500  1.956 0.6709016
6 125  375  2.272 0.8206605
>

А дальше можно делать всё то шаманство, которое описано в заметке по R.

Другой вариант, работать со скриптами R, которые можно создать из меню Файл-Скрипты-Новый скрипт-Скрипт для R
Пишем скрипт
Код:

library(car)
fit<-lm(lnZ~-1+y,data=gretldata)
summary(fit)
qqPlot(fit)

http://aspirantura.spb.ru/forum/pict...pictureid=1014

Нажимаем "шестереночки", которые означают выполнить. Выбираем интерактивный режим. Получаем в R

Код:

R version 2.15.2 (2012-10-26) -- "Trick or Treat"
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: i386-w64-mingw32/i386 (32-bit)

R -- это свободное ПО, и оно поставляется безо всяких гарантий.
Вы вольны распространять его при соблюдении некоторых условий.
Введите 'license()' для получения более подробной информации.

R -- это проект, в котором сотрудничает множество разработчиков.
Введите 'contributors()' для получения дополнительной информации и
'citation()' для ознакомления с правилами упоминания R и его пакетов
в публикациях.

Введите 'demo()' для запуска демонстрационных программ, 'help()' -- для
получения справки, 'help.start()' -- для доступа к справке через браузер.
Введите 'q()', чтобы выйти из R.

current data loaded as data frame "gretldata"
Загрузка требуемого пакета: graphics
Загрузка требуемого пакета: MASS
Загрузка требуемого пакета: grDevices
Загрузка требуемого пакета: nnet

Call:
lm(formula = lnZ ~ -1 + y, data = gretldata)

Residuals:
    Min      1Q  Median      3Q      Max
-0.78397 -0.35742 -0.05766  0.18365  0.91500

Coefficients:
  Estimate Std. Error t value Pr(>|t|)   
y 2.664e-03  9.699e-05  27.47  <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4732 on 21 degrees of freedom
Multiple R-squared: 0.9729,    Adjusted R-squared: 0.9716
F-statistic: 754.6 on 1 and 21 DF,  p-value: < 2.2e-16

>

и картинку

http://aspirantura.spb.ru/forum/pict...pictureid=1015

Вот в таком вот акцепте...

валентин 09.12.2012 15:58

Hogfather, Добрый день.
Есть ли у Вас руководство пользователя GRETL на русском языке?
И если есть, сможете ли Вы прислать его по адресу nikanorv@mail.ru
Заранее благодарен и с уважением Никоноров Валентин

Hogfather 10.12.2012 22:58

Цитата:

Сообщение от валентин (Сообщение 297016)
Есть ли у Вас руководство пользователя GRETL на русском языке?

Как такового руководства на русском я не видел. Единственное, что могу порекомендовать:

Тадеуш Куфель
Эконометрика. Решение задач с применением пакета программ GRETL
Издательство: Горячая Линия - Телеком
ISBN 5-93517-307-7, 83-0114284-7; 2007 г.
200 стр.

Но электронной копии пока не нашел (я себе эту книгу покупал). Электронная копия доступна вот тут, но качество то еще...

Добавлено через 14 часов 22 минуты
Цитата:

Уважаемый Hogfather!
Подскажите, пожалуйста, на форуме описан этот процесс:
"Данные перегнаны из R в Excel. Файл Excel импортирован и сохранен в формате gretl"?
Я надеялся, что это очевидно. Не угадал. Итак, разберемся с форматами, которые читает/пишет Gretl
1. Gretl умеет читать файлы Excel, включая последние версии. Данные должны быть в виде таблицы на отдельном листе, заголовки начинаются с ячейки A1 и идут по этой строке, данные -- с ячейки A2. Для того, чтобы прочитать такие данные, выбираем меню Файл-Открыть-Импорт-Excel
2. Текстовые/CSV файлы. Меню Файл-Открыть-Импорт-CSV, далее выбираем разделитель записей. При настроенной русской локализации Windows -- это, обычно, точка с запятой (;).
3. Прочее, включая OpenOffice (см. картинку)

http://aspirantura.spb.ru/forum/pict...pictureid=1046


Данные можно сохранять в формате Gretl (Файл-Сохранить и Файл-Сохранить как...), а также экспортировать (Файл-Экспорт) все или часть данных в формат CSV, gretl, GNU R и несколько других.

Таким образом, обмен данными между программами может выглядеть так:
[table 1 5 1]Откуда берем данные|Формат обмена|Куда перегоняем|Примечание
Excel|xls, xlsx или csv|Gretl| Читается прямо в формате Excel
Excel|csv|GNU R |Можно и напрямую, но с доп. библиотекой, а также через clipboard (см. read.table("clipboard",header=T) )
Gretl|csv|Excel| Используйте правильный разделитель данных. Лучше ";". Например, сохраняем таблицу MyData: write.table(MyData,"myData.csv", sep = ";", dec = "."). Для небольшого объема данных можно через clipboard, заменив имя файла на "clipboard" и использовав sep = "\t" (табулятор).
Gretl|GNU R (.RData), csv|GNU R| Лучше использовать внутренний формат .RData, потом в R воспользоваться командой load("имя файла")
GNU R|csv|Excel|Используйте правильный разделитель данных. Лучше ";".
GNU R|csv|gretl|В случае, если запущена сессия из gretl, можно также воспользоваться командой gretl.export(). Подробности см. в руководстве пользователя раздел "Gretl and R"
[/table]

Hogfather 12.12.2012 08:51

Письма наших читателей
 
Вот тут нам пишут.

Цитата:

А если три звездочки у всех коэффициентов, то уравнение принимает какой вид?
http://aspirantura.spb.ru/forum/pict...pictureid=1047
Получается сумма: z=e^0,00242277x + e^0,00346567y ?
Немного старческого брюзжания

Мой научный руководитель в таких случаях всегда рассказывал байку про то, как зайца учат на барабане играть. Сунут ему в лапки ватку со спиртом и поджигают, заяц начинает лапками стучать, если барабан подставят, то, вроде как, и играет. А потом зайцу достаточно только коробок со спичками показать, как он, бедолага, от испуга тут же лапками стучать начинает.

К чему это я. Мне казалось, что я эту тему уже разобрал, но, похоже, неубедительно. Попробуем еще раз.


Так вот, такая сумма не получается. Еще раз подробно.
Имеем модель вида http://www.texify.com/img/%5Cnormals...%5Cepsilon.gif.

Вспоминаем школьный курс, и приводим формулу вот к такому виду http://www.texify.com/img/%5Cnormals...ilon%29%7D.gif

Дальше разберемся с коэффициентами. Я уже писал про свободный член, но, раз девушкам это нравится, повторюсь.

В данном случае const в Gretl эквивалентен (Intercept) в GNU R. Т.е. это наша нулевая бета. Исходя из этого получаем уравнение z~e^(0,00242277x + 0,00346567y-0,796453)

Ну, еще неплохо провести тест остатков модели. Также можно проверить, как изменится модель, если туда добавить x*y (по критерию Акаике (AIC)), и, в первом приближении, что-то получилось..

P.S. Не знаю как у вас в ВУЗе, у нас, за лишнюю "точность", т.е. знаки после запятой, могут и канделябром по шее двинуть...

P.P.S. Про ε~N(0,σ2) в пароксизмах радости не забываем.

Hogfather 22.12.2012 22:56

GRETL регрессионный анализ. Метод наименьших квадратов (МНК). Ответы на вопросы.
 
Получил тут письмо и призадумался.
Цитата:

Уважаемый, Hogfather!
Мне очень нужна Ваша помощь.. Без Вас никак. Из Ваших уроков я поняла, как вывести логарифмическую формулу. Теперь, похоже, у меня должна быть степенная функция от трёх переменных. Возможно, что потом понадобится ещё другая зависимость...
Всё-таки никудышный из меня педагог. Не моё это, явно. Что ж, попробую объяснить еще раз.
Начнем с азов.
1. Пусть у нас есть некие переменные A, B и C и есть зависимая Y,
Вариант номер раз. Самый простой.
Зависимая переменная у нас Y, Независимые: const, A, B, C . Что-то получили, радуемся. Провели тест на нелинейность или Рамсея (прямо в модели, меню "Тесты"), чувствуем, чего-то нехватает.
Код:

Модель 3: МНК, использованы наблюдения 1-28
Зависимая переменная: Y

            Коэффициент  Ст. ошибка  t-статистика  P-значение
  ---------------------------------------------------------------
  const        51.3073    114.623        0.4476      0.6584   
  A          -136.708      30.7476      -4.446      0.0002    ***
  B            138.750      17.9676      7.722      5.87e-08  ***
  C            267.893      15.9484      16.80        9.01e-015  ***

Среднее зав. перемен    746.4821  Ст. откл. зав. перемен  1026.452
Сумма кв. остатков      844716.8  Ст. ошибка модели      187.6074
R-квадрат              0.970306  Испр. R-квадрат        0.966594
F(3, 24)                261.4137  Р-значение (F)          1.87e-18
Лог. правдоподобие    -184.1340  Крит. Акаике            376.2680
Крит. Шварца            381.5968  Крит. Хеннана-Куинна    377.8971

Тест на нелинейность (квадраты) -
  Нулевая гипотеза: зависимость линейна

  Тестовая статистика: LM = 27.9766
  р-значение = P(Хи-квадрат(3) > 27.9766) = 3.67338e-006

Тест на нелинейность (логарифмы) -
  Нулевая гипотеза: зависимость линейна
  Тестовая статистика: LM = 18.6274
  р-значение = P(Хи-квадрат(3) > 18.6274) = 0.000326435

2. Говорим, а не замахнуться ли нам на полином. Да запросто, а что нам даёт полином? А просто расчет дополнительных коэффициентов у членов A2, B2, С2 и, если очень хочется, у AB, BC, AC и ABC. Как мы их можем добавить к нашим данным? Да элементарно!
Меню "Добавить"-"Новую переменную". В появившемся окне пишем
A2=A^2
http://aspirantura.spb.ru/forum/pict...pictureid=1072

Нажимаем ОК. Мы таким образом добавили квадрат A и назвали его A2
Аналогично создаем еще 6 переменных.
Для произведения пишем: AB=A*B и т.д. Вот что у нас получится.

http://aspirantura.spb.ru/forum/pict...pictureid=1073

Все их ставим в независимые переменные. Получаем.

Код:

Модель 4: МНК, использованы наблюдения 1-28
Зависимая переменная: Y

            Коэффициент    Ст. ошибка  t-статистика  P-значение
  ---------------------------------------------------------------
  const    -4.54555e-09  1.67265e-09  -2.718        0.0146    **
  A          1.00000      9.10744e-010  1.098e+09    1.12e-144  ***
  B          8.82849e-09  2.67155e-09    3.305        0.0042    ***
  C          1.00000      1.18757e-08    8.421e+07    1.02e-125  ***
  A2        8.52545e-012  1.14165e-010  0.07468      0.9413   
  B2        5.00000      9.76096e-010  5.122e+09    4.76e-156  ***
  C2        -4.01230e-08  9.75099e-09  -4.115        0.0007    ***
  AB        -2.80596e-09  7.36439e-010  -3.810        0.0014    ***
  BC        4.50756e-08  1.09837e-08    4.104        0.0007    ***
  AC        3.16735e-09  9.76208e-010  3.245        0.0048    ***
  ABC        5.00000      2.81483e-010  1.776e+010  3.14e-165  ***

Среднее зав. перемен    746.4821  Ст. откл. зав. перемен  1026.452
Сумма кв. остатков      4.53e-18  Ст. ошибка модели      5.16e-10
R-квадрат              1.000000  Испр. R-квадрат        1.000000
Лог. правдоподобие      566.0131  Крит. Акаике          -1110.026
Крит. Шварца          -1095.372  Крит. Хеннана-Куинна  -1105.546

Исключая константу, наибольшее р-значение получено для переменной 5 (A2)

Коню понятно, что A2 нам не нужно. Выкидываем его.

Код:

Модель 5: МНК, использованы наблюдения 1-28
Зависимая переменная: Y

            Коэффициент    Ст. ошибка  t-статистика  P-значение
  --------------------------------------------------------------
  const    -4.38415e-09  1.55420e-09  -2.821        0.0113    **
  A          1.00000      6.75041e-010  1.481e+09    3.12e-155  ***
  B          8.47465e-09  2.27841e-09    3.720        0.0016    ***
  C          1.00000      1.11757e-08    8.948e+07    2.72e-133  ***
  B2        5.00000      9.18925e-010  5.441e+09    2.11e-165  ***
  C2        -3.88601e-08  9.17774e-09  -4.234        0.0005    ***
  AB        -2.70371e-09  6.62518e-010  -4.081        0.0007    ***
  BC        4.36974e-08  1.03449e-08    4.224        0.0005    ***
  AC        3.08468e-09  9.12015e-010  3.382        0.0033    ***
  ABC        5.00000      2.59637e-010  1.926e+010  2.77e-175  ***

Среднее зав. перемен    746.4821  Ст. откл. зав. перемен  1026.452
Сумма кв. остатков      4.26e-18  Ст. ошибка модели      4.86e-10
R-квадрат              1.000000  Испр. R-квадрат        1.000000
Лог. правдоподобие      566.8903  Крит. Акаике          -1113.781
Крит. Шварца          -1100.459  Крит. Хеннана-Куинна  -1109.708

Примерно так.

P.S. Некоторые коэффициенты ничтожно малы. Можно попробовать обойтись без этих строк.
P.P.S. А в GNU R это делается вот так

Olga_Olga 24.05.2013 21:44

Здравствуйте!

Я использовала МНК для оценки параметров модели. Построила уравнение. Провела тест на гетероскедастичность: результат положительный. Теперь, как я понимаю, мне нужно применить др. линейную модель: взвешенный МНК или модель с поправкой на гет. Подскажите, пожалуйста, что это за метод такой модель с поравкой на гет.?Не могу такого найти в литературе.
И вот еще: взвешивать нужно по какой переменной?

Hogfather 24.05.2013 22:13

Olga_Olga, здравствуйте, выше (#4) есть ссылка на книгу. См. страницу 155 и далее. Это если кратко. Подробнее постараюсь ответить на следующей неделе.

JoeBlack 20.11.2013 23:14

Подскажите пожалуйста как работает фильтр Годрика-Прескота, пытаюсь по гайду разобраться, но никак не пойму

Hogfather 20.11.2013 23:47

JoeBlack, в gretl это фильтр работает именно так как задумано его создателями: выделяет тренд и циклическую составляющую и из данных.
В сумме эти два компонента дают исходные данные.
Основная решаемая задача -- выделение тренда или отклонения от тренда для последующего анализа.

Достаточно подробно описано вот тут:
http://en.wikipedia.org/wiki/Hodrick...rescott_filter


Текущее время: 22:41. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
© 2001—2024, «Аспирантура. Портал аспирантов»