#r #highcharts #r-highcharter
#r #highcharts #r-верхняя диаграмма
Вопрос:
У меня есть вектор, который содержит доходность фондового рынка. Я хотел бы добавить нормальное распределение к графику в highcharts. Я пытался использовать dnorm(), но, похоже, не могу понять, как отобразить его на графике. Я решил обойти проблему, создав вектор с помощью rnorm(). Тем не менее, я должен использовать 20 тыс. точек, чтобы устранить неровности. Это отнимает много времени.
Вот мой текущий обходной путь
library(quantmod)
library(highcharter)
library(tidyverse)
getSymbols("SPY")
returns = na.omit(coredata(ROC(Ad(SPY))))
r = rnorm(20000, mean = 0, sd = sd(returns))
hchart(
density(returns), type = "area",
name = "SPY"
) %>%
hc_add_series(
density(r), type = "area",
name = "Normal"
)
Комментарии:
1. Что вы имеете в виду, говоря об удалении неровностей? Чтобы они были точно сопоставлены? Если это так, я думаю, вам следует изменить сигму нормального распределения. Это не будет идеальным совпадением, но
r = rnorm(20000, mean = 0, sd = sd(returns)/2)
сделает их ближе.2. @maydin поскольку rnorm() создает фактическое число, это не будет идеальным нормальным распределением. Вы можете видеть это, потому что черная линия не гладкая — на ней есть неровности. Я хотел бы построить что-то вроде dnorm(), где он создает идеальный нормальный дистрибутив
3. Тогда эта ссылка может быть полезной…
4. Кроме того: возможно, вы не захотите подгонять нормальное распределение к доходности ваших акций, поскольку оно обычно не подходит наилучшим образом. Возможно, вы захотите вместо этого рассмотреть распределение Johnson SU (подробнее здесь ). В этом случае существует пакет R ( JSUparameters ), который найдет параметры наиболее подходящего распределения JSU для ваших данных, которые вы затем можете наложить на свой график.