Наложение нормального распределения в Highcharts R

#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 для ваших данных, которые вы затем можете наложить на свой график.