23 дек. 2012 г.

Построение графика с двумя осями Y в статистическом пакете R


При построении графиков временных рядов иногда бывает нужно объединить два ряда в один график. Чаще всего это бывает необходимо в двух случаях:
  • каждый из рядов имеет разную размерность
  • размерность одна, но ряды отличаются на порядок или несколько порядков по величине.
В Excel такое построение решается очень просто: “Параметры ряда” - “По вспомогательной оси”. Как же сделать подобное в R? Проблема заключается в том, что стандартные средства построение графиков в R - базовая графика, либо известный пакет ggplot2 не имеют встроенных средств для построения таких графиков. Причем по принципиальным соображениям. К примеру, создатель пакета ggplot2 Hadley Wickham написал еще в 2008 году по этому поводу следующее: “It's possible to do this with base graphics, but impossible to do this with ggplot2. I'm against this technique because I believe it leads to serious visual distortions and meaningless graphics.” Специалисты по визуализации предлагают вместо того, чтобы “смешивать” два графика в один, использовать две панели на одном графике.
К примеру, мы хотим построить график индекса S&P 500 и цены нефти марки Brent для того, чтобы посмотреть, есть ли визуальная зависимость между двумя рядами. Для начала получим исходные данные из базы данных Федерального резервного банка Сент-Луиса - FRED c помощью отличной библиотеки для получения бесплатных финансово-экономических данных quantmod.
require(quantmod)
Sys.setenv(TZ = "GMT")  # необходимо установить часовой пояс на GMT, чтобы без скачивание из FRED работало без ошибок
spx <- getSymbols("SP500", src = "FRED", auto.assign = FALSE)  #S&P 500 Stock Price Index (SP500)
brent <- getSymbols("DCOILBRENTEU", src = "FRED", auto.assign = FALSE)  #Crude Oil Prices: Brent - Europe
API базы данных FRED работает таким образом, что он возвращает все историю в каждом вызове. Задать временной интервал  за который необходимы данные, в действующей реализации невозможно. Скорее всего, они добавят это в будущем, чтобы снизить нагрузки на свои сервера. С нашей точки зрения, это приводит к тому, что данные по индексу S&P 500 доступны с 1957 года.
plot(spx)
plot of chunk unnamed-chunk-2
plot(brent)
plot of chunk unnamed-chunk-2
А данные по ценам на нефть - с 1987 года. Мы же хотим, к примеру, только цифры за последние 5 лет.
brent <- brent["2007::"]  # возьмем данные по нефти только с 2007 года
data <- merge(spx, brent, join = "right")  #объединим индикаторы в один объект xts
names(data) <- c("spx", "brent")  # присвоим нашим имена
Параметр join в функции merge.xts определяет каким образом, осуществляется “слияние” рядов. В нашем случае мы определили слияние по правой переменной (right). Это означает, что в новый объект должны войти все показатели правой переменной и только те значения левой переменной, которые совпадают с правой. В R очень легко комбинировать несколько графиков в один визуальный элемент. Параметр mfrow позволяет задавать матрицу из n-строк и m-столбцов, который заполняются построчно.
par(mfrow = c(2, 1))  # строим графики в 2 строках и 1 столбце
plot(data$spx, main = "S&P 500")
plot(data$brent, main = "Brent")
plot of chunk unnamed-chunk-4
Графики совмещены точно друг над другом, что позволяет соотносить их между собой. Это стандартная рекомендация от специалистов по R, когда необходимо строить графики временных рядов для сравнения друг с другом. Но что делать, если все таки необходимо объединить два ряда в один график и нарисовать разные левые и правые оси для оси Y?
Как обычно в R можно один и тот же результат получить с помощью разных инструментов. Наиболее простой вариант следующий. С помощью того же параметра new можно “заставить” R нарисовать на месте уже нарисованного. Так как оба наших ряда полностью совпадают по оси Х (времени), то все будет выглядеть абсолютно нормально. Создадим специальную функцию для этого, чтобы можно было ее использовать в будущем для разных рядов:
Plot2Axis <- function(y1, y2, name1, name2) {
    y <- merge(y1, y2)
    plot.zoo(na.omit(y[, 1]), type = "l", col = "#3266cc", lwd = 2, main = "", 
        xlab = "Дата", ylab = "points", oma = c(4, 4, 2, 0.5))
    grid()  #нарисовать сеточку
    par(new = TRUE)  # параметр, который позволяет рисовать новый график на текущем графике
    plot.zoo(na.omit(y[, 2]), type = "l", col = "#db3a10", lwd = 2, xaxt = "n", 
        yaxt = "n", xlab = "", ylab = "", oma = c(4, 4, 2, 0.5))
    axis(4)  #построим ось второго графика слева
    legend("topright", col = c("#3266cc", "#db3a10"), lty = 1, lwd = 3, bty = "n", 
        legend = c(name1, name2), text.col = c("#3266cc", "#db3a10"))
}
# теперь можно использовать функцию,
# задав предварительно несколько
# глобальных параметров, чтобы график
# выглядел более привлекательно

