Пакет ISLR представляет симулированный набор данных Default, который ставит вероятность дефолта клиента банка в зависимость от трех параметров: Является клиент студентом или нет: student Доход клиента: income Размер задолженности: balance library(ISLR) head(Default) ## default student balance income ## 1 No No 729.5265 44361.625 ## 2 No Yes 817.1804 12106.135 ## 3 No No 1073.5492 31767.139…

Закачка исторических данных происходит в два этапа: Сначала закачаем максимальные истории индекса MICEX и Газпрома, Сбербанка, Роснефти и Норникеля с сайта Финама. library(rusquant) smb1 <- c(«MICEX», «GAZP», «SBER», «ROSN», «GMKN») getSymbols(smb1, src=»Finam», from =»1970-01-01″) ## [1]«MICEX» «GAZP» «SBER» «ROSN» «GMKN» Вторым этапом, закачаем с сайта Quandl максимальную историю фьючерсов на нефть, золото, сою, и медь…

Разработка стратегии включает в себя несколько этапов: Выбор классов активов и получение историй цен: для акций MICEX, GAZP, SBER и др. (источник Finam) для фьючерсов склейки историй по нефти, золоту, серебру, агрикоммодитиз (источник Quandl). Подбор стратегий и сортировка по классам: trend following (momentum) mean-reversion. Тестирование стратегий на историях. Определение “оптимального” набора параметров. Определение с помощью…

Некоторые стратегии основаны на вложении в активы (стратегии), которые показали наилучший результат в предыдущий период. Первым шагом в определении, будут ли положительные результаты в данном периоде повторяться в будущих периодах, может быть визуализация исторических результатов. Вариант такой визуалиции при помощи встроенных функций пакета SIT приводится ниже. Для начала, загрузим необходимые пакеты: con <- gzcon(file('../sit.gz', 'rb'))…

Открытие коротких позиций в пакете SIT имеет особенность: для тестирования торговых стратегий необходимо пользоваться функцией bt.run.share(data, clean.signal = T), или вместо весов позиций пользоваться количеством акций. Почему нельзя пользоваться bt.run(data) проиллюстрируем на следующем примере: library(SIT) library(quantmod) data <- new.env() data$quote <- xts(c(100, 90, 81, 90, 100), order.by = Sys.Date() + 0:4) colnames(data$quote) <- "Close" bt.prep(data)…

Подводя итог серии предыдущих постов, посвященных функции train()и различным методам препроцессинга данных c помощью функции preProcess, можно представить “стандартный” вид функции train() следующим образом: train(form = formula, data = data.frame, method= "…", preProcess = c("center", "scale", "…"), tuneGrid = expand.grid(param1 =c(), param2=c()), trControl = trainControl("repeatedcv", number=10, repeats=5) # "cv", "boot", … ) Дополнительные полезные функции:…

Для подготовки данных в пакете caret существует функция preProcess. library(caret) methods(preProcess) ## [1]preProcess.default args(preProcess.default) ## function (x, method = c(«center», «scale»), thresh = 0.95, pcaComp = NULL, ## na.remove = TRUE, k = 5, knnSummary = mean, outcome = NULL, ## fudge = 0.2, numUnique = 3, verbose = FALSE, …) ## NULL Подготовка данных…

Функция train() в пакете caret служит для тренировки, кросс-валидации (cross-validation) и, в конечном итоге, для выбора лучшей модели. Простейший пример применения функции: library(caret) set.seed(1) lmfit

Качество регрессионной модели определяется расхождением между предсказанными и наблюдаемыми значениями или, на статистическом языке, величиной ошибок: среднеквадратическая ошибка RMSE (Root mean square error) остаточная стандартная ошибка RSE (residual standard error) коэффициент детерминации (R-squared) Рассмотрим каким образом вычисляются эти значения и что они означают на примере зависимости з/п профессоров в США от количества лет, прошедших с…

Очень часто при анализе статистических моделей аналитики уделяют большое внимание p-значениям коэффиентов. Например, при анализе: lmfit <- lm (mpg ~ ., data=mtcars) summary(lmfit) ## ## Call: ## lm(formula = mpg ~ ., data = mtcars) ## ## Residuals: ## Min 1Q Median 3Q Max ## -3.4506 -1.6044 -0.1196 1.2193 4.6271 ## ## Coefficients: ## Estimate…

© 2014 In R we trust.
Top
Follow us: