Поиск точек перегиба на geom_line - PullRequest
0 голосов
/ 05 августа 2020

Я застрял в поиске точек перегиба для совокупной скорости с течением времени графикi c Я построил график с geom_line ggplot.

Данные здесь .

В случае, если мне нужно сделать несколько шагов назад для более осуществимого / лучшего подхода, вот мой процесс. Я присвоил «1» всем случаям (столбец счетчика). Я упорядочил данные по дате и рассчитал совокупную сумму для каждого случая (совокупный столбец). Я разделил этот кумулятивный случай на столбец итогов (в данном случае 7083), чтобы получить кумулятивную ставку (столбец ставок).

Я использую ggplot, чтобы увидеть, как кумулятивная скорость меняется с течением времени.

zip <- read_csv("example.csv")

ggplot(data=zip, aes(date, rate)) + geom_line(color = "#275695", size = 1)

Результат

Я хочу знать, где находится точка перегиба на этой geom_line. Я знаю, что есть разные точки перегиба, но я хочу знать, где «взлетает» этот показатель. В данном случае это около 0,13. Мне нужно провести этот анализ для сотен фреймов данных и вычислить среднюю точку «взлета».

Любые идеи или подходы были бы чрезвычайно полезны!

Большое спасибо!

1 Ответ

3 голосов
/ 05 августа 2020

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

Чтобы понять, что я имею в виду, давайте просто построим график с 2005 по 2010 год:

ggplot(data = zip, aes(date, rate)) + 
  geom_line(color = "#275695", size = 1) +
  coord_cartesian(xlim = as.Date(c('2005-01-01', '2010-01-01')),
                  ylim = c(0, 0.015))

enter image description here

Wow - it really "takes off" about 2009. Maybe there's some kind of inflection point in there?

Now let's plot 2005 to 2012:

ggplot(data = zip, aes(date, rate)) + 
  geom_line(color = "#275695", size = 1) +
  coord_cartesian(xlim = as.Date(c('2005-01-01', '2012-01-01')),
                  ylim = c(0, 0.045))

enter image description here

Wow! Forget 2009! It was 2010 when things really took off. In fact, we can now see 2009 looks like it was hardly taking off at all. What were we thinking? There's probably an inflection point around 2010 to 2011 somewhere, right?

Let's now plot out to 2014:

ggplot(data = zip, aes(date, rate)) + 
  geom_line(color = "#275695", size = 1) +
  coord_cartesian(xlim = as.Date(c('2005-01-01', '2014-01-01')),
                  ylim = c(0, 0.125))

enter image description here

Hmm. Now it looks like 2010 wasn't that dramatic after all, but check out our "inflection point" in 2012.


It seems that our plot keeps the same over all shape as we increase the x axis, and it is always tempting to think there is an inflection point about 2/3 of the way along when the plot "really takes off", but that just reflects the fact that we're not very good at intuitively grasping how exponential growth looks when plotted on normal axes.

In fact, if we plot it with a logarithmic y axis, we get the following:

ggplot(data = zip, aes(date, rate)) + 
  geom_line(color = "#275695", size = 1) + 
  scale_y_log10()

введите описание изображения здесь

Из этого видно, что на самом деле наблюдается очень явный экспоненциальный рост между 2005 и 2013 годами. Затем рост замедляется до некоторого времени в 2015 году. После этого он снова возобновляется, но решающим моментом является то, что та часть, где, по вашему мнению, график визуально «взлетает», на самом деле представляет более медленный рост в относительном выражении, чем где-либо в период с 2005 по 2013 год.

Тогда ответ на ваш вопрос: нет точка перегиба, при которой рост действительно вылетает . Наблюдается устойчивый экспоненциальный рост с тремя разными темпами, но наибольшая скорость роста наблюдается в левой части кривой - просто график слишком "уменьшен", чтобы это увидеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...