par(bty = "l")  #  глобальный параметр - граница вокруг графика слева и снизу
par(las = 1)  #  глобальный параметр - текст пишется параллельно оси X
par(mar = c(2, 4, 1, 3))  #  глобальный параметр - границы между область графика и остальной частью

Plot2Axis(data$spx, data$brent, "S&P 500", "Brent")
plot of chunk unnamed-chunk-5
Примечание: данный пост создавался с помощью пакета knitr, который не всегда дружит с кириллицей в текущей реализации. Поэтому я не стал использовать надписи на кириллице в графиках. В самом R все отображается правильно.
-->

11 авг. 2012 г.

Про оценку естественного уровня безработицы (NAIRU) в России (часть 1)




 Немного истории

В 1958 году новозеландский экономист Олбан Ульям Филлипс опубликовал в британском журнале Economica статью. Ее несколько старомодное название раскрывает основную идею автора –  «The Relation Between Unemployment and the Rate of Change of Money Wage Rates in the United Kingdom, 1861–1957” (Phillips 1958). Именно эта статья дала имя так называемой «кривой Филлипса». Филлипс на длинных рядах для Великобритании показал отрицательную взаимозависимость между уровнем безработицы и ростом заработной платы в экономике (обратим внимание, что изначально речь идет не о потребительской инфляции). Вот как выглядит один из графиков статьи 1958 года:


С тех пор прошло много времени и много исследований по этому поводу. Экономисты пришли к единодушному мнению о том, что «кривая Филлипса» может выполняться лишь в краткосрочном периоде, а в долгосрочном плане «кривая» является вертикальной линией, которая соответствует так называемому «естественному уровню безработицы». Естественный уровень определяется как равновесный уровень безработицы, то есть такой уровень, в котором совокупный предложение труда соответствует совокупному спросу на труд. При естественном уровне все, кто хочет работать при существующем уровне оплаты труда, нашли работу, и соответственно, нет вынужденной безработицы. Существует некий «естественный» уровень безработицы, так как часть экономически активного населения постоянно находится в процессе смены работы.
Понятие «естественного уровня безработицы» (natural rate of unemployment) тесным образом примыкает к показателю NAIRU (Non-Accelerating Inflation Rate of Unemployment), что можно перевести как «не ускоряющий инфляцию уровень безработицы». Зачастую оба термина используют как синонимы или как имеющие одно и то же значение. Тем не менее, между ними есть определенное смысловое отличие. Термин NAIRU, связанный с работами Милтона Фридмена, акцентирует именно на инфляции, в то время как «естественный уровень безработицы» имеет более общее значение и связан с прочими долгосрочными равновесными параметрами состояния экономики.
 Почему же оценкам «кривой Филлипса», ествественного уровня безработицы уделяется столько их внимания? В общем случае их важность связана с тем, что они позволяют связать «реальные» показатели, такие как уровень безработицы с номинальными показателями, такими как уровень инфляции. Отсюда могут следовать выводы с точки зрения денежно-кредитной политики центрального банка, который имеет возможность влиять лишь на номинальные показатели, но хотел бы воздействовать именно на «реальные показатели».
Это небольшой экскурс в историю, но наша задача носит вполне прикладной характер – попробовать оценить естественный уровень безработицы для российской экономики (я использую NAIRU и «естественный уровень» как взаимозаменяемые).

    Посмотрим на данные

Проблему с оценкой уровня NAIRU для России иллюстрирует обычный график распределения между уровнем инфляции и логарифмом инфляции (логарифм берется для того, чтобы «сжать» ось значений из-за большого разброса данных по инфляции):



























Источник: расчеты автора по данным ФСГС.
Примечание: период с января 1994 года по июнь 2012 года, всего 222 точки. 
Инфляция – динамика ИПЦ за последние 12 месяцев.


Ничего похожего на классическую «кривую Филипса» не видно.  Отрицательная связь между показателями наблюдалась лишь в короткий период 1995-1997 гг., когда за счет введения фиксированного курса рубля и прекращения эмиссионного финансирования бюджетного дефицита удалось снизить инфляцию. А безработица на фоне продолжающейся трансформации экономики продолжала расти. Отсюда получается отрицательная связь между инфляцией и безработицей. 

В виде графиков, совмещенных по разным осям:

Источник: расчеты по данным ФСГС.

Как видно, из приведенных графиков, напрямую отрицательная связь между уровнем инфляцией и уровнем безработицы не прослеживается. Скорее, они двигаются в одном и том же направлении. Оба показатели выросли в период кризиса 1998 года и за тем вместе снижались следующие 10 лет. Разумеется, исходя из этого, вовсе не следует, что такой связи нет: и на инфляции, и на безработицу оказывает воздействие множество прочих факторов, не представленных на графике.
В первую очередь, попробуем разобраться, что оказывало воздействие на динамику уровня безработицы. Не претендуя на хорошее понимание этого вопроса, сошлюсь на мнение крупнейшего российского специалиста – Ростислава Исааковича Капелюшникова (Капелюшников 2009). В этой работе приводится убедительные доводы о том, что российские предприятия использовали «нестандартные формы» адаптации к изменению экономической ситуации – задержки заработной платы, вынужденные отпуска, переводы работников на неполное рабочее время. В результате, уровень безработицы менялся не так сильно, как мог бы изменяться исходя из экономической ситуации и большей мобильности рынка труда. Капелюшников приводит аргументы в пользу неэффективности подобной политики, но, к сожалению, не приводит эмпирических свидетельств, каким образом изменилась модель рынка труда в последние годы.

Список использованных источников

Phillips, A.W., 1958. The Relation Between Unemployment and the Rate of Change of Money Wage Rates in the United Kingdom, 1861–19571. Economica, 25(100), pp.283-299. Available at: http://dx.doi.org/10.1111/j.1468-0335.1958.tb00003.x.
Капелюшников, Р., 2009. Конец российской модели рынка труда?

статья для Слона

Slon.ru
Освоение Штокмана стоит $30 млрд – слишком много для норвежцевОсвоение Штокмана стоит $30 млрд – слишком много для норвежцев
Но «Газпром» вряд ли будет испытывать сложности с тем, чтобы найти замену вышедшей их проекта Statoil • Марсель Салихов
Подробнее на Slon.ru

Про пенсионные накопления и эффективность их инвестирования


Если кто не в курсе, родное государство рассматривает возможность накопительную часть пенсии.  То есть ту часть социальных отчислений в размере 6%, про которые каждому работающему моложе  1967 года  приходят ежегодные «письма счастья».   Дело еще пока нерешенное. За полную отмену накопительной пенсии выступают Минтруда и Минсоцразвития, против  – Минфин, практически все эксперты,  Эльвира Набиуллина и много еще кого. Более подробно про все перипетии пенсионной реформы можно почитать в статьях у Антона Табаха.  
Я тоже считаю, что отмена накопительной части пенсии – глупая и неправильная идея. Она не решит проблема несбалансированности Пенсионного фонда, который получает в форме взносов 2,6 трлн рублей, а выплачивает пенсий на 5,4 трлн рублей. Разница покрывается за счет трансферта из федерального бюджета. Но все пенсионные накопления сейчас не превышают 2 трлн рублей. Получается, что полная конфискация накопленных за 10 лет накоплений не решит дисбаланс Пенсионного фонда даже за 1 год! Это неправильно еще по множеству причин, но дело не в этом.  На фоне всеобщего внимания я решил посмотреть, как же инвестируются пенсионные накопления и на сколько эффективно. Все исходные данные для анализа взяты с сайта ПФР.

Для понимания: пенсионные накопления можно инвестировать либо через управляющую компаний (УК), либо через негосударственный пенсионный фонд (НПФ). Но НПФ потом заключает договора с УК и фактически УК инвестируют средства, поэтому эффективность инвестиций нужно оценивать на уровне УК. Средства «молчунов» (вариант по дефолту) инвестируются через т.н. государственную управляющую компанию (ГУК) – Внешэкономбанк. ВЭБ контролирует сейчас около 75% пенсионных накоплений.

Посмотрим, к примеру, на результаты прошлого - 2011 года - по управляющим компаниям. 


Максимальная доходность из 60 УК составила всего лишь 6,6%! ВЭБ со своими вложениями в госооблигации идет третьем месте с результатом 4,2%. 27 УК показали отрицательную доходность по итогам 2011 года. Понятно, что в 2011 году рынок акций был в минусе на 15%, и это сильно влияет на результаты инвестирования. Но с точки зрения обычного гражданина смотрящего на результаты подобной "работы" и имеющего возможность в принципе положить сбережения на гарантированный государством банковский депозит по 6-8-10%, такие результаты обескураживают.

Посмотрим на результаты в более длительной перспективе - на накопленную доходность с 2004 по 2011 год.




За этот период лишь одна управляющая компания -  УК "Открытие" - смогла обогнать инфляцию за этот период. Консервативный ВЭБ с накопленной доходностью в 40% -  в середине списка. То есть почти половина УК, имеющих инвестировать в широкий круг инструментов, показала результаты хуже ВЭБа. В особых "лузерах" - УК "Ямал", который за 9 лет потерял почти 30%, доверенных ему средств.


Другой важный вопрос - стоимость подобного инвестирования в форме так называемого "коэффициента расходов инвестиционного портфеля". Она включает в себя как непосредственные расходы УК, так и ее вознаграждение за результаты.



Как видно по графику, в среднем "расходная" часть составляла около 0,5% (пересечение линии тренда с осью Х). Дополнительно УК берут около 10-15% от полученной ими доходности. Причем стоимость расходов довольно сильно отличается от УК к УК, что связано в первую очередь, с количеством активов в управлении. Так у ВЭБа коэффициентов расходов является минимальным среди всех УК - в пределах 0,1%.


Вот таблица с численными результатами достигнутой номинальной доходности по УК, если кто интересуются вопросом пенсионных накоплений: 

29 июн. 2012 г.

Национальный состав субъектов РФ по переписи 2010 года

Источник данных: доклад "Об итогах данных Всероссийской переписи населения 2010 года", единственный полный источник о том, сколько людей разных национальностей проживает в том или ином регионе.
Некоторые собственные выводы из данных:
  • около 81% населения РФ - русские. Самый "русский" регион - Вологодская область (97.3% населения - русские). Наименее "русские" регионы - Дагестан, Чечня, Ингушетия. Доля русского населения в этих регионах не превышает нескольких процентов. 
  • Вторая по численности национальность в России - татары (5.5 млн. человек). Но в Татарстане живет только 2 млн из них. Остальные татары проживают в других регионах. 
  •  В Башкирии башкиры составляют лишь около 30% населения, русских там 36%, а татар - 25%. Это, наверно, наименее "национальная" из национальных республик в смысле доли коренного населения. 
  • Чеченцы - шестая по численность национальность в стране (1.5 млн человек), из них около 200 тыс. живет за пределами Чечни и соседних республик.
На графиках можно посмотреть национальный состав любого российского региона по данным переписи.
 Я перестроил структуру исходных данных, чтобы удобнее было их анализировать. Планирую еще сравнить с национальным составом по переписи 2002 года и последней советской переписи 1989 года.

8 июн. 2012 г.

Популярность facebook в разных странах в начале 2012 года

изучая построение Google Charts, построил карту, которая показывает количество пользователей facebook в % от общего населения страны. Больше всего фейсбук популярен в Исландии - 67,6% населения страны пользуется этой социальной сетью!

Источник: Internet World Stats


Данные - по состоянию начало 2012 года.