Subscribe to R bloggers feed R bloggers
R news and tutorials contributed by hundreds of R bloggers
Updated: 3 hours 46 min ago

Tidy word vectors, take 2!

Mon, 11/27/2017 - 01:00

(This article was first published on Rstats on Julia Silge, and kindly contributed to R-bloggers)

A few weeks ago, I wrote a post about finding word vectors using tidy data principles, based on an approach outlined by Chris Moody on the StitchFix tech blog. I’ve been pondering how to improve this approach, and whether it would be nice to wrap up some of these functions in a package, so here is an update!

Like in my previous post, let’s download half a million posts from the Hacker News corpus using the bigrquery package.

library(bigrquery) library(tidyverse) sql <- "#legacySQL SELECT stories.title AS title, stories.text AS text FROM [bigquery-public-data:hacker_news.full] AS stories WHERE stories.deleted IS NULL LIMIT 500000" hacker_news_raw <- query_exec(sql, project = project, max_pages = Inf)

And then let’s clean the text and make a data frame containing only the text, plus an ID to identify each “document”, i.e., post.

library(stringr) hacker_news_text <- hacker_news_raw %>% as_tibble() %>% mutate(title = na_if(title, ""), text = coalesce(title, text)) %>% select(-title) %>% mutate(text = str_replace_all(text, "'|"|/", "'"), ## weird encoding text = str_replace_all(text, "", " "), ## links text = str_replace_all(text, ">|<|&", " "), ## html yuck text = str_replace_all(text, "&#[:digit:]+;", " "), ## html yuck text = str_replace_all(text, "<[^>]*>", " "), ## mmmmm, more html yuck postID = row_number()) Sliding windows

Starting from here is where my approach has changed a bit. Instead of using the unnest_tokens() function a total of three times to find the skipgrams, here I only use unnest_tokens() once, and then use a function slide_windows() to identify the skipgram windows.

slide_windows <- function(tbl, doc_var, window_size) { # each word gets a skipgram (window_size words) starting on the first # e.g. skipgram 1 starts on word 1, skipgram 2 starts on word 2 each_total <- tbl %>% group_by(!!doc_var) %>% mutate(doc_total = n(), each_total = pmin(doc_total, window_size, na.rm = TRUE)) %>% pull(each_total) rle_each <- rle(each_total) counts <- rle_each[["lengths"]] counts[rle_each$values != window_size] <- 1 # each word get a skipgram window, starting on the first # account for documents shorter than window id_counts <- rep(rle_each$values, counts) window_id <- rep(seq_along(id_counts), id_counts) # within each skipgram, there are window_size many offsets indexer <- (seq_along(rle_each[["values"]]) - 1) %>% map2(rle_each[["values"]] - 1, ~ seq.int(.x, .x + .y)) %>% map2(counts, ~ rep(.x, .y)) %>% flatten_int() + window_id tbl[indexer, ] %>% bind_cols(data_frame(window_id)) %>% group_by(window_id) %>% filter(n_distinct(!!doc_var) == 1) %>% ungroup }

This allows us to get to a tidy data frame with PMI values for each pair of words. This PMI value is what tells us whether words likely to occur together or unlikely to occur together. I also was smarter and put the filter() to remove very rare words before trying to identifying skipgrams. In this example, a word has to be used 20 times (overall, in the 500,000 posts) to be included.

library(tidytext) library(widyr) tidy_pmi <- hacker_news_text %>% unnest_tokens(word, text) %>% add_count(word) %>% filter(n >= 20) %>% select(-n) %>% slide_windows(quo(postID), 8) %>% pairwise_pmi(word, window_id) tidy_pmi ## # A tibble: 30,853,734 x 3 ## item1 item2 pmi ## ## 1 best the 0.732 ## 2 part the 0.501 ## 3 is the 0.0365 ## 4 that the -0.145 ## 5 since the -0.0260 ## 6 it's the -0.364 ## 7 not the -0.262 ## 8 in the 0.184 ## 9 any the -0.643 ## 10 fonts the -0.140 ## # ... with 30,853,724 more rows

This was the part of the blog posts where I hoped to wow everyone with a dramatic speed improvement, but it is a more modest one. Based on my benchmarking, this approach is 10% faster than the approach of my previous blog post. Identifying all the skipgram windows is a pretty expensive process. If you want a real-world estimate, it takes my computer about 7 minutes to complete this step.

We can then find the word vectors from the PMI values using the new widely_svd() function in widyr. This is much faster compared to the other step.

tidy_word_vectors <- tidy_pmi %>% widely_svd(item1, item2, pmi, nv = 256, maxit = 1000) Exploring results

So hooray! We have found word vectors again, a bit faster, with clearer and easier-to-understand code. I do argue that this is a real benefit of this approach; it’s based on counting, dividing, and matrix decomposition and is thus much easier to understand and implement than anything with a neural network. And the results?

nearest_synonyms <- function(df, token) { df %>% widely(~ . %*% (.[token, ]), sort = TRUE)(item1, dimension, value) %>% select(-item2) } tidy_word_vectors %>% nearest_synonyms("tokyo") ## # A tibble: 27,267 x 2 ## item1 value ## ## 1 tokyo 0.0197 ## 2 hong 0.0145 ## 3 london 0.0144 ## 4 kong 0.0141 ## 5 paris 0.0140 ## 6 cities 0.0101 ## 7 japan 0.0100 ## 8 singapore 0.00952 ## 9 los 0.00899 ## 10 san 0.00860 ## # ... with 27,257 more rows tidy_word_vectors %>% nearest_synonyms("python") ## # A tibble: 27,267 x 2 ## item1 value ## ## 1 python 0.0533 ## 2 ruby 0.0309 ## 3 java 0.0250 ## 4 php 0.0241 ## 5 c 0.0229 ## 6 perl 0.0222 ## 7 javascript 0.0203 ## 8 django 0.0202 ## 9 libraries 0.0184 ## 10 languages 0.0180 ## # ... with 27,257 more rows tidy_word_vectors %>% nearest_synonyms("bitcoin") ## # A tibble: 27,267 x 2 ## item1 value ## ## 1 bitcoin 0.0626 ## 2 currency 0.0328 ## 3 btc 0.0320 ## 4 coins 0.0300 ## 5 blockchain 0.0285 ## 6 bitcoins 0.0258 ## 7 mining 0.0252 ## 8 transactions 0.0241 ## 9 transaction 0.0235 ## 10 currencies 0.0228 ## # ... with 27,257 more rows tidy_word_vectors %>% nearest_synonyms("women") ## # A tibble: 27,267 x 2 ## item1 value ## ## 1 women 0.0648 ## 2 men 0.0508 ## 3 male 0.0345 ## 4 female 0.0319 ## 5 gender 0.0274 ## 6 sex 0.0256 ## 7 woman 0.0241 ## 8 sexual 0.0226 ## 9 males 0.0197 ## 10 girls 0.0195 ## # ... with 27,257 more rows

I’m still learning about how word vectors are evaluated to be able to make some kind claim about how good word vectors like these are, for realistic datasets. One way that word vectors can be evaluated is by looking at how well the vectors perform on analogy tasks, like King - Man + Woman = Queen. What are some analogies we can find in this Hacker News corpus? Let’s write a little function that will find the answer to token1 - token2 + token 3 = ???.

analogy <- function(df, token1, token2, token3) { df %>% widely(~ . %*% (.[token1, ] - .[token2, ] + .[token3, ]), sort = TRUE)(item1, dimension, value) %>% select(-item2) } ## operating systems tidy_word_vectors %>% analogy("osx", "apple", "microsoft") ## # A tibble: 27,267 x 2 ## item1 value ## ## 1 windows 0.0357 ## 2 microsoft 0.0281 ## 3 ms 0.0245 ## 4 visual 0.0195 ## 5 linux 0.0188 ## 6 studio 0.0178 ## 7 net 0.0171 ## 8 desktop 0.0164 ## 9 xp 0.0163 ## 10 office 0.0147 ## # ... with 27,257 more rows ## countries tidy_word_vectors %>% analogy("germany", "berlin", "paris") ## # A tibble: 27,267 x 2 ## item1 value ## ## 1 germany 0.0320 ## 2 france 0.0231 ## 3 europe 0.0213 ## 4 paris 0.0212 ## 5 uk 0.0200 ## 6 london 0.0178 ## 7 eu 0.0176 ## 8 spain 0.0175 ## 9 italy 0.0170 ## 10 countries 0.0163 ## # ... with 27,257 more rows ## THOUGHT LEADERS tidy_word_vectors %>% analogy("gates", "windows", "tesla") ## # A tibble: 27,267 x 2 ## item1 value ## ## 1 tesla 0.0419 ## 2 gates 0.0364 ## 3 musk 0.0348 ## 4 elon 0.0335 ## 5 steve 0.0247 ## 6 electric 0.0234 ## 7 car 0.0234 ## 8 ford 0.0228 ## 9 larry 0.0222 ## 10 bill 0.0219 ## # ... with 27,257 more rows

Well, those last two are not perfect as the answers I’d identify as best are near the top but below the input tokens. This happens when I have trained vectors using GloVe too, though.

Since we have done a singular value decomposition, we can use our word vectors to understand what principal components explain the most variation in the Hacker News corpus.

tidy_word_vectors %>% filter(dimension <= 24) %>% group_by(dimension) %>% top_n(12, abs(value)) %>% ungroup %>% mutate(item1 = reorder(item1, value)) %>% group_by(dimension, item1) %>% arrange(desc(value)) %>% ungroup %>% mutate(item1 = factor(paste(item1, dimension, sep = "__"), levels = rev(paste(item1, dimension, sep = "__"))), dimension = factor(paste0("Dimension ", dimension), levels = paste0("Dimension ", as.factor(1:24)))) %>% ggplot(aes(item1, value, fill = dimension)) + geom_col(show.legend = FALSE) + facet_wrap(~dimension, scales = "free_y", ncol = 4) + scale_x_discrete(labels = function(x) gsub("__.+$", "", x)) + coord_flip() + labs(x = NULL, y = "Value", title = "First 24 principal components of the Hacker News corpus", subtitle = "Top words contributing to the components that explain the most variation")

This is so great. The first two components contain mostly general purpose English words; remember that these are the vectors that explain the most variation in posts. Does a post contain a lot of these words or not? Then the third component and beyond start to contain more technical or topical words. Dimension 6 is about energy and markets, Dimension 11 is about geopolitics, Dimension 14 is about health discussions, Dimension 16 is about various kinds of people including kids/children/men/women/etc, and so on.

The End

I’m happy to have made a modest improvement in speed here, and to use some new functions from widyr that improve the intuition and understanding around this workflow. This approach allows practitioners to find word vectors with such low overhead (dependency and mental overhead), and I am excited to keep working on it.

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: Rstats on Julia Silge. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

Comparing plotly & ggplotly plot generation times

Mon, 11/27/2017 - 01:00

(This article was first published on R on The Jumping Rivers Blog, and kindly contributed to R-bloggers)




The plotly package. A godsend for interactive documents, dashboard and presentations. For such documents there is no doubt that anyone would prefer a plot created in plotly rather than ggplot2. Why? Using plotly gives you neat and crucially interactive options at the top, where as ggplot2 objects are static. In an app we have been developing here at Jumping Rivers, we found ourselves asking the question would it be quicker to use plot_ly() or wrapping a ggplot2 object in ggplotly()? I found the results staggering.

Prerequisites

Throughout we will be using the packages: dplyr, tidyr, ggplot2, plotly and microbenchmark. The data in use is the birthdays dataset in the mosaicData package. This data sets contains the daily birth count in each state of the USA from 1969 – 1988. The packages can be installed in the usual way (remember you can install packages in parallel)

install.packages(c("mosaicData", "dplyr", "tidyr", "ggplot2", "plotly", "microbenchmark")) library("mosaicData") library("dplyr") library("tidyr") library("ggplot2") library("plotly") library("microbenchmark") Analysis

Let’s load and take a look at the data.

data("Birthdays", package = "mosaicData") head(Birthdays) ## state year month day date wday births ## 1 AK 1969 1 1 1969-01-01 Wed 14 ## 2 AL 1969 1 1 1969-01-01 Wed 174 ## 3 AR 1969 1 1 1969-01-01 Wed 78 ## 4 AZ 1969 1 1 1969-01-01 Wed 84 ## 5 CA 1969 1 1 1969-01-01 Wed 824 ## 6 CO 1969 1 1 1969-01-01 Wed 100

First, we’ll create a very simple scatter graph of the mean births in every year.

meanb = Birthdays %>% group_by(year) %>% summarise(mean = mean(births))

Wrapping this as a ggplot object inside ggplotly() we obtain this…

ggplotly(ggplot(meanb) + geom_point(aes(y = mean, x = year, colour = year)))

{"x":{"data":[{"x":[1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988],"y":[192.379516784263,199.760068460181,191.206117520794,174.833779443255,168.842413182331,170.128306949289,169.264251207729,170.054984473712,178.845794643336,179.128192745224,188.006285253828,193.825565198757,195.298415256514,197.978726833199,195.687939833468,196.803332261867,202.259145850121,202.024281493419,204.84614558152,209.674595521269],"text":["year: 1969
mean: 192.4
year: 1969","year: 1970
mean: 199.8
year: 1970","year: 1971
mean: 191.2
year: 1971","year: 1972
mean: 174.8
year: 1972","year: 1973
mean: 168.8
year: 1973","year: 1974
mean: 170.1
year: 1974","year: 1975
mean: 169.3
year: 1975","year: 1976
mean: 170.1
year: 1976","year: 1977
mean: 178.8
year: 1977","year: 1978
mean: 179.1
year: 1978","year: 1979
mean: 188.0
year: 1979","year: 1980
mean: 193.8
year: 1980","year: 1981
mean: 195.3
year: 1981","year: 1982
mean: 198.0
year: 1982","year: 1983
mean: 195.7
year: 1983","year: 1984
mean: 196.8
year: 1984","year: 1985
mean: 202.3
year: 1985","year: 1986
mean: 202.0
year: 1986","year: 1987
mean: 204.8
year: 1987","year: 1988
mean: 209.7
year: 1988"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":["rgba(19,43,67,1)","rgba(22,49,75,1)","rgba(25,55,84,1)","rgba(29,62,92,1)","rgba(32,68,101,1)","rgba(35,75,110,1)","rgba(39,82,119,1)","rgba(42,89,128,1)","rgba(46,96,138,1)","rgba(49,103,147,1)","rgba(53,110,157,1)","rgba(56,117,166,1)","rgba(60,124,176,1)","rgba(63,131,186,1)","rgba(67,139,196,1)","rgba(71,146,206,1)","rgba(75,154,216,1)","rgba(78,162,226,1)","rgba(82,169,237,1)","rgba(86,177,247,1)"],"opacity":1,"size":5.66929133858268,"symbol":"circle","line":{"width":1.88976377952756,"color":["rgba(19,43,67,1)","rgba(22,49,75,1)","rgba(25,55,84,1)","rgba(29,62,92,1)","rgba(32,68,101,1)","rgba(35,75,110,1)","rgba(39,82,119,1)","rgba(42,89,128,1)","rgba(46,96,138,1)","rgba(49,103,147,1)","rgba(53,110,157,1)","rgba(56,117,166,1)","rgba(60,124,176,1)","rgba(63,131,186,1)","rgba(67,139,196,1)","rgba(71,146,206,1)","rgba(75,154,216,1)","rgba(78,162,226,1)","rgba(82,169,237,1)","rgba(86,177,247,1)"]}},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1970],"y":[170],"name":"99_12558db06f67453096d1fa70a9d28d73","type":"scatter","mode":"markers","opacity":0,"hoverinfo":"none","showlegend":false,"marker":{"color":[0,1],"colorscale":[[0,"#132B43"],[0.0526315789473684,"#16314B"],[0.105263157894737,"#193754"],[0.157894736842105,"#1D3E5C"],[0.210526315789474,"#204465"],[0.263157894736842,"#234B6E"],[0.315789473684211,"#275277"],[0.368421052631579,"#2A5980"],[0.421052631578947,"#2E608A"],[0.473684210526316,"#316793"],[0.526315789473684,"#356E9D"],[0.578947368421053,"#3875A6"],[0.631578947368421,"#3C7CB0"],[0.684210526315789,"#3F83BA"],[0.736842105263158,"#438BC4"],[0.789473684210526,"#4792CE"],[0.842105263157895,"#4B9AD8"],[0.894736842105263,"#4EA2E2"],[0.947368421052632,"#52A9ED"],[1,"#56B1F7"]],"colorbar":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":1.88976377952756,"thickness":23.04,"title":"year","titlefont":{"color":"rgba(0,0,0,1)","family":"","size":14.6118721461187},"tickmode":"array","ticktext":["1970","1975","1980","1985"],"tickvals":[0.0526315789473684,0.315789473684211,0.578947368421053,0.842105263157895],"tickfont":{"color":"rgba(0,0,0,1)","family":"","size":11.689497716895},"ticklen":2,"len":0.5}},"xaxis":"x","yaxis":"y","frame":null}],"layout":{"margin":{"t":24.7671232876712,"r":7.30593607305936,"b":38.7214611872146,"l":43.1050228310502},"plot_bgcolor":"rgba(235,235,235,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":14.6118721461187},"xaxis":{"domain":[0,1],"type":"linear","autorange":false,"tickmode":"array","range":[1968.05,1988.95],"ticktext":["1970","1975","1980","1985"],"tickvals":[1970,1975,1980,1985],"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":3.65296803652968,"tickwidth":0.66417600664176,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":11.689497716895},"tickangle":-0,"showline":false,"linecolor":null,"linewidth":0,"showgrid":true,"gridcolor":"rgba(255,255,255,1)","gridwidth":0.66417600664176,"zeroline":false,"anchor":"y","title":"year","titlefont":{"color":"rgba(0,0,0,1)","family":"","size":14.6118721461187},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"type":"linear","autorange":false,"tickmode":"array","range":[166.800804065384,211.716204638216],"ticktext":["170","180","190","200","210"],"tickvals":[170,180,190,200,210],"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":3.65296803652968,"tickwidth":0.66417600664176,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":11.689497716895},"tickangle":-0,"showline":false,"linecolor":null,"linewidth":0,"showgrid":true,"gridcolor":"rgba(255,255,255,1)","gridwidth":0.66417600664176,"zeroline":false,"anchor":"x","title":"mean","titlefont":{"color":"rgba(0,0,0,1)","family":"","size":14.6118721461187},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":1.88976377952756,"font":{"color":"rgba(0,0,0,1)","family":"","size":11.689497716895}},"hovermode":"closest"},"source":"A","attrs":{"1f7a7d516144":{"x":{},"y":{},"colour":{},"type":"ggplotly"}},"cur_data":"1f7a7d516144","visdat":{"1f7a7d516144":["function (y) ","x"]},"config":{"modeBarButtonsToAdd":[{"name":"Collaborate","icon":{"width":1000,"ascent":500,"descent":-50,"path":"M487 375c7-10 9-23 5-36l-79-259c-3-12-11-23-22-31-11-8-22-12-35-12l-263 0c-15 0-29 5-43 15-13 10-23 23-28 37-5 13-5 25-1 37 0 0 0 3 1 7 1 5 1 8 1 11 0 2 0 4-1 6 0 3-1 5-1 6 1 2 2 4 3 6 1 2 2 4 4 6 2 3 4 5 5 7 5 7 9 16 13 26 4 10 7 19 9 26 0 2 0 5 0 9-1 4-1 6 0 8 0 2 2 5 4 8 3 3 5 5 5 7 4 6 8 15 12 26 4 11 7 19 7 26 1 1 0 4 0 9-1 4-1 7 0 8 1 2 3 5 6 8 4 4 6 6 6 7 4 5 8 13 13 24 4 11 7 20 7 28 1 1 0 4 0 7-1 3-1 6-1 7 0 2 1 4 3 6 1 1 3 4 5 6 2 3 3 5 5 6 1 2 3 5 4 9 2 3 3 7 5 10 1 3 2 6 4 10 2 4 4 7 6 9 2 3 4 5 7 7 3 2 7 3 11 3 3 0 8 0 13-1l0-1c7 2 12 2 14 2l218 0c14 0 25-5 32-16 8-10 10-23 6-37l-79-259c-7-22-13-37-20-43-7-7-19-10-37-10l-248 0c-5 0-9-2-11-5-2-3-2-7 0-12 4-13 18-20 41-20l264 0c5 0 10 2 16 5 5 3 8 6 10 11l85 282c2 5 2 10 2 17 7-3 13-7 17-13z m-304 0c-1-3-1-5 0-7 1-1 3-2 6-2l174 0c2 0 4 1 7 2 2 2 4 4 5 7l6 18c0 3 0 5-1 7-1 1-3 2-6 2l-173 0c-3 0-5-1-8-2-2-2-4-4-4-7z m-24-73c-1-3-1-5 0-7 2-2 3-2 6-2l174 0c2 0 5 0 7 2 3 2 4 4 5 7l6 18c1 2 0 5-1 6-1 2-3 3-5 3l-174 0c-3 0-5-1-7-3-3-1-4-4-5-6z"},"click":"function(gd) { \n // is this being viewed in RStudio?\n if (location.search == '?viewer_pane=1') {\n alert('To learn about plotly for collaboration, visit:\\n https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html');\n } else {\n window.open('https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html', '_blank');\n }\n }"}],"cloud":false},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1}},"base_url":"https://plot.ly"},"evals":["config.modeBarButtonsToAdd.0.click"],"jsHooks":{"render":[{"code":"function(el, x) { var ctConfig = crosstalk.var('plotlyCrosstalkOpts').set({\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1}}); }","data":null}]}} Whilst using plot_ly() give us this…

plot_ly(data = meanb, y = ~mean, x = ~year, color = ~year, type = "scatter")

{"x":{"visdat":{"1f7a43e069a9":["function () ","plotlyVisDat"]},"cur_data":"1f7a43e069a9","attrs":{"1f7a43e069a9":{"y":{},"x":{},"color":{},"alpha":1,"sizes":[10,100],"type":"scatter"}},"layout":{"margin":{"b":40,"l":60,"t":25,"r":10},"xaxis":{"domain":[0,1],"title":"year"},"yaxis":{"domain":[0,1],"title":"mean"},"hovermode":"closest","showlegend":false,"legend":{"y":0.5,"yanchor":"top"}},"source":"A","config":{"modeBarButtonsToAdd":[{"name":"Collaborate","icon":{"width":1000,"ascent":500,"descent":-50,"path":"M487 375c7-10 9-23 5-36l-79-259c-3-12-11-23-22-31-11-8-22-12-35-12l-263 0c-15 0-29 5-43 15-13 10-23 23-28 37-5 13-5 25-1 37 0 0 0 3 1 7 1 5 1 8 1 11 0 2 0 4-1 6 0 3-1 5-1 6 1 2 2 4 3 6 1 2 2 4 4 6 2 3 4 5 5 7 5 7 9 16 13 26 4 10 7 19 9 26 0 2 0 5 0 9-1 4-1 6 0 8 0 2 2 5 4 8 3 3 5 5 5 7 4 6 8 15 12 26 4 11 7 19 7 26 1 1 0 4 0 9-1 4-1 7 0 8 1 2 3 5 6 8 4 4 6 6 6 7 4 5 8 13 13 24 4 11 7 20 7 28 1 1 0 4 0 7-1 3-1 6-1 7 0 2 1 4 3 6 1 1 3 4 5 6 2 3 3 5 5 6 1 2 3 5 4 9 2 3 3 7 5 10 1 3 2 6 4 10 2 4 4 7 6 9 2 3 4 5 7 7 3 2 7 3 11 3 3 0 8 0 13-1l0-1c7 2 12 2 14 2l218 0c14 0 25-5 32-16 8-10 10-23 6-37l-79-259c-7-22-13-37-20-43-7-7-19-10-37-10l-248 0c-5 0-9-2-11-5-2-3-2-7 0-12 4-13 18-20 41-20l264 0c5 0 10 2 16 5 5 3 8 6 10 11l85 282c2 5 2 10 2 17 7-3 13-7 17-13z m-304 0c-1-3-1-5 0-7 1-1 3-2 6-2l174 0c2 0 4 1 7 2 2 2 4 4 5 7l6 18c0 3 0 5-1 7-1 1-3 2-6 2l-173 0c-3 0-5-1-8-2-2-2-4-4-4-7z m-24-73c-1-3-1-5 0-7 2-2 3-2 6-2l174 0c2 0 5 0 7 2 3 2 4 4 5 7l6 18c1 2 0 5-1 6-1 2-3 3-5 3l-174 0c-3 0-5-1-7-3-3-1-4-4-5-6z"},"click":"function(gd) { \n // is this being viewed in RStudio?\n if (location.search == '?viewer_pane=1') {\n alert('To learn about plotly for collaboration, visit:\\n https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html');\n } else {\n window.open('https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html', '_blank');\n }\n }"}],"cloud":false},"data":[{"y":[192.379516784263,199.760068460181,191.206117520794,174.833779443255,168.842413182331,170.128306949289,169.264251207729,170.054984473712,178.845794643336,179.128192745224,188.006285253828,193.825565198757,195.298415256514,197.978726833199,195.687939833468,196.803332261867,202.259145850121,202.024281493419,204.84614558152,209.674595521269],"x":[1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988],"type":"scatter","mode":"markers","marker":{"colorbar":{"title":"year","ticklen":2},"cmin":1969,"cmax":1988,"colorscale":[["0","rgba(68,1,84,1)"],["0.0416666666666587","rgba(70,19,97,1)"],["0.0833333333333293","rgba(72,32,111,1)"],["0.125","rgba(71,45,122,1)"],["0.166666666666659","rgba(68,58,128,1)"],["0.208333333333329","rgba(64,70,135,1)"],["0.25","rgba(60,82,138,1)"],["0.291666666666671","rgba(56,93,140,1)"],["0.333333333333329","rgba(49,104,142,1)"],["0.375","rgba(46,114,142,1)"],["0.416666666666671","rgba(42,123,142,1)"],["0.458333333333341","rgba(38,133,141,1)"],["0.5","rgba(37,144,140,1)"],["0.541666666666671","rgba(33,154,138,1)"],["0.583333333333329","rgba(39,164,133,1)"],["0.625","rgba(47,174,127,1)"],["0.666666666666659","rgba(53,183,121,1)"],["0.708333333333341","rgba(79,191,110,1)"],["0.75","rgba(98,199,98,1)"],["0.791666666666671","rgba(119,207,85,1)"],["0.833333333333329","rgba(147,214,70,1)"],["0.875","rgba(172,220,52,1)"],["0.916666666666671","rgba(199,225,42,1)"],["0.958333333333329","rgba(226,228,40,1)"],["1","rgba(253,231,37,1)"]],"showscale":false,"color":[1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988],"line":{"color":"transparent"}},"xaxis":"x","yaxis":"y","frame":null},{"x":[1969,1988],"y":[168.842413182331,209.674595521269],"type":"scatter","mode":"markers","opacity":0,"hoverinfo":"none","showlegend":false,"marker":{"colorbar":{"title":"year","ticklen":2,"len":0.5,"y":1,"lenmode":"fraction","yanchor":"top"},"cmin":1969,"cmax":1988,"colorscale":[["0","rgba(68,1,84,1)"],["0.0416666666666587","rgba(70,19,97,1)"],["0.0833333333333293","rgba(72,32,111,1)"],["0.125","rgba(71,45,122,1)"],["0.166666666666659","rgba(68,58,128,1)"],["0.208333333333329","rgba(64,70,135,1)"],["0.25","rgba(60,82,138,1)"],["0.291666666666671","rgba(56,93,140,1)"],["0.333333333333329","rgba(49,104,142,1)"],["0.375","rgba(46,114,142,1)"],["0.416666666666671","rgba(42,123,142,1)"],["0.458333333333341","rgba(38,133,141,1)"],["0.5","rgba(37,144,140,1)"],["0.541666666666671","rgba(33,154,138,1)"],["0.583333333333329","rgba(39,164,133,1)"],["0.625","rgba(47,174,127,1)"],["0.666666666666659","rgba(53,183,121,1)"],["0.708333333333341","rgba(79,191,110,1)"],["0.75","rgba(98,199,98,1)"],["0.791666666666671","rgba(119,207,85,1)"],["0.833333333333329","rgba(147,214,70,1)"],["0.875","rgba(172,220,52,1)"],["0.916666666666671","rgba(199,225,42,1)"],["0.958333333333329","rgba(226,228,40,1)"],["1","rgba(253,231,37,1)"]],"showscale":true,"color":[1969,1988]},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1}},"base_url":"https://plot.ly"},"evals":["config.modeBarButtonsToAdd.0.click"],"jsHooks":{"render":[{"code":"function(el, x) { var ctConfig = crosstalk.var('plotlyCrosstalkOpts').set({\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1}}); }","data":null}]}}

Both graphs are, identical, bar styling, yes?

Now let’s use microbenchmark to see how their timings compare (for an overview on timing R functions, see our previous blog post).

time = microbenchmark::microbenchmark( ggplotly = ggplotly(ggplot(meanb) + geom_point(aes(y = mean, x = year, colour = year))), plotly = plot_ly(data = meanb, y = ~mean, x = ~year, color = ~year, type = "scatter"), times = 100, unit = "s") time ## Unit: seconds ## expr min lq mean median uq max neval cld ## ggplotly 0.050139 0.052229 0.070750 0.054760 0.056785 1.56652 100 b ## plotly 0.002475 0.002527 0.003017 0.002571 0.002674 0.03061 100 a autoplot(time)

Now I thought nesting a ggplot object within ggplotly() would be slower than using plot_ly(), but I didn’t think it would be this slow. On average ggplotly() is approximately 23 times slower than plot_ly(). 23!

Let’s take it up a notch. There we were plotting only 20 points, what about if we plot over 20,000? Here we will plot the min, mean and max births on each day.

date = Birthdays %>% group_by(date) %>% summarise(mean = mean(births), min = min(births), max = max(births)) %>% gather(birth_stat, value, -date)

Wrapping this a ggplot2 object inside ggplotly() we obtain this graph…

ggplotly(ggplot(date) + geom_point(aes(y = value, x = date, colour = birth_stat)))

{"x":{"data":[{"x":[425520000,406771200,494294400,6220800,162864000,63936000,582768000,176860800,474336000,350697600,270259200,-30153600,207532800,74044800,257731200,185760000,197683200,89683200,14860800,332985600,429840000,152668800,358300800,290390400,389664000,337046400,172713600,518486400,50284800,134092800,47347200,358214400,174614400,209260800,234576000,576892800,447206400,545184000,84758400,53827200,573868800,596764800,127267200,453686400,559612800,-9331200,77932800,110505600,331948800,388454400,172022400,361065600,65923200,285379200,314409600,388022400,97977600,402105600,370656000,352857600,129340800,66182400,477705600,42076800,446428800,283305600,174960000,52531200,509068800,137289600,483580800,241056000,493344000,494035200,437702400,306201600,-2073600,-2592000,410832000,471312000,132451200,452304000,454982400,179366400,20217600,117676800,581558400,146880000,351475200,539913600,-20995200,441590400,556588800,224726400,276480000,49766400,514684800,564364800,301276800,484876800,221270400,165024000,127526400,545529600,220492800,572054400,550627200,582249600,57801600,167788800,533606400,285465600,357177600,265507200,264038400,14515200,7084800,434332800,568339200,315446400,526608000,188352000,253065600,497750400,426643200,480038400,374889600,459993600,51062400,157507200,453340800,552528000,95126400,179193600,17366400,-3024000,234230400,437529600,262569600,338688000,443059200,193968000,78710400,414201600,454291200,494553600,536198400,445219200,32659200,-14860800,475804800,26179200,305856000,-12355200,114220800,279158400,459388800,330739200,444528000,272073600,-20476800,499564800,277516800,105580800,322790400,51840000,31104000,238896000,16588800,421459200,192672000,108172800,474940800,542592000,470966400,544924800,58752000,313545600,378864000,128390400,221356800,236390400,55382400,379814400,-9676800,472262400,232329600,259459200,65318400,455241600,479347200,12009600,139536000,235526400,205632000,416448000,86832000,502588800,500860800,456710400,426816000,21513600,273110400,431568000,283046400,229564800,-26438400,368841600,420595200,162345600,290131200,437097600,255139200,86313600,298857600,173059200,383788800,116121600,225936000,543196800,119232000,133747200,392083200,210038400,152755200,485136000,410313600,357436800,82339200,433382400,11059200,33436800,578102400,140659200,111024000,364262400,0,264297600,41904000,81043200,567820800,224640000,563328000,355881600,462931200,126576000,290304000,34819200,306547200,432000,204681600,525657600,81907200,531273600,362793600,567734400,40694400,280800000,429667200,598233600,177638400,272678400,477360000,65232000,433209600,456364800,547862400,392947200,377395200,13132800,60134400,199929600,290822400,32140800,-19180800,363916800,246412800,124243200,295920000,447552000,389318400,8553600,428889600,58492800,490147200,16848000,21600000,476582400,185673600,52876800,506649600,423100800,454032000,340243200,132364800,165283200,216604800,98409600,567907200,138412800,10281600,-16848000,311990400,467164800,492393600,326678400,197596800,19526400,385171200,38534400,68428800,392860800,266025600,374803200,77328000,357609600,191462400,289526400,306460800,581904000,322185600,498960000,31622400,502675200,451612800,155260800,560649600,516844800,555379200,576979200,514080000,110246400,590025600,222220800,412128000,547344000,323481600,289440000,585705600,524188800,227923200,85104000,-21513600,577843200,553824000,527990400,399686400,339811200,294105600,61689600,373075200,517190400,381110400,416707200,326764800,14169600,173923200,336960000,-9763200,-26611200,94262400,546566400,381715200,394934400,516672000,128908800,588988800,30844800,570931200,98064000,139363200,202435200,68515200,326592000,516499200,256953600,171072000,145756800,123465600,144979200,209779200,-6652800,257126400,461376000,397699200,415152000,158284800,72921600,513907200,121478400,350956800,537580800,100742400,381456000,416534400,168998400,31276800,506131200,33004800,376704000,222825600,-30412800,242697600,22982400,515289600,393379200,523324800,169430400,486777600,275788800,425692800,376099200,422409600,497836800,589507200,67478400,318988800,492566400,528076800,336528000,52099200,-2332800,382924800,66960000,248227200,137721600,-24364800,361929600,28771200,64540800,550108800,308102400,134611200,442886400,426988800,59616000,549244800,98841600,569376000,553737600,192758400,210902400,272419200,47433600,324432000,458611200,530409600,-20390400,506304000,343699200,232416000,317174400,181526400,96076800,374457600,195264000,168048000,262137600,388627200,-18835200,521596800,24710400,249782400,-18576000,435283200,145584000,507600000,323568000,406684800,373507200,304300800,587260800,597974400,132537600,186624000,389923200,359942400,233712000,402969600,-30067200,487209600,548121600,131241600,345600,537753600,164764800,501033600,189216000,174700800,158976000,267062400,-28080000,295228800,39052800,489283200,240019200,204854400,582681600,407203200,261619200,402710400,489542400,565574400,24537600,430790400,191203200,191635200,103852800,218419200,-3628800,422928000,172886400,204249600,399772800,387676800,8640000,291168000,492307200,258681600,155520000,328233600,221875200,200275200,491875200,235267200,32400000,59875200,244339200,561513600,207187200,234489600,136512000,151200000,435974400,24796800,196732800,315014400,316310400,146361600,102124800,123984000,248832000,313804800,180576000,525139200,180403200,254188800,50544000,271555200,572486400,17539200,240451200,344908800,88560000,416880000,85708800,36115200,163123200,478310400,292204800,440208000,553478400,393120000,182995200,374976000,242006400,249350400,432950400,263779200,498787200,466128000,452131200,223430400,342403200,405475200,147052800,27648000,7603200,529372800,314668800,79315200,168220800,448070400,390355200,112060800,308966400,25747200,382752000,427593600,488505600,567993600,481680000,134697600,553564800,53481600,531705600,-10281600,212025600,377222400,359164800,303436800,2592000,328406400,249436800,460598400,542332800,494985600,381888000,-4060800,473472000,449539200,30758400,434419200,529286400,126748800,375580800,312422400,122428800,15465600,477619200,500601600,395712000,572918400,40780800,219456000,422841600,379900800,192326400,228441600,135648000,402451200,78796800,505958400,126835200,69206400,442800000,411955200,67910400,559353600,108086400,5184000,102556800,76377600,282528000,414892800,12528000,234316800,241574400,495072000,484704000,145152000,347760000,424656000,511401600,500428800,409795200,14601600,106099200,307584000,589593600,376012800,35424000,63331200,104025600,279849600,522633600,393811200,538617600,88128000,518832000,415929600,309830400,54518400,-864000,137030400,472435200,161827200,516067200,181008000,40003200,569203200],"y":[1286,1272,1288,970,694,928,1508,778,1107,1152,1066,936,1026,758,922,922,922,804,1006,1144,1386,754,1090,1110,1100,1120,962,1118,942,906,882,1072,880,994,944,1470,1050,1136,994,938,1381,1613,658,1184,1313,994,788,872,1140,1060,736,1246,904,1058,1082,1278,788,1206,1250,984,828,744,1312,876,1164,894,770,906,1327,856,1276,1066,1454,1447,1238,1080,1020,1032,1086,1066,802,1300,1104,1028,832,884,1508,984,1206,1489,854,1204,1281,950,1028,1028,1309,1468,1076,1408,940,858,824,1397,964,1502,1123,1633,890,768,1111,956,1076,1028,1032,982,1008,1362,1440,1086,1545,774,802,1459,1074,1336,1164,1246,838,702,1208,1403,672,860,1166,824,906,1110,1028,1170,1120,946,838,1256,1324,1464,1441,1276,942,930,1342,906,1170,1032,914,1030,1274,1118,1164,1040,978,1323,974,766,1252,946,858,1122,848,1280,876,830,1158,1410,1298,1525,908,914,1062,758,928,1052,1072,1138,1038,1310,952,946,716,1196,1239,966,896,794,934,1244,844,1349,1412,1190,1284,882,1008,1020,990,928,930,1286,978,734,980,1176,962,918,1114,868,1122,860,916,1480,784,866,1084,930,846,1298,1058,1220,910,1300,928,976,1626,934,786,1074,764,1044,924,912,1550,886,1159,990,1086,748,1040,904,1228,982,776,1479,836,1063,1168,1598,820,948,1092,1556,874,1004,1104,882,1122,1386,1369,1276,1246,1020,700,896,1148,956,866,1152,846,758,860,1194,1256,1002,1326,830,1117,986,1158,1332,822,780,1295,1024,1264,1060,818,748,972,816,1417,922,896,1024,1120,964,1459,1116,904,934,1168,924,884,1250,1098,1282,744,1028,920,978,1148,1528,1154,1355,798,1324,1250,856,1451,1379,1278,1454,1349,736,1588,804,968,1414,1102,990,1246,1416,956,890,846,1206,1521,1466,1254,1182,852,896,1214,1420,1292,1246,972,876,960,1264,1080,888,916,1430,1122,1422,1118,842,1604,882,1455,804,702,944,742,1076,1437,980,940,956,874,998,1002,922,964,1376,1252,1106,862,850,1382,818,1032,1393,842,1168,1206,794,1154,1346,1082,1196,800,1036,978,1030,1407,1066,1214,968,1317,1122,1416,1226,1014,1374,1653,738,936,1186,1497,1030,896,970,1142,896,896,874,1010,1034,1048,906,1483,906,822,1068,1334,832,1477,702,1142,1481,860,996,894,762,926,1120,1336,862,1331,990,844,852,926,902,1174,894,912,842,1190,996,1129,1010,986,874,1304,990,1098,1056,1038,1268,1074,1643,1534,858,936,1292,1218,806,1086,904,1389,1173,866,938,1396,852,1136,1000,944,942,1000,982,1118,990,1126,1010,920,1275,1002,904,1334,1131,1494,1088,1128,812,866,884,960,1018,1082,934,852,1310,1252,992,930,1441,1024,888,1202,1048,856,1261,1014,960,666,1070,1149,1008,994,826,862,1298,1096,834,986,1034,880,814,828,842,1146,1000,1268,916,800,928,1006,1396,1000,1012,990,770,1040,972,940,848,1240,1044,1202,1516,1226,832,1158,1022,876,1332,990,1363,1492,1256,928,1196,1032,966,1084,1032,1165,918,956,890,1208,1000,746,1080,1060,1256,1194,1316,1182,1126,884,1190,884,1387,1042,1078,1194,1060,1284,852,1094,852,1446,1385,1162,966,898,1135,1078,1012,1140,1472,874,950,1018,732,960,1205,1390,1202,1255,764,992,1256,1112,878,994,782,1036,744,1261,834,758,1252,1220,808,1524,834,1038,848,750,1056,1292,1026,796,916,1434,1065,908,1068,1262,1375,1091,1232,1072,764,1054,1671,1266,854,770,832,1050,1480,1242,1399,880,1423,1258,960,1012,1032,808,1388,660,1210,838,884,1464],"text":["date: 425520000
value: 1286.0
birth_stat: max","date: 406771200
value: 1272.0
birth_stat: max","date: 494294400
value: 1288.0
birth_stat: max","date: 6220800
value: 970.0
birth_stat: max","date: 162864000
value: 694.0
birth_stat: max","date: 63936000
value: 928.0
birth_stat: max","date: 582768000
value: 1508.0
birth_stat: max","date: 176860800
value: 778.0
birth_stat: max","date: 474336000
value: 1107.0
birth_stat: max","date: 350697600
value: 1152.0
birth_stat: max","date: 270259200
value: 1066.0
birth_stat: max","date: -30153600
value: 936.0
birth_stat: max","date: 207532800
value: 1026.0
birth_stat: max","date: 74044800
value: 758.0
birth_stat: max","date: 257731200
value: 922.0
birth_stat: max","date: 185760000
value: 922.0
birth_stat: max","date: 197683200
value: 922.0
birth_stat: max","date: 89683200
value: 804.0
birth_stat: max","date: 14860800
value: 1006.0
birth_stat: max","date: 332985600
value: 1144.0
birth_stat: max","date: 429840000
value: 1386.0
birth_stat: max","date: 152668800
value: 754.0
birth_stat: max","date: 358300800
value: 1090.0
birth_stat: max","date: 290390400
value: 1110.0
birth_stat: max","date: 389664000
value: 1100.0
birth_stat: max","date: 337046400
value: 1120.0
birth_stat: max","date: 172713600
value: 962.0
birth_stat: max","date: 518486400
value: 1118.0
birth_stat: max","date: 50284800
value: 942.0
birth_stat: max","date: 134092800
value: 906.0
birth_stat: max","date: 47347200
value: 882.0
birth_stat: max","date: 358214400
value: 1072.0
birth_stat: max","date: 174614400
value: 880.0
birth_stat: max","date: 209260800
value: 994.0
birth_stat: max","date: 234576000
value: 944.0
birth_stat: max","date: 576892800
value: 1470.0
birth_stat: max","date: 447206400
value: 1050.0
birth_stat: max","date: 545184000
value: 1136.0
birth_stat: max","date: 84758400
value: 994.0
birth_stat: max","date: 53827200
value: 938.0
birth_stat: max","date: 573868800
value: 1381.0
birth_stat: max","date: 596764800
value: 1613.0
birth_stat: max","date: 127267200
value: 658.0
birth_stat: max","date: 453686400
value: 1184.0
birth_stat: max","date: 559612800
value: 1313.0
birth_stat: max","date: -9331200
value: 994.0
birth_stat: max","date: 77932800
value: 788.0
birth_stat: max","date: 110505600
value: 872.0
birth_stat: max","date: 331948800
value: 1140.0
birth_stat: max","date: 388454400
value: 1060.0
birth_stat: max","date: 172022400
value: 736.0
birth_stat: max","date: 361065600
value: 1246.0
birth_stat: max","date: 65923200
value: 904.0
birth_stat: max","date: 285379200
value: 1058.0
birth_stat: max","date: 314409600
value: 1082.0
birth_stat: max","date: 388022400
value: 1278.0
birth_stat: max","date: 97977600
value: 788.0
birth_stat: max","date: 402105600
value: 1206.0
birth_stat: max","date: 370656000
value: 1250.0
birth_stat: max","date: 352857600
value: 984.0
birth_stat: max","date: 129340800
value: 828.0
birth_stat: max","date: 66182400
value: 744.0
birth_stat: max","date: 477705600
value: 1312.0
birth_stat: max","date: 42076800
value: 876.0
birth_stat: max","date: 446428800
value: 1164.0
birth_stat: max","date: 283305600
value: 894.0
birth_stat: max","date: 174960000
value: 770.0
birth_stat: max","date: 52531200
value: 906.0
birth_stat: max","date: 509068800
value: 1327.0
birth_stat: max","date: 137289600
value: 856.0
birth_stat: max","date: 483580800
value: 1276.0
birth_stat: max","date: 241056000
value: 1066.0
birth_stat: max","date: 493344000
value: 1454.0
birth_stat: max","date: 494035200
value: 1447.0
birth_stat: max","date: 437702400
value: 1238.0
birth_stat: max","date: 306201600
value: 1080.0
birth_stat: max","date: -2073600
value: 1020.0
birth_stat: max","date: -2592000
value: 1032.0
birth_stat: max","date: 410832000
value: 1086.0
birth_stat: max","date: 471312000
value: 1066.0
birth_stat: max","date: 132451200
value: 802.0
birth_stat: max","date: 452304000
value: 1300.0
birth_stat: max","date: 454982400
value: 1104.0
birth_stat: max","date: 179366400
value: 1028.0
birth_stat: max","date: 20217600
value: 832.0
birth_stat: max","date: 117676800
value: 884.0
birth_stat: max","date: 581558400
value: 1508.0
birth_stat: max","date: 146880000
value: 984.0
birth_stat: max","date: 351475200
value: 1206.0
birth_stat: max","date: 539913600
value: 1489.0
birth_stat: max","date: -20995200
value: 854.0
birth_stat: max","date: 441590400
value: 1204.0
birth_stat: max","date: 556588800
value: 1281.0
birth_stat: max","date: 224726400
value: 950.0
birth_stat: max","date: 276480000
value: 1028.0
birth_stat: max","date: 49766400
value: 1028.0
birth_stat: max","date: 514684800
value: 1309.0
birth_stat: max","date: 564364800
value: 1468.0
birth_stat: max","date: 301276800
value: 1076.0
birth_stat: max","date: 484876800
value: 1408.0
birth_stat: max","date: 221270400
value: 940.0
birth_stat: max","date: 165024000
value: 858.0
birth_stat: max","date: 127526400
value: 824.0
birth_stat: max","date: 545529600
value: 1397.0
birth_stat: max","date: 220492800
value: 964.0
birth_stat: max","date: 572054400
value: 1502.0
birth_stat: max","date: 550627200
value: 1123.0
birth_stat: max","date: 582249600
value: 1633.0
birth_stat: max","date: 57801600
value: 890.0
birth_stat: max","date: 167788800
value: 768.0
birth_stat: max","date: 533606400
value: 1111.0
birth_stat: max","date: 285465600
value: 956.0
birth_stat: max","date: 357177600
value: 1076.0
birth_stat: max","date: 265507200
value: 1028.0
birth_stat: max","date: 264038400
value: 1032.0
birth_stat: max","date: 14515200
value: 982.0
birth_stat: max","date: 7084800
value: 1008.0
birth_stat: max","date: 434332800
value: 1362.0
birth_stat: max","date: 568339200
value: 1440.0
birth_stat: max","date: 315446400
value: 1086.0
birth_stat: max","date: 526608000
value: 1545.0
birth_stat: max","date: 188352000
value: 774.0
birth_stat: max","date: 253065600
value: 802.0
birth_stat: max","date: 497750400
value: 1459.0
birth_stat: max","date: 426643200
value: 1074.0
birth_stat: max","date: 480038400
value: 1336.0
birth_stat: max","date: 374889600
value: 1164.0
birth_stat: max","date: 459993600
value: 1246.0
birth_stat: max","date: 51062400
value: 838.0
birth_stat: max","date: 157507200
value: 702.0
birth_stat: max","date: 453340800
value: 1208.0
birth_stat: max","date: 552528000
value: 1403.0
birth_stat: max","date: 95126400
value: 672.0
birth_stat: max","date: 179193600
value: 860.0
birth_stat: max","date: 17366400
value: 1166.0
birth_stat: max","date: -3024000
value: 824.0
birth_stat: max","date: 234230400
value: 906.0
birth_stat: max","date: 437529600
value: 1110.0
birth_stat: max","date: 262569600
value: 1028.0
birth_stat: max","date: 338688000
value: 1170.0
birth_stat: max","date: 443059200
value: 1120.0
birth_stat: max","date: 193968000
value: 946.0
birth_stat: max","date: 78710400
value: 838.0
birth_stat: max","date: 414201600
value: 1256.0
birth_stat: max","date: 454291200
value: 1324.0
birth_stat: max","date: 494553600
value: 1464.0
birth_stat: max","date: 536198400
value: 1441.0
birth_stat: max","date: 445219200
value: 1276.0
birth_stat: max","date: 32659200
value: 942.0
birth_stat: max","date: -14860800
value: 930.0
birth_stat: max","date: 475804800
value: 1342.0
birth_stat: max","date: 26179200
value: 906.0
birth_stat: max","date: 305856000
value: 1170.0
birth_stat: max","date: -12355200
value: 1032.0
birth_stat: max","date: 114220800
value: 914.0
birth_stat: max","date: 279158400
value: 1030.0
birth_stat: max","date: 459388800
value: 1274.0
birth_stat: max","date: 330739200
value: 1118.0
birth_stat: max","date: 444528000
value: 1164.0
birth_stat: max","date: 272073600
value: 1040.0
birth_stat: max","date: -20476800
value: 978.0
birth_stat: max","date: 499564800
value: 1323.0
birth_stat: max","date: 277516800
value: 974.0
birth_stat: max","date: 105580800
value: 766.0
birth_stat: max","date: 322790400
value: 1252.0
birth_stat: max","date: 51840000
value: 946.0
birth_stat: max","date: 31104000
value: 858.0
birth_stat: max","date: 238896000
value: 1122.0
birth_stat: max","date: 16588800
value: 848.0
birth_stat: max","date: 421459200
value: 1280.0
birth_stat: max","date: 192672000
value: 876.0
birth_stat: max","date: 108172800
value: 830.0
birth_stat: max","date: 474940800
value: 1158.0
birth_stat: max","date: 542592000
value: 1410.0
birth_stat: max","date: 470966400
value: 1298.0
birth_stat: max","date: 544924800
value: 1525.0
birth_stat: max","date: 58752000
value: 908.0
birth_stat: max","date: 313545600
value: 914.0
birth_stat: max","date: 378864000
value: 1062.0
birth_stat: max","date: 128390400
value: 758.0
birth_stat: max","date: 221356800
value: 928.0
birth_stat: max","date: 236390400
value: 1052.0
birth_stat: max","date: 55382400
value: 1072.0
birth_stat: max","date: 379814400
value: 1138.0
birth_stat: max","date: -9676800
value: 1038.0
birth_stat: max","date: 472262400
value: 1310.0
birth_stat: max","date: 232329600
value: 952.0
birth_stat: max","date: 259459200
value: 946.0
birth_stat: max","date: 65318400
value: 716.0
birth_stat: max","date: 455241600
value: 1196.0
birth_stat: max","date: 479347200
value: 1239.0
birth_stat: max","date: 12009600
value: 966.0
birth_stat: max","date: 139536000
value: 896.0
birth_stat: max","date: 235526400
value: 794.0
birth_stat: max","date: 205632000
value: 934.0
birth_stat: max","date: 416448000
value: 1244.0
birth_stat: max","date: 86832000
value: 844.0
birth_stat: max","date: 502588800
value: 1349.0
birth_stat: max","date: 500860800
value: 1412.0
birth_stat: max","date: 456710400
value: 1190.0
birth_stat: max","date: 426816000
value: 1284.0
birth_stat: max","date: 21513600
value: 882.0
birth_stat: max","date: 273110400
value: 1008.0
birth_stat: max","date: 431568000
value: 1020.0
birth_stat: max","date: 283046400
value: 990.0
birth_stat: max","date: 229564800
value: 928.0
birth_stat: max","date: -26438400
value: 930.0
birth_stat: max","date: 368841600
value: 1286.0
birth_stat: max","date: 420595200
value: 978.0
birth_stat: max","date: 162345600
value: 734.0
birth_stat: max","date: 290131200
value: 980.0
birth_stat: max","date: 437097600
value: 1176.0
birth_stat: max","date: 255139200
value: 962.0
birth_stat: max","date: 86313600
value: 918.0
birth_stat: max","date: 298857600
value: 1114.0
birth_stat: max","date: 173059200
value: 868.0
birth_stat: max","date: 383788800
value: 1122.0
birth_stat: max","date: 116121600
value: 860.0
birth_stat: max","date: 225936000
value: 916.0
birth_stat: max","date: 543196800
value: 1480.0
birth_stat: max","date: 119232000
value: 784.0
birth_stat: max","date: 133747200
value: 866.0
birth_stat: max","date: 392083200
value: 1084.0
birth_stat: max","date: 210038400
value: 930.0
birth_stat: max","date: 152755200
value: 846.0
birth_stat: max","date: 485136000
value: 1298.0
birth_stat: max","date: 410313600
value: 1058.0
birth_stat: max","date: 357436800
value: 1220.0
birth_stat: max","date: 82339200
value: 910.0
birth_stat: max","date: 433382400
value: 1300.0
birth_stat: max","date: 11059200
value: 928.0
birth_stat: max","date: 33436800
value: 976.0
birth_stat: max","date: 578102400
value: 1626.0
birth_stat: max","date: 140659200
value: 934.0
birth_stat: max","date: 111024000
value: 786.0
birth_stat: max","date: 364262400
value: 1074.0
birth_stat: max","date: 0
value: 764.0
birth_stat: max","date: 264297600
value: 1044.0
birth_stat: max","date: 41904000
value: 924.0
birth_stat: max","date: 81043200
value: 912.0
birth_stat: max","date: 567820800
value: 1550.0
birth_stat: max","date: 224640000
value: 886.0
birth_stat: max","date: 563328000
value: 1159.0
birth_stat: max","date: 355881600
value: 990.0
birth_stat: max","date: 462931200
value: 1086.0
birth_stat: max","date: 126576000
value: 748.0
birth_stat: max","date: 290304000
value: 1040.0
birth_stat: max","date: 34819200
value: 904.0
birth_stat: max","date: 306547200
value: 1228.0
birth_stat: max","date: 432000
value: 982.0
birth_stat: max","date: 204681600
value: 776.0
birth_stat: max","date: 525657600
value: 1479.0
birth_stat: max","date: 81907200
value: 836.0
birth_stat: max","date: 531273600
value: 1063.0
birth_stat: max","date: 362793600
value: 1168.0
birth_stat: max","date: 567734400
value: 1598.0
birth_stat: max","date: 40694400
value: 820.0
birth_stat: max","date: 280800000
value: 948.0
birth_stat: max","date: 429667200
value: 1092.0
birth_stat: max","date: 598233600
value: 1556.0
birth_stat: max","date: 177638400
value: 874.0
birth_stat: max","date: 272678400
value: 1004.0
birth_stat: max","date: 477360000
value: 1104.0
birth_stat: max","date: 65232000
value: 882.0
birth_stat: max","date: 433209600
value: 1122.0
birth_stat: max","date: 456364800
value: 1386.0
birth_stat: max","date: 547862400
value: 1369.0
birth_stat: max","date: 392947200
value: 1276.0
birth_stat: max","date: 377395200
value: 1246.0
birth_stat: max","date: 13132800
value: 1020.0
birth_stat: max","date: 60134400
value: 700.0
birth_stat: max","date: 199929600
value: 896.0
birth_stat: max","date: 290822400
value: 1148.0
birth_stat: max","date: 32140800
value: 956.0
birth_stat: max","date: -19180800
value: 866.0
birth_stat: max","date: 363916800
value: 1152.0
birth_stat: max","date: 246412800
value: 846.0
birth_stat: max","date: 124243200
value: 758.0
birth_stat: max","date: 295920000
value: 860.0
birth_stat: max","date: 447552000
value: 1194.0
birth_stat: max","date: 389318400
value: 1256.0
birth_stat: max","date: 8553600
value: 1002.0
birth_stat: max","date: 428889600
value: 1326.0
birth_stat: max","date: 58492800
value: 830.0
birth_stat: max","date: 490147200
value: 1117.0
birth_stat: max","date: 16848000
value: 986.0
birth_stat: max","date: 21600000
value: 1158.0
birth_stat: max","date: 476582400
value: 1332.0
birth_stat: max","date: 185673600
value: 822.0
birth_stat: max","date: 52876800
value: 780.0
birth_stat: max","date: 506649600
value: 1295.0
birth_stat: max","date: 423100800
value: 1024.0
birth_stat: max","date: 454032000
value: 1264.0
birth_stat: max","date: 340243200
value: 1060.0
birth_stat: max","date: 132364800
value: 818.0
birth_stat: max","date: 165283200
value: 748.0
birth_stat: max","date: 216604800
value: 972.0
birth_stat: max","date: 98409600
value: 816.0
birth_stat: max","date: 567907200
value: 1417.0
birth_stat: max","date: 138412800
value: 922.0
birth_stat: max","date: 10281600
value: 896.0
birth_stat: max","date: -16848000
value: 1024.0
birth_stat: max","date: 311990400
value: 1120.0
birth_stat: max","date: 467164800
value: 964.0
birth_stat: max","date: 492393600
value: 1459.0
birth_stat: max","date: 326678400
value: 1116.0
birth_stat: max","date: 197596800
value: 904.0
birth_stat: max","date: 19526400
value: 934.0
birth_stat: max","date: 385171200
value: 1168.0
birth_stat: max","date: 38534400
value: 924.0
birth_stat: max","date: 68428800
value: 884.0
birth_stat: max","date: 392860800
value: 1250.0
birth_stat: max","date: 266025600
value: 1098.0
birth_stat: max","date: 374803200
value: 1282.0
birth_stat: max","date: 77328000
value: 744.0
birth_stat: max","date: 357609600
value: 1028.0
birth_stat: max","date: 191462400
value: 920.0
birth_stat: max","date: 289526400
value: 978.0
birth_stat: max","date: 306460800
value: 1148.0
birth_stat: max","date: 581904000
value: 1528.0
birth_stat: max","date: 322185600
value: 1154.0
birth_stat: max","date: 498960000
value: 1355.0
birth_stat: max","date: 31622400
value: 798.0
birth_stat: max","date: 502675200
value: 1324.0
birth_stat: max","date: 451612800
value: 1250.0
birth_stat: max","date: 155260800
value: 856.0
birth_stat: max","date: 560649600
value: 1451.0
birth_stat: max","date: 516844800
value: 1379.0
birth_stat: max","date: 555379200
value: 1278.0
birth_stat: max","date: 576979200
value: 1454.0
birth_stat: max","date: 514080000
value: 1349.0
birth_stat: max","date: 110246400
value: 736.0
birth_stat: max","date: 590025600
value: 1588.0
birth_stat: max","date: 222220800
value: 804.0
birth_stat: max","date: 412128000
value: 968.0
birth_stat: max","date: 547344000
value: 1414.0
birth_stat: max","date: 323481600
value: 1102.0
birth_stat: max","date: 289440000
value: 990.0
birth_stat: max","date: 585705600
value: 1246.0
birth_stat: max","date: 524188800
value: 1416.0
birth_stat: max","date: 227923200
value: 956.0
birth_stat: max","date: 85104000
value: 890.0
birth_stat: max","date: -21513600
value: 846.0
birth_stat: max","date: 577843200
value: 1206.0
birth_stat: max","date: 553824000
value: 1521.0
birth_stat: max","date: 527990400
value: 1466.0
birth_stat: max","date: 399686400
value: 1254.0
birth_stat: max","date: 339811200
value: 1182.0
birth_stat: max","date: 294105600
value: 852.0
birth_stat: max","date: 61689600
value: 896.0
birth_stat: max","date: 373075200
value: 1214.0
birth_stat: max","date: 517190400
value: 1420.0
birth_stat: max","date: 381110400
value: 1292.0
birth_stat: max","date: 416707200
value: 1246.0
birth_stat: max","date: 326764800
value: 972.0
birth_stat: max","date: 14169600
value: 876.0
birth_stat: max","date: 173923200
value: 960.0
birth_stat: max","date: 336960000
value: 1264.0
birth_stat: max","date: -9763200
value: 1080.0
birth_stat: max","date: -26611200
value: 888.0
birth_stat: max","date: 94262400
value: 916.0
birth_stat: max","date: 546566400
value: 1430.0
birth_stat: max","date: 381715200
value: 1122.0
birth_stat: max","date: 394934400
value: 1422.0
birth_stat: max","date: 516672000
value: 1118.0
birth_stat: max","date: 128908800
value: 842.0
birth_stat: max","date: 588988800
value: 1604.0
birth_stat: max","date: 30844800
value: 882.0
birth_stat: max","date: 570931200
value: 1455.0
birth_stat: max","date: 98064000
value: 804.0
birth_stat: max","date: 139363200
value: 702.0
birth_stat: max","date: 202435200
value: 944.0
birth_stat: max","date: 68515200
value: 742.0
birth_stat: max","date: 326592000
value: 1076.0
birth_stat: max","date: 516499200
value: 1437.0
birth_stat: max","date: 256953600
value: 980.0
birth_stat: max","date: 171072000
value: 940.0
birth_stat: max","date: 145756800
value: 956.0
birth_stat: max","date: 123465600
value: 874.0
birth_stat: max","date: 144979200
value: 998.0
birth_stat: max","date: 209779200
value: 1002.0
birth_stat: max","date: -6652800
value: 922.0
birth_stat: max","date: 257126400
value: 964.0
birth_stat: max","date: 461376000
value: 1376.0
birth_stat: max","date: 397699200
value: 1252.0
birth_stat: max","date: 415152000
value: 1106.0
birth_stat: max","date: 158284800
value: 862.0
birth_stat: max","date: 72921600
value: 850.0
birth_stat: max","date: 513907200
value: 1382.0
birth_stat: max","date: 121478400
value: 818.0
birth_stat: max","date: 350956800
value: 1032.0
birth_stat: max","date: 537580800
value: 1393.0
birth_stat: max","date: 100742400
value: 842.0
birth_stat: max","date: 381456000
value: 1168.0
birth_stat: max","date: 416534400
value: 1206.0
birth_stat: max","date: 168998400
value: 794.0
birth_stat: max","date: 31276800
value: 1154.0
birth_stat: max","date: 506131200
value: 1346.0
birth_stat: max","date: 33004800
value: 1082.0
birth_stat: max","date: 376704000
value: 1196.0
birth_stat: max","date: 222825600
value: 800.0
birth_stat: max","date: -30412800
value: 1036.0
birth_stat: max","date: 242697600
value: 978.0
birth_stat: max","date: 22982400
value: 1030.0
birth_stat: max","date: 515289600
value: 1407.0
birth_stat: max","date: 393379200
value: 1066.0
birth_stat: max","date: 523324800
value: 1214.0
birth_stat: max","date: 169430400
value: 968.0
birth_stat: max","date: 486777600
value: 1317.0
birth_stat: max","date: 275788800
value: 1122.0
birth_stat: max","date: 425692800
value: 1416.0
birth_stat: max","date: 376099200
value: 1226.0
birth_stat: max","date: 422409600
value: 1014.0
birth_stat: max","date: 497836800
value: 1374.0
birth_stat: max","date: 589507200
value: 1653.0
birth_stat: max","date: 67478400
value: 738.0
birth_stat: max","date: 318988800
value: 936.0
birth_stat: max","date: 492566400
value: 1186.0
birth_stat: max","date: 528076800
value: 1497.0
birth_stat: max","date: 336528000
value: 1030.0
birth_stat: max","date: 52099200
value: 896.0
birth_stat: max","date: -2332800
value: 970.0
birth_stat: max","date: 382924800
value: 1142.0
birth_stat: max","date: 66960000
value: 896.0
birth_stat: max","date: 248227200
value: 896.0
birth_stat: max","date: 137721600
value: 874.0
birth_stat: max","date: -24364800
value: 1010.0
birth_stat: max","date: 361929600
value: 1034.0
birth_stat: max","date: 28771200
value: 1048.0
birth_stat: max","date: 64540800
value: 906.0
birth_stat: max","date: 550108800
value: 1483.0
birth_stat: max","date: 308102400
value: 906.0
birth_stat: max","date: 134611200
value: 822.0
birth_stat: max","date: 442886400
value: 1068.0
birth_stat: max","date: 426988800
value: 1334.0
birth_stat: max","date: 59616000
value: 832.0
birth_stat: max","date: 549244800
value: 1477.0
birth_stat: max","date: 98841600
value: 702.0
birth_stat: max","date: 569376000
value: 1142.0
birth_stat: max","date: 553737600
value: 1481.0
birth_stat: max","date: 192758400
value: 860.0
birth_stat: max","date: 210902400
value: 996.0
birth_stat: max","date: 272419200
value: 894.0
birth_stat: max","date: 47433600
value: 762.0
birth_stat: max","date: 324432000
value: 926.0
birth_stat: max","date: 458611200
value: 1120.0
birth_stat: max","date: 530409600
value: 1336.0
birth_stat: max","date: -20390400
value: 862.0
birth_stat: max","date: 506304000
value: 1331.0
birth_stat: max","date: 343699200
value: 990.0
birth_stat: max","date: 232416000
value: 844.0
birth_stat: max","date: 317174400
value: 852.0
birth_stat: max","date: 181526400
value: 926.0
birth_stat: max","date: 96076800
value: 902.0
birth_stat: max","date: 374457600
value: 1174.0
birth_stat: max","date: 195264000
value: 894.0
birth_stat: max","date: 168048000
value: 912.0
birth_stat: max","date: 262137600
value: 842.0
birth_stat: max","date: 388627200
value: 1190.0
birth_stat: max","date: -18835200
value: 996.0
birth_stat: max","date: 521596800
value: 1129.0
birth_stat: max","date: 24710400
value: 1010.0
birth_stat: max","date: 249782400
value: 986.0
birth_stat: max","date: -18576000
value: 874.0
birth_stat: max","date: 435283200
value: 1304.0
birth_stat: max","date: 145584000
value: 990.0
birth_stat: max","date: 507600000
value: 1098.0
birth_stat: max","date: 323568000
value: 1056.0
birth_stat: max","date: 406684800
value: 1038.0
birth_stat: max","date: 373507200
value: 1268.0
birth_stat: max","date: 304300800
value: 1074.0
birth_stat: max","date: 587260800
value: 1643.0
birth_stat: max","date: 597974400
value: 1534.0
birth_stat: max","date: 132537600
value: 858.0
birth_stat: max","date: 186624000
value: 936.0
birth_stat: max","date: 389923200
value: 1292.0
birth_stat: max","date: 359942400
value: 1218.0
birth_stat: max","date: 233712000
value: 806.0
birth_stat: max","date: 402969600
value: 1086.0
birth_stat: max","date: -30067200
value: 904.0
birth_stat: max","date: 487209600
value: 1389.0
birth_stat: max","date: 548121600
value: 1173.0
birth_stat: max","date: 131241600
value: 866.0
birth_stat: max","date: 345600
value: 938.0
birth_stat: max","date: 537753600
value: 1396.0
birth_stat: max","date: 164764800
value: 852.0
birth_stat: max","date: 501033600
value: 1136.0
birth_stat: max","date: 189216000
value: 1000.0
birth_stat: max","date: 174700800
value: 944.0
birth_stat: max","date: 158976000
value: 942.0
birth_stat: max","date: 267062400
value: 1000.0
birth_stat: max","date: -28080000
value: 982.0
birth_stat: max","date: 295228800
value: 1118.0
birth_stat: max","date: 39052800
value: 990.0
birth_stat: max","date: 489283200
value: 1126.0
birth_stat: max","date: 240019200
value: 1010.0
birth_stat: max","date: 204854400
value: 920.0
birth_stat: max","date: 582681600
value: 1275.0
birth_stat: max","date: 407203200
value: 1002.0
birth_stat: max","date: 261619200
value: 904.0
birth_stat: max","date: 402710400
value: 1334.0
birth_stat: max","date: 489542400
value: 1131.0
birth_stat: max","date: 565574400
value: 1494.0
birth_stat: max","date: 24537600
value: 1088.0
birth_stat: max","date: 430790400
value: 1128.0
birth_stat: max","date: 191203200
value: 812.0
birth_stat: max","date: 191635200
value: 866.0
birth_stat: max","date: 103852800
value: 884.0
birth_stat: max","date: 218419200
value: 960.0
birth_stat: max","date: -3628800
value: 1018.0
birth_stat: max","date: 422928000
value: 1082.0
birth_stat: max","date: 172886400
value: 934.0
birth_stat: max","date: 204249600
value: 852.0
birth_stat: max","date: 399772800
value: 1310.0
birth_stat: max","date: 387676800
value: 1252.0
birth_stat: max","date: 8640000
value: 992.0
birth_stat: max","date: 291168000
value: 930.0
birth_stat: max","date: 492307200
value: 1441.0
birth_stat: max","date: 258681600
value: 1024.0
birth_stat: max","date: 155520000
value: 888.0
birth_stat: max","date: 328233600
value: 1202.0
birth_stat: max","date: 221875200
value: 1048.0
birth_stat: max","date: 200275200
value: 856.0
birth_stat: max","date: 491875200
value: 1261.0
birth_stat: max","date: 235267200
value: 1014.0
birth_stat: max","date: 32400000
value: 960.0
birth_stat: max","date: 59875200
value: 666.0
birth_stat: max","date: 244339200
value: 1070.0
birth_stat: max","date: 561513600
value: 1149.0
birth_stat: max","date: 207187200
value: 1008.0
birth_stat: max","date: 234489600
value: 994.0
birth_stat: max","date: 136512000
value: 826.0
birth_stat: max","date: 151200000
value: 862.0
birth_stat: max","date: 435974400
value: 1298.0
birth_stat: max","date: 24796800
value: 1096.0
birth_stat: max","date: 196732800
value: 834.0
birth_stat: max","date: 315014400
value: 986.0
birth_stat: max","date: 316310400
value: 1034.0
birth_stat: max","date: 146361600
value: 880.0
birth_stat: max","date: 102124800
value: 814.0
birth_stat: max","date: 123984000
value: 828.0
birth_stat: max","date: 248832000
value: 842.0
birth_stat: max","date: 313804800
value: 1146.0
birth_stat: max","date: 180576000
value: 1000.0
birth_stat: max","date: 525139200
value: 1268.0
birth_stat: max","date: 180403200
value: 916.0
birth_stat: max","date: 254188800
value: 800.0
birth_stat: max","date: 50544000
value: 928.0
birth_stat: max","date: 271555200
value: 1006.0
birth_stat: max","date: 572486400
value: 1396.0
birth_stat: max","date: 17539200
value: 1000.0
birth_stat: max","date: 240451200
value: 1012.0
birth_stat: max","date: 344908800
value: 990.0
birth_stat: max","date: 88560000
value: 770.0
birth_stat: max","date: 416880000
value: 1040.0
birth_stat: max","date: 85708800
value: 972.0
birth_stat: max","date: 36115200
value: 940.0
birth_stat: max","date: 163123200
value: 848.0
birth_stat: max","date: 478310400
value: 1240.0
birth_stat: max","date: 292204800
value: 1044.0
birth_stat: max","date: 440208000
value: 1202.0
birth_stat: max","date: 553478400
value: 1516.0
birth_stat: max","date: 393120000
value: 1226.0
birth_stat: max","date: 182995200
value: 832.0
birth_stat: max","date: 374976000
value: 1158.0
birth_stat: max","date: 242006400
value: 1022.0
birth_stat: max","date: 249350400
value: 876.0
birth_stat: max","date: 432950400
value: 1332.0
birth_stat: max","date: 263779200
value: 990.0
birth_stat: max","date: 498787200
value: 1363.0
birth_stat: max","date: 466128000
value: 1492.0
birth_stat: max","date: 452131200
value: 1256.0
birth_stat: max","date: 223430400
value: 928.0
birth_stat: max","date: 342403200
value: 1196.0
birth_stat: max","date: 405475200
value: 1032.0
birth_stat: max","date: 147052800
value: 966.0
birth_stat: max","date: 27648000
value: 1084.0
birth_stat: max","date: 7603200
value: 1032.0
birth_stat: max","date: 529372800
value: 1165.0
birth_stat: max","date: 314668800
value: 918.0
birth_stat: max","date: 79315200
value: 956.0
birth_stat: max","date: 168220800
value: 890.0
birth_stat: max","date: 448070400
value: 1208.0
birth_stat: max","date: 390355200
value: 1000.0
birth_stat: max","date: 112060800
value: 746.0
birth_stat: max","date: 308966400
value: 1080.0
birth_stat: max","date: 25747200
value: 1060.0
birth_stat: max","date: 382752000
value: 1256.0
birth_stat: max","date: 427593600
value: 1194.0
birth_stat: max","date: 488505600
value: 1316.0
birth_stat: max","date: 567993600
value: 1182.0
birth_stat: max","date: 481680000
value: 1126.0
birth_stat: max","date: 134697600
value: 884.0
birth_stat: max","date: 553564800
value: 1190.0
birth_stat: max","date: 53481600
value: 884.0
birth_stat: max","date: 531705600
value: 1387.0
birth_stat: max","date: -10281600
value: 1042.0
birth_stat: max","date: 212025600
value: 1078.0
birth_stat: max","date: 377222400
value: 1194.0
birth_stat: max","date: 359164800
value: 1060.0
birth_stat: max","date: 303436800
value: 1284.0
birth_stat: max","date: 2592000
value: 852.0
birth_stat: max","date: 328406400
value: 1094.0
birth_stat: max","date: 249436800
value: 852.0
birth_stat: max","date: 460598400
value: 1446.0
birth_stat: max","date: 542332800
value: 1385.0
birth_stat: max","date: 494985600
value: 1162.0
birth_stat: max","date: 381888000
value: 966.0
birth_stat: max","date: -4060800
value: 898.0
birth_stat: max","date: 473472000
value: 1135.0
birth_stat: max","date: 449539200
value: 1078.0
birth_stat: max","date: 30758400
value: 1012.0
birth_stat: max","date: 434419200
value: 1140.0
birth_stat: max","date: 529286400
value: 1472.0
birth_stat: max","date: 126748800
value: 874.0
birth_stat: max","date: 375580800
value: 950.0
birth_stat: max","date: 312422400
value: 1018.0
birth_stat: max","date: 122428800
value: 732.0
birth_stat: max","date: 15465600
value: 960.0
birth_stat: max","date: 477619200
value: 1205.0
birth_stat: max","date: 500601600
value: 1390.0
birth_stat: max","date: 395712000
value: 1202.0
birth_stat: max","date: 572918400
value: 1255.0
birth_stat: max","date: 40780800
value: 764.0
birth_stat: max","date: 219456000
value: 992.0
birth_stat: max","date: 422841600
value: 1256.0
birth_stat: max","date: 379900800
value: 1112.0
birth_stat: max","date: 192326400
value: 878.0
birth_stat: max","date: 228441600
value: 994.0
birth_stat: max","date: 135648000
value: 782.0
birth_stat: max","date: 402451200
value: 1036.0
birth_stat: max","date: 78796800
value: 744.0
birth_stat: max","date: 505958400
value: 1261.0
birth_stat: max","date: 126835200
value: 834.0
birth_stat: max","date: 69206400
value: 758.0
birth_stat: max","date: 442800000
value: 1252.0
birth_stat: max","date: 411955200
value: 1220.0
birth_stat: max","date: 67910400
value: 808.0
birth_stat: max","date: 559353600
value: 1524.0
birth_stat: max","date: 108086400
value: 834.0
birth_stat: max","date: 5184000
value: 1038.0
birth_stat: max","date: 102556800
value: 848.0
birth_stat: max","date: 76377600
value: 750.0
birth_stat: max","date: 282528000
value: 1056.0
birth_stat: max","date: 414892800
value: 1292.0
birth_stat: max","date: 12528000
value: 1026.0
birth_stat: max","date: 234316800
value: 796.0
birth_stat: max","date: 241574400
value: 916.0
birth_stat: max","date: 495072000
value: 1434.0
birth_stat: max","date: 484704000
value: 1065.0
birth_stat: max","date: 145152000
value: 908.0
birth_stat: max","date: 347760000
value: 1068.0
birth_stat: max","date: 424656000
value: 1262.0
birth_stat: max","date: 511401600
value: 1375.0
birth_stat: max","date: 500428800
value: 1091.0
birth_stat: max","date: 409795200
value: 1232.0
birth_stat: max","date: 14601600
value: 1072.0
birth_stat: max","date: 106099200
value: 764.0
birth_stat: max","date: 307584000
value: 1054.0
birth_stat: max","date: 589593600
value: 1671.0
birth_stat: max","date: 376012800
value: 1266.0
birth_stat: max","date: 35424000
value: 854.0
birth_stat: max","date: 63331200
value: 770.0
birth_stat: max","date: 104025600
value: 832.0
birth_stat: max","date: 279849600
value: 1050.0
birth_stat: max","date: 522633600
value: 1480.0
birth_stat: max","date: 393811200
value: 1242.0
birth_stat: max","date: 538617600
value: 1399.0
birth_stat: max","date: 88128000
value: 880.0
birth_stat: max","date: 518832000
value: 1423.0
birth_stat: max","date: 415929600
value: 1258.0
birth_stat: max","date: 309830400
value: 960.0
birth_stat: max","date: 54518400
value: 1012.0
birth_stat: max","date: -864000
value: 1032.0
birth_stat: max","date: 137030400
value: 808.0
birth_stat: max","date: 472435200
value: 1388.0
birth_stat: max","date: 161827200
value: 660.0
birth_stat: max","date: 516067200
value: 1210.0
birth_stat: max","date: 181008000
value: 838.0
birth_stat: max","date: 40003200
value: 884.0
birth_stat: max","date: 569203200
value: 1464.0
birth_stat: max"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":5.66929133858268,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"max","legendgroup":"max","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[471139200,350265600,85363200,358214400,302572800,369705600,205891200,473817600,-6220800,320457600,172454400,12528000,430790400,101952000,156297600,565747200,522806400,595987200,455500800,127440000,598320000,582163200,350697600,197942400,431395200,238636800,420249600,79574400,477792000,370224000,212198400,247622400,-6912000,162777600,294969600,359078400,398822400,113443200,35337600,417744000,454032000,297820800,165888000,586656000,308448000,109900800,490579200,368236800,503712000,88300800,598838400,520041600,327542400,323654400,157766400,499996800,175478400,565056000,470275200,378604800,472953600,308275200,210643200,449193600,156211200,546393600,460425600,278553600,572227200,451180800,55468800,214704000,542332800,235440000,363312000,216864000,172022400,432000000,561772800,488419200,277084800,88992000,285552000,84758400,172281600,285033600,526867200,327801600,307238400,20390400,58060800,227491200,569203200,257731200,215481600,381888000,391392000,213926400,579312000,153619200,190512000,62640000,145584000,297648000,96163200,231897600,329270400,467164800,123552000,551404800,468028800,515980800,112320000,260582400,297302400,288576000,87264000,495331200,121564800,171590400,589075200,483926400,100915200,397353600,381283200,298166400,400291200,416361600,179539200,242438400,235526400,256348800,548035200,243302400,312422400,-10886400,540604800,234230400,126835200,102902400,163382400,65232000,45446400,513907200,458611200,197856000,98323200,284083200,68860800,88819200,268963200,-27993600,452044800,270604800,186537600,413251200,256176000,319766400,-28166400,216691200,10540800,510624000,272592000,70502400,-16588800,314928000,588297600,205632000,22723200,590025600,481334400,184896000,48297600,590630400,289180800,575424000,332467200,181353600,-11232000,141955200,60048000,213494400,599011200,414028800,486259200,260496000,433123200,142473600,33436800,110160000,416016000,240019200,164764800,249609600,594518400,73958400,359683200,219542400,566006400,439257600,546220800,549158400,148262400,87696000,522979200,339638400,381196800,24969600,143164800,324345600,75513600,334540800,194918400,515548800,476064000,232243200,-10022400,114134400,275875200,102643200,188784000,18748800,236822400,-22809600,449107200,579139200,62899200,61344000,513216000,487123200,126489600,46483200,464832000,343785600,190598400,203472000,320025600,379987200,257558400,345168000,293587200,269740800,-1209600,20304000,349401600,270432000,502070400,51753600,292723200,74131200,593913600,401328000,31276800,466819200,585964800,26265600,410832000,33782400,369360000,525398400,107481600,213321600,403056000,39830400,60825600,364780800,34300800,442800000,419385600,395798400,6652800,449798400,31449600,82598400,108000000,375235200,-10972800,438480000,572140800,569116800,-29203200,87955200,124502400,-7776000,578188800,184982400,36201600,-14169600,261878400,463622400,310003200,378259200,80870400,77155200,237340800,46224000,89251200,1036800,254361600,558403200,39484800,492307200,403747200,461289600,533952000,345427200,64022400,138067200,290649600,443664000,-13824000,196041600,515894400,402192000,236736000,88732800,12268800,217555200,257385600,210211200,335232000,210902400,478310400,314064000,448243200,182217600,39052800,121824000,207792000,448502400,-21254400,283737600,269308800,460512000,587779200,575337600,322531200,243820800,384048000,262396800,307670400,51408000,262656000,112924800,178502400,262483200,555120000,258076800,365990400,-27907200,17884800,576547200,27648000,171072000,403574400,507513600,-6652800,424742400,189388800,205718400,591235200,379296000,522028800,169862400,468547200,456969600,560908800,165715200,286243200,445478400,255744000,486432000,263174400,542678400,462153600,155088000,110592000,415238400,13046400,368323200,187228800,119664000,475113600,557452800,458265600,214012800,101779200,368496000,41817600,584841600,280108800,-691200,86832000,339379200,561686400,367027200,50284800,197078400,470707200,37929600,22118400,144028800,594172800,207964800,113097600,594777600,568771200,529977600,1555200,33696000,34473600,500601600,86227200,210384000,189129600,294278400,105235200,164246400,511920000,382924800,71625600,512092800,398131200,262742400,-18230400,422841600,67392000,25660800,5702400,254102400,333763200,104371200,-28684800,215827200,258940800,154396800,562550400,323395200,263520000,99964800,36460800,129081600,465696000,187920000,278380800,189907200,499824000,261187200,97459200,392083200,103248000,275270400,227232000,380073600,143856000,250646400,173145600,31536000,526262400,597801600,222739200,561513600,182131200,422582400,595641600,232761600,427420800,12009600,551664000,367286400,407289600,-18662400,393120000,57542400,199843200,254448000,126921600,81561600,564537600,-6393600,163900800,-17539200,428284800,354067200,427248000,536716800,259545600,383443200,82339200,172540800,6912000,520905600,554688000,222912000,500083200,213753600,544060800,232329600,-9763200,35251200,128822400,125798400,256089600,336182400,96940800,319161600,154569600,141868800,5270400,414892800,144720000,468201600,92966400,203385600,202521600,-25747200,52876800,255830400,135907200,390441600,583459200,361756800,319680000,128217600,203126400,346464000,234748800,215136000,162086400,162950400,-23328000,386899200,103939200,211593600,51840000,27907200,282268800,506995200,193449600,556156800,533174400,42249600,138240000,-18144000,552700800,125020800,45014400,52704000,124675200,29462400,572572800,423705600,67305600,147225600,543196800,106617600,439344000,469584000,416707200,146188800,228268800,252806400,181526400,1987200,536025600,315100800,360720000,12441600,69465600,185068800,232416000,278208000,-16070400,453254400,269568000,324000000,355708800,410745600,265334400,571017600,116985600,527299200,340761600,70675200,46310400,12873600,108864000,543715200,502761600,348278400,32227200,264470400,371433600,113702400,304300800,98409600,343958400,366595200,573609600,163296000,411868800,292982400,274060800,345600,280195200,488764800,585878400,230428800,362620800,56332800,234576000,270518400,526953600,91584000,416966400,81820800,191116800,296784000,276307200,168739200,240451200,390873600,-17452800,120355200,585792000,399600000,271382400,569721600,404092800,238723200,271468800,360115200,179193600,505958400,2764800,96768000,495072000,551577600,234057600,-29808000,522115200,-9849600,105062400,336873600,86313600,180576000,106444800,599097600,104198400,259891200,31795200,382752000,360547200,258681600,226713600,467942400,465264000,282096000,508291200,419644800,325814400,364608000,-30499200,510364800,401932800,501120000,254275200,294192000,549331200,383097600,386208000],"y":[199.450980392157,198.019607843137,201.549019607843,163.803921568627,184.843137254902,188.411764705882,156.725490196078,166.21568627451,209.294117647059,191.823529411765,177.235294117647,207.803921568627,181.21568627451,175.843137254902,147.156862745098,166.333333333333,175.666666666667,165.392156862745,207.058823529412,175.274509803922,171.686274509804,217.588235294118,198.274509803922,144.745098039216,179.43137254902,191.588235294118,204.156862745098,181.607843137255,207.509803921569,224.705882352941,192.862745098039,153.764705882353,196,175.960784313725,196.21568627451,202.137254901961,178.392156862745,185.176470588235,177.803921568627,211.980392156863,211.372549019608,162.921568627451,148.647058823529,238.352941176471,198.156862745098,178.058823529412,225.176470588235,214.156862745098,215.352941176471,176.607843137255,196.019607843137,216.43137254902,195.764705882353,196.725490196078,137.803921568627,218.019607843137,186.176470588235,170.294117647059,208.941176470588,203.803921568627,220.078431372549,202.941176470588,164.843137254902,203.058823529412,153.823529411765,162.470588235294,188.117647058824,185.725490196078,218.21568627451,197.196078431373,213.21568627451,181.509803921569,219.607843137255,161.313725490196,225.450980392157,177.078431372549,142.56862745098,186.980392156863,219.411764705882,215.960784313725,191.705882352941,177.058823529412,193.627450980392,198.882352941176,177.450980392157,169.588235294118,235.509803921569,198.21568627451,215.941176470588,223.21568627451,186.588235294118,181.56862745098,218.450980392157,178.301886792453,156.235294117647,166.941176470588,209.470588235294,188.666666666667,221.941176470588,177.666666666667,171.294117647059,190.039215686275,200.254901960784,188.019607843137,177.725490196078,149.862745098039,160.450980392157,167.529411764706,139.581818181818,224.176470588235,196.725490196078,212.019607843137,185.294117647059,173.725490196078,191.588235294118,198.039215686275,164.882352941176,234.470588235294,169.529411764706,176.411764705882,232.686274509804,207.705882352941,174.764705882353,219.529411764706,164.313725490196,192.117647058824,224.607843137255,165.333333333333,181.666666666667,202.549019607843,152.843137254902,182.274509803922,219.803921568627,179.627450980392,196.254901960784,208.156862745098,210.901960784314,157.823529411765,172.274509803922,168.921568627451,177.549019607843,179.529411764706,192.43137254902,213.254901960784,180.647058823529,162.490196078431,174.607843137255,173.627450980392,181,177.490196078431,193.490196078431,193.254901960784,151.392156862745,166.549019607843,147,166.254901960784,175.980392156863,199.509803921569,170.470588235294,155.156862745098,157.56862745098,171.823529411765,200.803921568627,178.098039215686,193.725490196078,156.235294117647,239.921568627451,187.235294117647,227.725490196078,236.509803921569,206.941176470588,175.019607843137,205.764705882353,241.803921568627,191.235294117647,167.333333333333,217.549019607843,173.928571428571,178.117647058824,194.56862745098,167.882352941176,185.509803921569,153.627450980392,207.803921568627,214.56862745098,185.294117647059,219.156862745098,185.725490196078,192.196078431373,176.627450980392,202.392156862745,200.235294117647,147.490196078431,188.607843137255,221.960784313725,152.725490196078,205.313725490196,185.294117647059,212.627450980392,162.254901960784,212.686274509804,224.254901960784,193.490196078431,186.196078431373,233.254901960784,206.647058823529,171.098039215686,186.078431372549,190.137254901961,167.529411764706,179.333333333333,225.333333333333,148.235294117647,155.313725490196,207.666666666667,180.588235294118,180.313725490196,192.980392156863,203.647058823529,177.156862745098,168.588235294118,212.470588235294,160.21568627451,175.294117647059,199.333333333333,217.196078431373,199.137254901961,158.862745098039,210.196078431373,172.333333333333,173.549019607843,188.235294117647,234.901960784314,165.549019607843,173.470588235294,145.882352941176,201.333333333333,170.686274509804,163.464285714286,202.392156862745,155.313725490196,203.941176470588,204.43137254902,205.019607843137,202.862745098039,202.43137254902,194.549019607843,203.882352941176,188.078431372549,176,217.313725490196,227.372549019608,244.078431372549,209.666666666667,238.509803921569,177.843137254902,167.156862745098,204.745098039216,223.960784313725,231.745098039216,174.686274509804,191.941176470588,174.098039215686,191.098039215686,190.823529411765,215.882352941176,211.843137254902,192.901960784314,164,183.803921568627,198.039215686275,197.098039215686,219.803921568627,187.039215686275,166.764705882353,165.235294117647,208.588235294118,163.058823529412,216.470588235294,211.392156862745,196.705882352941,154.588235294118,172.43137254902,214.156862745098,222.137254901961,167.019607843137,206.509803921569,199.921568627451,168.509803921569,228.254901960784,194.509803921569,169.666666666667,189.450980392157,170.529411764706,156.529411764706,160.666666666667,175.176470588235,207.450980392157,181.627450980392,185.627450980392,174.039215686275,226.137254901961,204.254901960784,226.470588235294,208.823529411765,196.843137254902,182.588235294118,150.333333333333,190.21568627451,194.607843137255,209.56862745098,169.078431372549,206.21568627451,220.960784313725,154.137254901961,183.294117647059,184.78431372549,182.666666666667,181.803921568627,179.588235294118,183.549019607843,189.294117647059,209.235294117647,166.137254901961,209.921568627451,156.56862745098,200.392156862745,145.490196078431,177.196078431373,204.450980392157,179.176470588235,204.176470588235,173.921568627451,179.156862745098,235.21568627451,179.764705882353,174.549019607843,202.509803921569,200.098039215686,177,213.941176470588,203.647058823529,152.235294117647,190.235294117647,187.980392156863,173.705882352941,222.56862745098,187.941176470588,220.705882352941,196.235294117647,216.705882352941,170.607843137255,219.254901960784,171.411764705882,174.392156862745,208.588235294118,194.470588235294,170.764705882353,156.745098039216,187.980392156863,236.019607843137,197.78431372549,226.901960784314,177.313725490196,206,207.078431372549,167.509803921569,174.529411764706,164.156862745098,195.627450980392,179.490196078431,176.392156862745,178.549019607843,173.274509803922,218.862745098039,140.277777777778,155.098039215686,201.058823529412,198.509803921569,213.607843137255,174.725490196078,170.862745098039,202.235294117647,230.078431372549,228.647058823529,180.058823529412,153.882352941176,183.411764705882,191.21568627451,234.372549019608,193.254901960784,176.039215686275,188.843137254902,216.627450980392,223.137254901961,216.843137254902,201.137254901961,169.666666666667,166.254901960784,204.666666666667,221.647058823529,187.725490196078,175.490196078431,177.745098039216,184.294117647059,171.235294117647,162.725490196078,170.78431372549,198.509803921569,215.607843137255,199.411764705882,215.372549019608,192.843137254902,185.803921568627,198.901960784314,186.627450980392,163.156862745098,176.470588235294,164.450980392157,203.43137254902,147.745098039216,218.509803921569,185.176470588235,140.235294117647,192.901960784314,205.411764705882,155.607843137255,181.686274509804,175.019607843137,182.666666666667,218.156862745098,164.156862745098,195.843137254902,176.764705882353,186.039215686275,158.882352941176,216.588235294118,198.941176470588,182.686274509804,165.313725490196,187.960784313725,145.725490196078,222.333333333333,187.372549019608,165.196078431373,165.039215686275,165.529411764706,169,174.058823529412,174.901960784314,173.392156862745,203.333333333333,189.882352941176,167.098039215686,182.882352941176,147.117647058824,159.392156862745,173.490196078431,233.019607843137,165.725490196078,160.156862745098,162.156862745098,180.627450980392,215.117647058824,215.137254901961,184.56862745098,216.470588235294,196.941176470588,226.43137254902,190.980392156863,167.21568627451,179.490196078431,210.411764705882,194.549019607843,139.019607843137,184.823529411765,163.647058823529,183.921568627451,166.196078431373,168.352941176471,168.823529411765,200.392156862745,216.176470588235,165.843137254902,175.294117647059,161.941176470588,179.686274509804,203.274509803922,182.941176470588,156.058823529412,172.235294117647,178.647058823529,225.352941176471,181.294117647059,209.705882352941,163,208.294117647059,182.627450980392,204.901960784314,182.627450980392,169.019607843137,186.450980392157,156.176470588235,215.78431372549,157.294117647059,201.019607843137,173.294117647059,170.740740740741,198.59649122807,208.039215686275,166.078431372549,204.627450980392,194.156862745098,154.78431372549,171.549019607843,164.588235294118,173.56862745098,181.607843137255,177.156862745098,207.274509803922,238.529411764706,206.313725490196,190.509803921569,170.43137254902,172.588235294118,176.058823529412,181.117647058824,184.372549019608,176.156862745098,144.843137254902,157.019607843137,208.235294117647,174.333333333333,195.627450980392,209.882352941176,218.156862745098,197.490196078431,176.882352941176,173.058823529412,227.156862745098,207.862745098039,182.549019607843,172.411764705882,188,226.078431372549,186.980392156863,163.960784313725,211.529411764706,179.941176470588,220,215.705882352941,203.352941176471,163.725490196078,155.078431372549,220.686274509804,150.960784313725,156.352941176471,162.745098039216,206.352941176471,199.078431372549,152.333333333333,177.509803921569,182.078431372549,185.686274509804,172.960784313725,205.960784313725,169.372549019608,197.56862745098,181.294117647059,172.980392156863,158.980392156863,186.56862745098,172.549019607843,160.764705882353,203.450980392157,202.411764705882,198.333333333333,195.039215686275,188.960784313725,214.588235294118,156.745098039216,230.529411764706,169.980392156863,174.137254901961,190.588235294118,173.882352941176,169.117647058824,214.019607843137,167.352941176471,204.294117647059,181.960784313725,158.392156862745,213.823529411765,184.666666666667,207.274509803922,174.43137254902,205.803921568627,224.176470588235,164.372549019608,173.333333333333,199.098039215686,149.313725490196,203.607843137255,193.176470588235,165.588235294118,222.745098039216,242.039215686275,179.294117647059,205.921568627451,199.607843137255,180.490196078431,170.490196078431,188.156862745098,152.745098039216,167.137254901961,166.843137254902,174.372549019608,192.843137254902,195,167.666666666667,193.176470588235,168.725490196078,193.176470588235,166.803921568627,228.254901960784,225.588235294118,205.098039215686,214.686274509804,204.549019607843,198.588235294118,199.274509803922,168.588235294118,166,200.117647058824,206.705882352941,175.666666666667,227.901960784314,224.058823529412,183.21568627451,205.372549019608,184.725490196078,207.803921568627,170.153846153846,216.450980392157,199.078431372549,187.647058823529,167.627450980392,170.254901960784,148.607843137255,182.411764705882,196.941176470588,206.509803921569,203.254901960784,187,183.450980392157,205.058823529412,192.411764705882,158.901960784314,166.098039215686,203.352941176471,199.117647058824,216.941176470588,192.823529411765,208.843137254902,226.235294117647,210.21568627451,148.490196078431,147,181.882352941176,170.764705882353,200.313725490196],"text":["date: 471139200
value: 199.5
birth_stat: mean","date: 350265600
value: 198.0
birth_stat: mean","date: 85363200
value: 201.5
birth_stat: mean","date: 358214400
value: 163.8
birth_stat: mean","date: 302572800
value: 184.8
birth_stat: mean","date: 369705600
value: 188.4
birth_stat: mean","date: 205891200
value: 156.7
birth_stat: mean","date: 473817600
value: 166.2
birth_stat: mean","date: -6220800
value: 209.3
birth_stat: mean","date: 320457600
value: 191.8
birth_stat: mean","date: 172454400
value: 177.2
birth_stat: mean","date: 12528000
value: 207.8
birth_stat: mean","date: 430790400
value: 181.2
birth_stat: mean","date: 101952000
value: 175.8
birth_stat: mean","date: 156297600
value: 147.2
birth_stat: mean","date: 565747200
value: 166.3
birth_stat: mean","date: 522806400
value: 175.7
birth_stat: mean","date: 595987200
value: 165.4
birth_stat: mean","date: 455500800
value: 207.1
birth_stat: mean","date: 127440000
value: 175.3
birth_stat: mean","date: 598320000
value: 171.7
birth_stat: mean","date: 582163200
value: 217.6
birth_stat: mean","date: 350697600
value: 198.3
birth_stat: mean","date: 197942400
value: 144.7
birth_stat: mean","date: 431395200
value: 179.4
birth_stat: mean","date: 238636800
value: 191.6
birth_stat: mean","date: 420249600
value: 204.2
birth_stat: mean","date: 79574400
value: 181.6
birth_stat: mean","date: 477792000
value: 207.5
birth_stat: mean","date: 370224000
value: 224.7
birth_stat: mean","date: 212198400
value: 192.9
birth_stat: mean","date: 247622400
value: 153.8
birth_stat: mean","date: -6912000
value: 196.0
birth_stat: mean","date: 162777600
value: 176.0
birth_stat: mean","date: 294969600
value: 196.2
birth_stat: mean","date: 359078400
value: 202.1
birth_stat: mean","date: 398822400
value: 178.4
birth_stat: mean","date: 113443200
value: 185.2
birth_stat: mean","date: 35337600
value: 177.8
birth_stat: mean","date: 417744000
value: 212.0
birth_stat: mean","date: 454032000
value: 211.4
birth_stat: mean","date: 297820800
value: 162.9
birth_stat: mean","date: 165888000
value: 148.6
birth_stat: mean","date: 586656000
value: 238.4
birth_stat: mean","date: 308448000
value: 198.2
birth_stat: mean","date: 109900800
value: 178.1
birth_stat: mean","date: 490579200
value: 225.2
birth_stat: mean","date: 368236800
value: 214.2
birth_stat: mean","date: 503712000
value: 215.4
birth_stat: mean","date: 88300800
value: 176.6
birth_stat: mean","date: 598838400
value: 196.0
birth_stat: mean","date: 520041600
value: 216.4
birth_stat: mean","date: 327542400
value: 195.8
birth_stat: mean","date: 323654400
value: 196.7
birth_stat: mean","date: 157766400
value: 137.8
birth_stat: mean","date: 499996800
value: 218.0
birth_stat: mean","date: 175478400
value: 186.2
birth_stat: mean","date: 565056000
value: 170.3
birth_stat: mean","date: 470275200
value: 208.9
birth_stat: mean","date: 378604800
value: 203.8
birth_stat: mean","date: 472953600
value: 220.1
birth_stat: mean","date: 308275200
value: 202.9
birth_stat: mean","date: 210643200
value: 164.8
birth_stat: mean","date: 449193600
value: 203.1
birth_stat: mean","date: 156211200
value: 153.8
birth_stat: mean","date: 546393600
value: 162.5
birth_stat: mean","date: 460425600
value: 188.1
birth_stat: mean","date: 278553600
value: 185.7
birth_stat: mean","date: 572227200
value: 218.2
birth_stat: mean","date: 451180800
value: 197.2
birth_stat: mean","date: 55468800
value: 213.2
birth_stat: mean","date: 214704000
value: 181.5
birth_stat: mean","date: 542332800
value: 219.6
birth_stat: mean","date: 235440000
value: 161.3
birth_stat: mean","date: 363312000
value: 225.5
birth_stat: mean","date: 216864000
value: 177.1
birth_stat: mean","date: 172022400
value: 142.6
birth_stat: mean","date: 432000000
value: 187.0
birth_stat: mean","date: 561772800
value: 219.4
birth_stat: mean","date: 488419200
value: 216.0
birth_stat: mean","date: 277084800
value: 191.7
birth_stat: mean","date: 88992000
value: 177.1
birth_stat: mean","date: 285552000
value: 193.6
birth_stat: mean","date: 84758400
value: 198.9
birth_stat: mean","date: 172281600
value: 177.5
birth_stat: mean","date: 285033600
value: 169.6
birth_stat: mean","date: 526867200
value: 235.5
birth_stat: mean","date: 327801600
value: 198.2
birth_stat: mean","date: 307238400
value: 215.9
birth_stat: mean","date: 20390400
value: 223.2
birth_stat: mean","date: 58060800
value: 186.6
birth_stat: mean","date: 227491200
value: 181.6
birth_stat: mean","date: 569203200
value: 218.5
birth_stat: mean","date: 257731200
value: 178.3
birth_stat: mean","date: 215481600
value: 156.2
birth_stat: mean","date: 381888000
value: 166.9
birth_stat: mean","date: 391392000
value: 209.5
birth_stat: mean","date: 213926400
value: 188.7
birth_stat: mean","date: 579312000
value: 221.9
birth_stat: mean","date: 153619200
value: 177.7
birth_stat: mean","date: 190512000
value: 171.3
birth_stat: mean","date: 62640000
value: 190.0
birth_stat: mean","date: 145584000
value: 200.3
birth_stat: mean","date: 297648000
value: 188.0
birth_stat: mean","date: 96163200
value: 177.7
birth_stat: mean","date: 231897600
value: 149.9
birth_stat: mean","date: 329270400
value: 160.5
birth_stat: mean","date: 467164800
value: 167.5
birth_stat: mean","date: 123552000
value: 139.6
birth_stat: mean","date: 551404800
value: 224.2
birth_stat: mean","date: 468028800
value: 196.7
birth_stat: mean","date: 515980800
value: 212.0
birth_stat: mean","date: 112320000
value: 185.3
birth_stat: mean","date: 260582400
value: 173.7
birth_stat: mean","date: 297302400
value: 191.6
birth_stat: mean","date: 288576000
value: 198.0
birth_stat: mean","date: 87264000
value: 164.9
birth_stat: mean","date: 495331200
value: 234.5
birth_stat: mean","date: 121564800
value: 169.5
birth_stat: mean","date: 171590400
value: 176.4
birth_stat: mean","date: 589075200
value: 232.7
birth_stat: mean","date: 483926400
value: 207.7
birth_stat: mean","date: 100915200
value: 174.8
birth_stat: mean","date: 397353600
value: 219.5
birth_stat: mean","date: 381283200
value: 164.3
birth_stat: mean","date: 298166400
value: 192.1
birth_stat: mean","date: 400291200
value: 224.6
birth_stat: mean","date: 416361600
value: 165.3
birth_stat: mean","date: 179539200
value: 181.7
birth_stat: mean","date: 242438400
value: 202.5
birth_stat: mean","date: 235526400
value: 152.8
birth_stat: mean","date: 256348800
value: 182.3
birth_stat: mean","date: 548035200
value: 219.8
birth_stat: mean","date: 243302400
value: 179.6
birth_stat: mean","date: 312422400
value: 196.3
birth_stat: mean","date: -10886400
value: 208.2
birth_stat: mean","date: 540604800
value: 210.9
birth_stat: mean","date: 234230400
value: 157.8
birth_stat: mean","date: 126835200
value: 172.3
birth_stat: mean","date: 102902400
value: 168.9
birth_stat: mean","date: 163382400
value: 177.5
birth_stat: mean","date: 65232000
value: 179.5
birth_stat: mean","date: 45446400
value: 192.4
birth_stat: mean","date: 513907200
value: 213.3
birth_stat: mean","date: 458611200
value: 180.6
birth_stat: mean","date: 197856000
value: 162.5
birth_stat: mean","date: 98323200
value: 174.6
birth_stat: mean","date: 284083200
value: 173.6
birth_stat: mean","date: 68860800
value: 181.0
birth_stat: mean","date: 88819200
value: 177.5
birth_stat: mean","date: 268963200
value: 193.5
birth_stat: mean","date: -27993600
value: 193.3
birth_stat: mean","date: 452044800
value: 151.4
birth_stat: mean","date: 270604800
value: 166.5
birth_stat: mean","date: 186537600
value: 147.0
birth_stat: mean","date: 413251200
value: 166.3
birth_stat: mean","date: 256176000
value: 176.0
birth_stat: mean","date: 319766400
value: 199.5
birth_stat: mean","date: -28166400
value: 170.5
birth_stat: mean","date: 216691200
value: 155.2
birth_stat: mean","date: 10540800
value: 157.6
birth_stat: mean","date: 510624000
value: 171.8
birth_stat: mean","date: 272592000
value: 200.8
birth_stat: mean","date: 70502400
value: 178.1
birth_stat: mean","date: -16588800
value: 193.7
birth_stat: mean","date: 314928000
value: 156.2
birth_stat: mean","date: 588297600
value: 239.9
birth_stat: mean","date: 205632000
value: 187.2
birth_stat: mean","date: 22723200
value: 227.7
birth_stat: mean","date: 590025600
value: 236.5
birth_stat: mean","date: 481334400
value: 206.9
birth_stat: mean","date: 184896000
value: 175.0
birth_stat: mean","date: 48297600
value: 205.8
birth_stat: mean","date: 590630400
value: 241.8
birth_stat: mean","date: 289180800
value: 191.2
birth_stat: mean","date: 575424000
value: 167.3
birth_stat: mean","date: 332467200
value: 217.5
birth_stat: mean","date: 181353600
value: 173.9
birth_stat: mean","date: -11232000
value: 178.1
birth_stat: mean","date: 141955200
value: 194.6
birth_stat: mean","date: 60048000
value: 167.9
birth_stat: mean","date: 213494400
value: 185.5
birth_stat: mean","date: 599011200
value: 153.6
birth_stat: mean","date: 414028800
value: 207.8
birth_stat: mean","date: 486259200
value: 214.6
birth_stat: mean","date: 260496000
value: 185.3
birth_stat: mean","date: 433123200
value: 219.2
birth_stat: mean","date: 142473600
value: 185.7
birth_stat: mean","date: 33436800
value: 192.2
birth_stat: mean","date: 110160000
value: 176.6
birth_stat: mean","date: 416016000
value: 202.4
birth_stat: mean","date: 240019200
value: 200.2
birth_stat: mean","date: 164764800
value: 147.5
birth_stat: mean","date: 249609600
value: 188.6
birth_stat: mean","date: 594518400
value: 222.0
birth_stat: mean","date: 73958400
value: 152.7
birth_stat: mean","date: 359683200
value: 205.3
birth_stat: mean","date: 219542400
value: 185.3
birth_stat: mean","date: 566006400
value: 212.6
birth_stat: mean","date: 439257600
value: 162.3
birth_stat: mean","date: 546220800
value: 212.7
birth_stat: mean","date: 549158400
value: 224.3
birth_stat: mean","date: 148262400
value: 193.5
birth_stat: mean","date: 87696000
value: 186.2
birth_stat: mean","date: 522979200
value: 233.3
birth_stat: mean","date: 339638400
value: 206.6
birth_stat: mean","date: 381196800
value: 171.1
birth_stat: mean","date: 24969600
value: 186.1
birth_stat: mean","date: 143164800
value: 190.1
birth_stat: mean","date: 324345600
value: 167.5
birth_stat: mean","date: 75513600
value: 179.3
birth_stat: mean","date: 334540800
value: 225.3
birth_stat: mean","date: 194918400
value: 148.2
birth_stat: mean","date: 515548800
value: 155.3
birth_stat: mean","date: 476064000
value: 207.7
birth_stat: mean","date: 232243200
value: 180.6
birth_stat: mean","date: -10022400
value: 180.3
birth_stat: mean","date: 114134400
value: 193.0
birth_stat: mean","date: 275875200
value: 203.6
birth_stat: mean","date: 102643200
value: 177.2
birth_stat: mean","date: 188784000
value: 168.6
birth_stat: mean","date: 18748800
value: 212.5
birth_stat: mean","date: 236822400
value: 160.2
birth_stat: mean","date: -22809600
value: 175.3
birth_stat: mean","date: 449107200
value: 199.3
birth_stat: mean","date: 579139200
value: 217.2
birth_stat: mean","date: 62899200
value: 199.1
birth_stat: mean","date: 61344000
value: 158.9
birth_stat: mean","date: 513216000
value: 210.2
birth_stat: mean","date: 487123200
value: 172.3
birth_stat: mean","date: 126489600
value: 173.5
birth_stat: mean","date: 46483200
value: 188.2
birth_stat: mean","date: 464832000
value: 234.9
birth_stat: mean","date: 343785600
value: 165.5
birth_stat: mean","date: 190598400
value: 173.5
birth_stat: mean","date: 203472000
value: 145.9
birth_stat: mean","date: 320025600
value: 201.3
birth_stat: mean","date: 379987200
value: 170.7
birth_stat: mean","date: 257558400
value: 163.5
birth_stat: mean","date: 345168000
value: 202.4
birth_stat: mean","date: 293587200
value: 155.3
birth_stat: mean","date: 269740800
value: 203.9
birth_stat: mean","date: -1209600
value: 204.4
birth_stat: mean","date: 20304000
value: 205.0
birth_stat: mean","date: 349401600
value: 202.9
birth_stat: mean","date: 270432000
value: 202.4
birth_stat: mean","date: 502070400
value: 194.5
birth_stat: mean","date: 51753600
value: 203.9
birth_stat: mean","date: 292723200
value: 188.1
birth_stat: mean","date: 74131200
value: 176.0
birth_stat: mean","date: 593913600
value: 217.3
birth_stat: mean","date: 401328000
value: 227.4
birth_stat: mean","date: 31276800
value: 244.1
birth_stat: mean","date: 466819200
value: 209.7
birth_stat: mean","date: 585964800
value: 238.5
birth_stat: mean","date: 26265600
value: 177.8
birth_stat: mean","date: 410832000
value: 167.2
birth_stat: mean","date: 33782400
value: 204.7
birth_stat: mean","date: 369360000
value: 224.0
birth_stat: mean","date: 525398400
value: 231.7
birth_stat: mean","date: 107481600
value: 174.7
birth_stat: mean","date: 213321600
value: 191.9
birth_stat: mean","date: 403056000
value: 174.1
birth_stat: mean","date: 39830400
value: 191.1
birth_stat: mean","date: 60825600
value: 190.8
birth_stat: mean","date: 364780800
value: 215.9
birth_stat: mean","date: 34300800
value: 211.8
birth_stat: mean","date: 442800000
value: 192.9
birth_stat: mean","date: 419385600
value: 164.0
birth_stat: mean","date: 395798400
value: 183.8
birth_stat: mean","date: 6652800
value: 198.0
birth_stat: mean","date: 449798400
value: 197.1
birth_stat: mean","date: 31449600
value: 219.8
birth_stat: mean","date: 82598400
value: 187.0
birth_stat: mean","date: 108000000
value: 166.8
birth_stat: mean","date: 375235200
value: 165.2
birth_stat: mean","date: -10972800
value: 208.6
birth_stat: mean","date: 438480000
value: 163.1
birth_stat: mean","date: 572140800
value: 216.5
birth_stat: mean","date: 569116800
value: 211.4
birth_stat: mean","date: -29203200
value: 196.7
birth_stat: mean","date: 87955200
value: 154.6
birth_stat: mean","date: 124502400
value: 172.4
birth_stat: mean","date: -7776000
value: 214.2
birth_stat: mean","date: 578188800
value: 222.1
birth_stat: mean","date: 184982400
value: 167.0
birth_stat: mean","date: 36201600
value: 206.5
birth_stat: mean","date: -14169600
value: 199.9
birth_stat: mean","date: 261878400
value: 168.5
birth_stat: mean","date: 463622400
value: 228.3
birth_stat: mean","date: 310003200
value: 194.5
birth_stat: mean","date: 378259200
value: 169.7
birth_stat: mean","date: 80870400
value: 189.5
birth_stat: mean","date: 77155200
value: 170.5
birth_stat: mean","date: 237340800
value: 156.5
birth_stat: mean","date: 46224000
value: 160.7
birth_stat: mean","date: 89251200
value: 175.2
birth_stat: mean","date: 1036800
value: 207.5
birth_stat: mean","date: 254361600
value: 181.6
birth_stat: mean","date: 558403200
value: 185.6
birth_stat: mean","date: 39484800
value: 174.0
birth_stat: mean","date: 492307200
value: 226.1
birth_stat: mean","date: 403747200
value: 204.3
birth_stat: mean","date: 461289600
value: 226.5
birth_stat: mean","date: 533952000
value: 208.8
birth_stat: mean","date: 345427200
value: 196.8
birth_stat: mean","date: 64022400
value: 182.6
birth_stat: mean","date: 138067200
value: 150.3
birth_stat: mean","date: 290649600
value: 190.2
birth_stat: mean","date: 443664000
value: 194.6
birth_stat: mean","date: -13824000
value: 209.6
birth_stat: mean","date: 196041600
value: 169.1
birth_stat: mean","date: 515894400
value: 206.2
birth_stat: mean","date: 402192000
value: 221.0
birth_stat: mean","date: 236736000
value: 154.1
birth_stat: mean","date: 88732800
value: 183.3
birth_stat: mean","date: 12268800
value: 184.8
birth_stat: mean","date: 217555200
value: 182.7
birth_stat: mean","date: 257385600
value: 181.8
birth_stat: mean","date: 210211200
value: 179.6
birth_stat: mean","date: 335232000
value: 183.5
birth_stat: mean","date: 210902400
value: 189.3
birth_stat: mean","date: 478310400
value: 209.2
birth_stat: mean","date: 314064000
value: 166.1
birth_stat: mean","date: 448243200
value: 209.9
birth_stat: mean","date: 182217600
value: 156.6
birth_stat: mean","date: 39052800
value: 200.4
birth_stat: mean","date: 121824000
value: 145.5
birth_stat: mean","date: 207792000
value: 177.2
birth_stat: mean","date: 448502400
value: 204.5
birth_stat: mean","date: -21254400
value: 179.2
birth_stat: mean","date: 283737600
value: 204.2
birth_stat: mean","date: 269308800
value: 173.9
birth_stat: mean","date: 460512000
value: 179.2
birth_stat: mean","date: 587779200
value: 235.2
birth_stat: mean","date: 575337600
value: 179.8
birth_stat: mean","date: 322531200
value: 174.5
birth_stat: mean","date: 243820800
value: 202.5
birth_stat: mean","date: 384048000
value: 200.1
birth_stat: mean","date: 262396800
value: 177.0
birth_stat: mean","date: 307670400
value: 213.9
birth_stat: mean","date: 51408000
value: 203.6
birth_stat: mean","date: 262656000
value: 152.2
birth_stat: mean","date: 112924800
value: 190.2
birth_stat: mean","date: 178502400
value: 188.0
birth_stat: mean","date: 262483200
value: 173.7
birth_stat: mean","date: 555120000
value: 222.6
birth_stat: mean","date: 258076800
value: 187.9
birth_stat: mean","date: 365990400
value: 220.7
birth_stat: mean","date: -27907200
value: 196.2
birth_stat: mean","date: 17884800
value: 216.7
birth_stat: mean","date: 576547200
value: 170.6
birth_stat: mean","date: 27648000
value: 219.3
birth_stat: mean","date: 171072000
value: 171.4
birth_stat: mean","date: 403574400
value: 174.4
birth_stat: mean","date: 507513600
value: 208.6
birth_stat: mean","date: -6652800
value: 194.5
birth_stat: mean","date: 424742400
value: 170.8
birth_stat: mean","date: 189388800
value: 156.7
birth_stat: mean","date: 205718400
value: 188.0
birth_stat: mean","date: 591235200
value: 236.0
birth_stat: mean","date: 379296000
value: 197.8
birth_stat: mean","date: 522028800
value: 226.9
birth_stat: mean","date: 169862400
value: 177.3
birth_stat: mean","date: 468547200
value: 206.0
birth_stat: mean","date: 456969600
value: 207.1
birth_stat: mean","date: 560908800
value: 167.5
birth_stat: mean","date: 165715200
value: 174.5
birth_stat: mean","date: 286243200
value: 164.2
birth_stat: mean","date: 445478400
value: 195.6
birth_stat: mean","date: 255744000
value: 179.5
birth_stat: mean","date: 486432000
value: 176.4
birth_stat: mean","date: 263174400
value: 178.5
birth_stat: mean","date: 542678400
value: 173.3
birth_stat: mean","date: 462153600
value: 218.9
birth_stat: mean","date: 155088000
value: 140.3
birth_stat: mean","date: 110592000
value: 155.1
birth_stat: mean","date: 415238400
value: 201.1
birth_stat: mean","date: 13046400
value: 198.5
birth_stat: mean","date: 368323200
value: 213.6
birth_stat: mean","date: 187228800
value: 174.7
birth_stat: mean","date: 119664000
value: 170.9
birth_stat: mean","date: 475113600
value: 202.2
birth_stat: mean","date: 557452800
value: 230.1
birth_stat: mean","date: 458265600
value: 228.6
birth_stat: mean","date: 214012800
value: 180.1
birth_stat: mean","date: 101779200
value: 153.9
birth_stat: mean","date: 368496000
value: 183.4
birth_stat: mean","date: 41817600
value: 191.2
birth_stat: mean","date: 584841600
value: 234.4
birth_stat: mean","date: 280108800
value: 193.3
birth_stat: mean","date: -691200
value: 176.0
birth_stat: mean","date: 86832000
value: 188.8
birth_stat: mean","date: 339379200
value: 216.6
birth_stat: mean","date: 561686400
value: 223.1
birth_stat: mean","date: 367027200
value: 216.8
birth_stat: mean","date: 50284800
value: 201.1
birth_stat: mean","date: 197078400
value: 169.7
birth_stat: mean","date: 470707200
value: 166.3
birth_stat: mean","date: 37929600
value: 204.7
birth_stat: mean","date: 22118400
value: 221.6
birth_stat: mean","date: 144028800
value: 187.7
birth_stat: mean","date: 594172800
value: 175.5
birth_stat: mean","date: 207964800
value: 177.7
birth_stat: mean","date: 113097600
value: 184.3
birth_stat: mean","date: 594777600
value: 171.2
birth_stat: mean","date: 568771200
value: 162.7
birth_stat: mean","date: 529977600
value: 170.8
birth_stat: mean","date: 1555200
value: 198.5
birth_stat: mean","date: 33696000
value: 215.6
birth_stat: mean","date: 34473600
value: 199.4
birth_stat: mean","date: 500601600
value: 215.4
birth_stat: mean","date: 86227200
value: 192.8
birth_stat: mean","date: 210384000
value: 185.8
birth_stat: mean","date: 189129600
value: 198.9
birth_stat: mean","date: 294278400
value: 186.6
birth_stat: mean","date: 105235200
value: 163.2
birth_stat: mean","date: 164246400
value: 176.5
birth_stat: mean","date: 511920000
value: 164.5
birth_stat: mean","date: 382924800
value: 203.4
birth_stat: mean","date: 71625600
value: 147.7
birth_stat: mean","date: 512092800
value: 218.5
birth_stat: mean","date: 398131200
value: 185.2
birth_stat: mean","date: 262742400
value: 140.2
birth_stat: mean","date: -18230400
value: 192.9
birth_stat: mean","date: 422841600
value: 205.4
birth_stat: mean","date: 67392000
value: 155.6
birth_stat: mean","date: 25660800
value: 181.7
birth_stat: mean","date: 5702400
value: 175.0
birth_stat: mean","date: 254102400
value: 182.7
birth_stat: mean","date: 333763200
value: 218.2
birth_stat: mean","date: 104371200
value: 164.2
birth_stat: mean","date: -28684800
value: 195.8
birth_stat: mean","date: 215827200
value: 176.8
birth_stat: mean","date: 258940800
value: 186.0
birth_stat: mean","date: 154396800
value: 158.9
birth_stat: mean","date: 562550400
value: 216.6
birth_stat: mean","date: 323395200
value: 198.9
birth_stat: mean","date: 263520000
value: 182.7
birth_stat: mean","date: 99964800
value: 165.3
birth_stat: mean","date: 36460800
value: 188.0
birth_stat: mean","date: 129081600
value: 145.7
birth_stat: mean","date: 465696000
value: 222.3
birth_stat: mean","date: 187920000
value: 187.4
birth_stat: mean","date: 278380800
value: 165.2
birth_stat: mean","date: 189907200
value: 165.0
birth_stat: mean","date: 499824000
value: 165.5
birth_stat: mean","date: 261187200
value: 169.0
birth_stat: mean","date: 97459200
value: 174.1
birth_stat: mean","date: 392083200
value: 174.9
birth_stat: mean","date: 103248000
value: 173.4
birth_stat: mean","date: 275270400
value: 203.3
birth_stat: mean","date: 227232000
value: 189.9
birth_stat: mean","date: 380073600
value: 167.1
birth_stat: mean","date: 143856000
value: 182.9
birth_stat: mean","date: 250646400
value: 147.1
birth_stat: mean","date: 173145600
value: 159.4
birth_stat: mean","date: 31536000
value: 173.5
birth_stat: mean","date: 526262400
value: 233.0
birth_stat: mean","date: 597801600
value: 165.7
birth_stat: mean","date: 222739200
value: 160.2
birth_stat: mean","date: 561513600
value: 162.2
birth_stat: mean","date: 182131200
value: 180.6
birth_stat: mean","date: 422582400
value: 215.1
birth_stat: mean","date: 595641600
value: 215.1
birth_stat: mean","date: 232761600
value: 184.6
birth_stat: mean","date: 427420800
value: 216.5
birth_stat: mean","date: 12009600
value: 196.9
birth_stat: mean","date: 551664000
value: 226.4
birth_stat: mean","date: 367286400
value: 191.0
birth_stat: mean","date: 407289600
value: 167.2
birth_stat: mean","date: -18662400
value: 179.5
birth_stat: mean","date: 393120000
value: 210.4
birth_stat: mean","date: 57542400
value: 194.5
birth_stat: mean","date: 199843200
value: 139.0
birth_stat: mean","date: 254448000
value: 184.8
birth_stat: mean","date: 126921600
value: 163.6
birth_stat: mean","date: 81561600
value: 183.9
birth_stat: mean","date: 564537600
value: 166.2
birth_stat: mean","date: -6393600
value: 168.4
birth_stat: mean","date: 163900800
value: 168.8
birth_stat: mean","date: -17539200
value: 200.4
birth_stat: mean","date: 428284800
value: 216.2
birth_stat: mean","date: 354067200
value: 165.8
birth_stat: mean","date: 427248000
value: 175.3
birth_stat: mean","date: 536716800
value: 161.9
birth_stat: mean","date: 259545600
value: 179.7
birth_stat: mean","date: 383443200
value: 203.3
birth_stat: mean","date: 82339200
value: 182.9
birth_stat: mean","date: 172540800
value: 156.1
birth_stat: mean","date: 6912000
value: 172.2
birth_stat: mean","date: 520905600
value: 178.6
birth_stat: mean","date: 554688000
value: 225.4
birth_stat: mean","date: 222912000
value: 181.3
birth_stat: mean","date: 500083200
value: 209.7
birth_stat: mean","date: 213753600
value: 163.0
birth_stat: mean","date: 544060800
value: 208.3
birth_stat: mean","date: 232329600
value: 182.6
birth_stat: mean","date: -9763200
value: 204.9
birth_stat: mean","date: 35251200
value: 182.6
birth_stat: mean","date: 128822400
value: 169.0
birth_stat: mean","date: 125798400
value: 186.5
birth_stat: mean","date: 256089600
value: 156.2
birth_stat: mean","date: 336182400
value: 215.8
birth_stat: mean","date: 96940800
value: 157.3
birth_stat: mean","date: 319161600
value: 201.0
birth_stat: mean","date: 154569600
value: 173.3
birth_stat: mean","date: 141868800
value: 170.7
birth_stat: mean","date: 5270400
value: 198.6
birth_stat: mean","date: 414892800
value: 208.0
birth_stat: mean","date: 144720000
value: 166.1
birth_stat: mean","date: 468201600
value: 204.6
birth_stat: mean","date: 92966400
value: 194.2
birth_stat: mean","date: 203385600
value: 154.8
birth_stat: mean","date: 202521600
value: 171.5
birth_stat: mean","date: -25747200
value: 164.6
birth_stat: mean","date: 52876800
value: 173.6
birth_stat: mean","date: 255830400
value: 181.6
birth_stat: mean","date: 135907200
value: 177.2
birth_stat: mean","date: 390441600
value: 207.3
birth_stat: mean","date: 583459200
value: 238.5
birth_stat: mean","date: 361756800
value: 206.3
birth_stat: mean","date: 319680000
value: 190.5
birth_stat: mean","date: 128217600
value: 170.4
birth_stat: mean","date: 203126400
value: 172.6
birth_stat: mean","date: 346464000
value: 176.1
birth_stat: mean","date: 234748800
value: 181.1
birth_stat: mean","date: 215136000
value: 184.4
birth_stat: mean","date: 162086400
value: 176.2
birth_stat: mean","date: 162950400
value: 144.8
birth_stat: mean","date: -23328000
value: 157.0
birth_stat: mean","date: 386899200
value: 208.2
birth_stat: mean","date: 103939200
value: 174.3
birth_stat: mean","date: 211593600
value: 195.6
birth_stat: mean","date: 51840000
value: 209.9
birth_stat: mean","date: 27907200
value: 218.2
birth_stat: mean","date: 282268800
value: 197.5
birth_stat: mean","date: 506995200
value: 176.9
birth_stat: mean","date: 193449600
value: 173.1
birth_stat: mean","date: 556156800
value: 227.2
birth_stat: mean","date: 533174400
value: 207.9
birth_stat: mean","date: 42249600
value: 182.5
birth_stat: mean","date: 138240000
value: 172.4
birth_stat: mean","date: -18144000
value: 188.0
birth_stat: mean","date: 552700800
value: 226.1
birth_stat: mean","date: 125020800
value: 187.0
birth_stat: mean","date: 45014400
value: 164.0
birth_stat: mean","date: 52704000
value: 211.5
birth_stat: mean","date: 124675200
value: 179.9
birth_stat: mean","date: 29462400
value: 220.0
birth_stat: mean","date: 572572800
value: 215.7
birth_stat: mean","date: 423705600
value: 203.4
birth_stat: mean","date: 67305600
value: 163.7
birth_stat: mean","date: 147225600
value: 155.1
birth_stat: mean","date: 543196800
value: 220.7
birth_stat: mean","date: 106617600
value: 151.0
birth_stat: mean","date: 439344000
value: 156.4
birth_stat: mean","date: 469584000
value: 162.7
birth_stat: mean","date: 416707200
value: 206.4
birth_stat: mean","date: 146188800
value: 199.1
birth_stat: mean","date: 228268800
value: 152.3
birth_stat: mean","date: 252806400
value: 177.5
birth_stat: mean","date: 181526400
value: 182.1
birth_stat: mean","date: 1987200
value: 185.7
birth_stat: mean","date: 536025600
value: 173.0
birth_stat: mean","date: 315100800
value: 206.0
birth_stat: mean","date: 360720000
value: 169.4
birth_stat: mean","date: 12441600
value: 197.6
birth_stat: mean","date: 69465600
value: 181.3
birth_stat: mean","date: 185068800
value: 173.0
birth_stat: mean","date: 232416000
value: 159.0
birth_stat: mean","date: 278208000
value: 186.6
birth_stat: mean","date: -16070400
value: 172.5
birth_stat: mean","date: 453254400
value: 160.8
birth_stat: mean","date: 269568000
value: 203.5
birth_stat: mean","date: 324000000
value: 202.4
birth_stat: mean","date: 355708800
value: 198.3
birth_stat: mean","date: 410745600
value: 195.0
birth_stat: mean","date: 265334400
value: 189.0
birth_stat: mean","date: 571017600
value: 214.6
birth_stat: mean","date: 116985600
value: 156.7
birth_stat: mean","date: 527299200
value: 230.5
birth_stat: mean","date: 340761600
value: 170.0
birth_stat: mean","date: 70675200
value: 174.1
birth_stat: mean","date: 46310400
value: 190.6
birth_stat: mean","date: 12873600
value: 173.9
birth_stat: mean","date: 108864000
value: 169.1
birth_stat: mean","date: 543715200
value: 214.0
birth_stat: mean","date: 502761600
value: 167.4
birth_stat: mean","date: 348278400
value: 204.3
birth_stat: mean","date: 32227200
value: 182.0
birth_stat: mean","date: 264470400
value: 158.4
birth_stat: mean","date: 371433600
value: 213.8
birth_stat: mean","date: 113702400
value: 184.7
birth_stat: mean","date: 304300800
value: 207.3
birth_stat: mean","date: 98409600
value: 174.4
birth_stat: mean","date: 343958400
value: 205.8
birth_stat: mean","date: 366595200
value: 224.2
birth_stat: mean","date: 573609600
value: 164.4
birth_stat: mean","date: 163296000
value: 173.3
birth_stat: mean","date: 411868800
value: 199.1
birth_stat: mean","date: 292982400
value: 149.3
birth_stat: mean","date: 274060800
value: 203.6
birth_stat: mean","date: 345600
value: 193.2
birth_stat: mean","date: 280195200
value: 165.6
birth_stat: mean","date: 488764800
value: 222.7
birth_stat: mean","date: 585878400
value: 242.0
birth_stat: mean","date: 230428800
value: 179.3
birth_stat: mean","date: 362620800
value: 205.9
birth_stat: mean","date: 56332800
value: 199.6
birth_stat: mean","date: 234576000
value: 180.5
birth_stat: mean","date: 270518400
value: 170.5
birth_stat: mean","date: 526953600
value: 188.2
birth_stat: mean","date: 91584000
value: 152.7
birth_stat: mean","date: 416966400
value: 167.1
birth_stat: mean","date: 81820800
value: 166.8
birth_stat: mean","date: 191116800
value: 174.4
birth_stat: mean","date: 296784000
value: 192.8
birth_stat: mean","date: 276307200
value: 195.0
birth_stat: mean","date: 168739200
value: 167.7
birth_stat: mean","date: 240451200
value: 193.2
birth_stat: mean","date: 390873600
value: 168.7
birth_stat: mean","date: -17452800
value: 193.2
birth_stat: mean","date: 120355200
value: 166.8
birth_stat: mean","date: 585792000
value: 228.3
birth_stat: mean","date: 399600000
value: 225.6
birth_stat: mean","date: 271382400
value: 205.1
birth_stat: mean","date: 569721600
value: 214.7
birth_stat: mean","date: 404092800
value: 204.5
birth_stat: mean","date: 238723200
value: 198.6
birth_stat: mean","date: 271468800
value: 199.3
birth_stat: mean","date: 360115200
value: 168.6
birth_stat: mean","date: 179193600
value: 166.0
birth_stat: mean","date: 505958400
value: 200.1
birth_stat: mean","date: 2764800
value: 206.7
birth_stat: mean","date: 96768000
value: 175.7
birth_stat: mean","date: 495072000
value: 227.9
birth_stat: mean","date: 551577600
value: 224.1
birth_stat: mean","date: 234057600
value: 183.2
birth_stat: mean","date: -29808000
value: 205.4
birth_stat: mean","date: 522115200
value: 184.7
birth_stat: mean","date: -9849600
value: 207.8
birth_stat: mean","date: 105062400
value: 170.2
birth_stat: mean","date: 336873600
value: 216.5
birth_stat: mean","date: 86313600
value: 199.1
birth_stat: mean","date: 180576000
value: 187.6
birth_stat: mean","date: 106444800
value: 167.6
birth_stat: mean","date: 599097600
value: 170.3
birth_stat: mean","date: 104198400
value: 148.6
birth_stat: mean","date: 259891200
value: 182.4
birth_stat: mean","date: 31795200
value: 196.9
birth_stat: mean","date: 382752000
value: 206.5
birth_stat: mean","date: 360547200
value: 203.3
birth_stat: mean","date: 258681600
value: 187.0
birth_stat: mean","date: 226713600
value: 183.5
birth_stat: mean","date: 467942400
value: 205.1
birth_stat: mean","date: 465264000
value: 192.4
birth_stat: mean","date: 282096000
value: 158.9
birth_stat: mean","date: 508291200
value: 166.1
birth_stat: mean","date: 419644800
value: 203.4
birth_stat: mean","date: 325814400
value: 199.1
birth_stat: mean","date: 364608000
value: 216.9
birth_stat: mean","date: -30499200
value: 192.8
birth_stat: mean","date: 510364800
value: 208.8
birth_stat: mean","date: 401932800
value: 226.2
birth_stat: mean","date: 501120000
value: 210.2
birth_stat: mean","date: 254275200
value: 148.5
birth_stat: mean","date: 294192000
value: 147.0
birth_stat: mean","date: 549331200
value: 181.9
birth_stat: mean","date: 383097600
value: 170.8
birth_stat: mean","date: 386208000
value: 200.3
birth_stat: mean"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,186,56,1)","opacity":1,"size":5.66929133858268,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(0,186,56,1)"}},"hoveron":"points","name":"mean","legendgroup":"mean","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[41817600,421804800,588038400,528076800,64108800,278985600,56246400,569980800,67564800,60393600,-19180800,248832000,470880000,270432000,114652800,560131200,382406400,338256000,238982400,239587200,164851200,316742400,587433600,105494400,203990400,566092800,240624000,-22723200,-8467200,236131200,73094400,157248000,91843200,548294400,195523200,110332800,477532800,571276800,2937600,531100800,238118400,465350400,9244800,149990400,177724800,542678400,249264000,191808000,299548800,458611200,419299200,546998400,462758400,392688000,327024000,292377600,468892800,188524800,493084800,384998400,189302400,278208000,332985600,175910400,113616000,-28425600,521683200,72403200,52012800,547430400,474076800,282355200,365299200,67219200,445564800,306806400,310003200,392860800,555120000,-25401600,293328000,294796800,120268800,-12182400,38793600,520128000,67996800,376617600,141868800,185155200,420336000,114393600,139968000,198547200,218246400,466905600,244944000,270086400,34992000,317606400,497664000,51062400,229564800,322876800,34560000,284256000,595468800,257126400,199152000,37843200,84844800,261100800,-2332800,502934400,577324800,94176000,81993600,15379200,162432000,422668800,347760000,53568000,597456000,211766400,25228800,243043200,116553600,216172800,430358400,200966400,150595200,383702400,119318400,255225600,136771200,387072000,558057600,280108800,-15120000,564019200,-9158400,562032000,25574400,1296000,221184000,256089600,144633600,293155200,568512000,-23068800,90633600,40262400,335577600,231984000,266457600,468460800,122083200,17193600,157939200,23932800,556934400,409190400,456624000,218505600,155520000,219628800,191203200,73008000,144806400,259372800,426816000,267235200,75945600,187833600,140486400,294019200,362620800,554688000,564451200,210902400,81216000,322272000,201139200,531792000,339292800,516499200,-18489600,54518400,457747200,21254400,485654400,71971200,543801600,37497600,374716800,393379200,43200000,545270400,525312000,108777600,305856000,568425600,89942400,-20822400,529200000,436492800,102643200,310348800,357004800,538272000,531964800,221097600,249091200,36892800,166924800,-17193600,62553600,-25574400,318384000,328924800,84067200,490320000,329702400,479692800,505008000,230515200,19267200,168048000,565315200,596160000,579052800,2073600,58060800,380073600,417398400,20044800,482025600,-7948800,416707200,14774400,569721600,295833600,304646400,258076800,108000000,282960000,432864000,265161600,45446400,118800000,267667200,434505600,114912000,362707200,205200000,577238400,524880000,113443200,309916800,139881600,127526400,111196800,442540800,395884800,129513600,340588800,-24710400,329443200,452217600,35337600,201571200,573177600,245548800,345254400,145411200,132364800,156902400,370137600,209520000,496972800,119836800,199929600,469929600,169862400,282441600,478224000,-27388800,572227200,-28166400,-17971200,43113600,-11923200,333244800,-26697600,347500800,5875200,67392000,387849600,257817600,229305600,200275200,129168000,510105600,-22636800,595641600,60566400,228441600,484876800,103593600,227577600,163555200,232588800,568684800,393292800,415238400,285465600,597974400,139536000,247449600,113961600,443318400,175996800,82252800,164073600,90720000,551750400,500428800,409968000,222480000,-10195200,137808000,467510400,-13651200,314064000,122256000,445132800,597369600,58233600,321408000,291513600,130118400,459475200,486691200,296438400,574819200,29808000,248659200,382233600,519350400,261360000,62208000,273888000,404697600,184204800,502416000,-18403200,262656000,445219200,241920000,72489600,387331200,204422400,301449600,135216000,63504000,340934400,294883200,170035200,452304000,62121600,248140800,20304000,33523200,-6739200,487036800,590284800,250473600,81043200,189648000,510796800,578880000,76377600,488160000,97286400,27388800,578016000,570412800,219369600,59616000,66441600,120960000,521337600,93312000,277948800,28166400,353203200,13737600,569376000,155692800,556675200,495936000,26352000,136857600,30153600,435456000,489110400,541987200,592272000,134524800,547776000,73440000,388281600,348019200,464140800,289785600,20995200,55641600,175824000,56073600,591494400,50284800,233884800,240796800,39225600,243388800,24364800,548380800,544147200,400377600,-8899200,547171200,202521600,11923200,194313600,249436800,1900800,225417600,48470400,271123200,255744000,406080000,115344000,112665600,229046400,574041600,126835200,572832000,1641600,219110400,414633600,276825600,483408000,334454400,373766400,377308800,325987200,344044800,385344000,458352000,170985600,539136000,270000000,326246400,11577600,485395200,7171200,159840000,213321600,52272000,332812800,22464000,18489600,542419200,225072000,-5097600,4147200,19008000,178934400,314150400,553824000,129600000,551059200,166320000,560476800,-24019200,510883200,81302400,123465600,70070400,555465600,41299200,122601600,592963200,524361600,156988800,14428800,564105600,415411200,482630400,20217600,53136000,76204800,210384000,130982400,340848000,316051200,394416000,-16588800,64195200,177379200,173145600,494812800,314323200,484012800,-27302400,347328000,488073600,137894400,154828800,333072000,418348800,109555200,61862400,330393600,207532800,206323200,90547200,558144000,567302400,456192000,309484800,50630400,239500800,543196800,92102400,415324800,269395200,340416000,328320000,587779200,412300800,200534400,168998400,78537600,283478400,354326400,419385600,569635200,433555200,31017600,320371200,349574400,418694400,451958400,514080000,545011200,443836800,-3456000,285379200,100137600,-2073600,455500800,170208000,552441600,368841600,226627200,126316800,442886400,78969600,38448000,336960000,330307200,426902400,92275200,196128000,226972800,164419200,360806400,334022400,477360000,27993600,172800,389923200,360201600,17280000,197510400,458697600,385603200,189475200,339984000,266976000,387244800,181958400,-25488000,271296000,348192000,327801600,310435200,90806400,571622400,67478400,229651200,440899200,191721600,487209600,73699200,436924800,535593600,528595200,85276800,66700800,251769600,243475200,329097600,174009600,363398400,9158400,517276800,95990400,121737600,348451200,109123200,317174400,55814400,475459200,187228800,421372800,45014400,294105600,166492800,503539200,455068800,174700800,532828800,243820800,507168000,250646400,528768000,507081600,287625600,171158400,131587200,563587200,535766400,65836800,257385600,281059200,3369600],"y":[20,19,17,22,18,16,16,15,20,2,16,10,23,16,14,18,16,16,15,16,14,21,19,7,16,18,22,14,12,10,13,14,14,22,15,2,19,20,16,22,22,15,14,14,18,18,10,15,19,11,19,17,20,16,21,17,14,12,19,20,12,21,26,18,16,14,25,12,10,21,17,19,22,14,22,17,16,20,20,12,13,14,6,18,10,23,10,20,1,12,14,10,16,14,1,20,18,16,8,18,27,6,18,17,18,15,21,18,14,12,12,14,14,18,22,12,18,8,14,18,13,18,19,20,20,10,12,10,16,17,12,11,14,18,10,21,22,23,14,16,14,15,18,18,10,12,20,16,20,16,16,10,21,18,12,14,14,6,13,14,13,21,22,13,19,17,10,17,8,9,22,24,14,18,7,18,23,22,10,15,16,20,14,13,25,21,8,12,20,22,20,12,20,22,21,22,14,21,27,8,16,20,10,16,19,26,14,15,17,17,18,16,21,16,14,18,12,12,18,26,14,21,21,20,21,10,16,10,16,23,14,16,20,18,22,20,21,2,25,20,13,22,20,22,17,17,21,10,16,4,18,12,16,19,13,10,21,16,18,10,8,14,20,26,12,22,12,22,24,16,12,19,16,20,12,10,8,17,16,20,15,17,14,18,17,21,14,15,12,14,4,14,16,12,24,14,8,16,19,18,22,12,14,20,19,10,14,23,6,12,6,14,8,21,19,24,20,16,15,10,19,10,16,18,14,12,15,24,20,12,17,22,12,15,14,23,19,12,12,22,14,22,20,23,15,12,18,24,20,18,16,14,23,12,27,18,13,24,20,14,18,14,20,14,8,21,20,23,22,10,13,16,12,14,18,22,16,14,16,20,15,10,25,14,10,17,20,22,24,12,14,21,12,14,12,22,16,9,8,19,25,18,8,18,22,25,20,17,14,21,14,22,15,17,19,12,14,22,20,21,10,22,19,12,20,14,21,17,25,14,26,16,8,16,12,20,22,16,13,16,19,16,16,16,20,10,14,10,13,22,20,21,22,11,21,24,23,18,16,12,11,16,17,20,23,12,12,20,12,24,14,24,24,16,4,4,8,16,14,24,11,21,8,13,6,23,14,14,6,12,14,8,17,25,10,18,16,17,23,8,16,16,18,14,20,18,20,14,10,12,17,26,19,16,14,10,24,18,14,16,20,8,10,18,16,15,12,17,14,10,21,12,18,18,18,16,14,18,21,15,20,12,14,12,14,20,20,17,29,12,22,24,18,21,25,23,18,12,16,16,18,24,18,18,19,20,14,14,18,18,22,19,20,14,14,14,14,23,10,15,12,16,20,16,22,14,15,19,12,19,13,14,16,12,23,21,17,15,18,15,18,18,14,15,25,14,15,22,26,16,16,14,10,23,22,22,10,14,14,13,24,5,17,14,18,5,23,10,15,14,19,21,14,15,13,20,9,15,14,15,15,16,20,9,19,22,19,12],"text":["date: 41817600
value: 20.0
birth_stat: min","date: 421804800
value: 19.0
birth_stat: min","date: 588038400
value: 17.0
birth_stat: min","date: 528076800
value: 22.0
birth_stat: min","date: 64108800
value: 18.0
birth_stat: min","date: 278985600
value: 16.0
birth_stat: min","date: 56246400
value: 16.0
birth_stat: min","date: 569980800
value: 15.0
birth_stat: min","date: 67564800
value: 20.0
birth_stat: min","date: 60393600
value: 2.0
birth_stat: min","date: -19180800
value: 16.0
birth_stat: min","date: 248832000
value: 10.0
birth_stat: min","date: 470880000
value: 23.0
birth_stat: min","date: 270432000
value: 16.0
birth_stat: min","date: 114652800
value: 14.0
birth_stat: min","date: 560131200
value: 18.0
birth_stat: min","date: 382406400
value: 16.0
birth_stat: min","date: 338256000
value: 16.0
birth_stat: min","date: 238982400
value: 15.0
birth_stat: min","date: 239587200
value: 16.0
birth_stat: min","date: 164851200
value: 14.0
birth_stat: min","date: 316742400
value: 21.0
birth_stat: min","date: 587433600
value: 19.0
birth_stat: min","date: 105494400
value: 7.0
birth_stat: min","date: 203990400
value: 16.0
birth_stat: min","date: 566092800
value: 18.0
birth_stat: min","date: 240624000
value: 22.0
birth_stat: min","date: -22723200
value: 14.0
birth_stat: min","date: -8467200
value: 12.0
birth_stat: min","date: 236131200
value: 10.0
birth_stat: min","date: 73094400
value: 13.0
birth_stat: min","date: 157248000
value: 14.0
birth_stat: min","date: 91843200
value: 14.0
birth_stat: min","date: 548294400
value: 22.0
birth_stat: min","date: 195523200
value: 15.0
birth_stat: min","date: 110332800
value: 2.0
birth_stat: min","date: 477532800
value: 19.0
birth_stat: min","date: 571276800
value: 20.0
birth_stat: min","date: 2937600
value: 16.0
birth_stat: min","date: 531100800
value: 22.0
birth_stat: min","date: 238118400
value: 22.0
birth_stat: min","date: 465350400
value: 15.0
birth_stat: min","date: 9244800
value: 14.0
birth_stat: min","date: 149990400
value: 14.0
birth_stat: min","date: 177724800
value: 18.0
birth_stat: min","date: 542678400
value: 18.0
birth_stat: min","date: 249264000
value: 10.0
birth_stat: min","date: 191808000
value: 15.0
birth_stat: min","date: 299548800
value: 19.0
birth_stat: min","date: 458611200
value: 11.0
birth_stat: min","date: 419299200
value: 19.0
birth_stat: min","date: 546998400
value: 17.0
birth_stat: min","date: 462758400
value: 20.0
birth_stat: min","date: 392688000
value: 16.0
birth_stat: min","date: 327024000
value: 21.0
birth_stat: min","date: 292377600
value: 17.0
birth_stat: min","date: 468892800
value: 14.0
birth_stat: min","date: 188524800
value: 12.0
birth_stat: min","date: 493084800
value: 19.0
birth_stat: min","date: 384998400
value: 20.0
birth_stat: min","date: 189302400
value: 12.0
birth_stat: min","date: 278208000
value: 21.0
birth_stat: min","date: 332985600
value: 26.0
birth_stat: min","date: 175910400
value: 18.0
birth_stat: min","date: 113616000
value: 16.0
birth_stat: min","date: -28425600
value: 14.0
birth_stat: min","date: 521683200
value: 25.0
birth_stat: min","date: 72403200
value: 12.0
birth_stat: min","date: 52012800
value: 10.0
birth_stat: min","date: 547430400
value: 21.0
birth_stat: min","date: 474076800
value: 17.0
birth_stat: min","date: 282355200
value: 19.0
birth_stat: min","date: 365299200
value: 22.0
birth_stat: min","date: 67219200
value: 14.0
birth_stat: min","date: 445564800
value: 22.0
birth_stat: min","date: 306806400
value: 17.0
birth_stat: min","date: 310003200
value: 16.0
birth_stat: min","date: 392860800
value: 20.0
birth_stat: min","date: 555120000
value: 20.0
birth_stat: min","date: -25401600
value: 12.0
birth_stat: min","date: 293328000
value: 13.0
birth_stat: min","date: 294796800
value: 14.0
birth_stat: min","date: 120268800
value: 6.0
birth_stat: min","date: -12182400
value: 18.0
birth_stat: min","date: 38793600
value: 10.0
birth_stat: min","date: 520128000
value: 23.0
birth_stat: min","date: 67996800
value: 10.0
birth_stat: min","date: 376617600
value: 20.0
birth_stat: min","date: 141868800
value: 1.0
birth_stat: min","date: 185155200
value: 12.0
birth_stat: min","date: 420336000
value: 14.0
birth_stat: min","date: 114393600
value: 10.0
birth_stat: min","date: 139968000
value: 16.0
birth_stat: min","date: 198547200
value: 14.0
birth_stat: min","date: 218246400
value: 1.0
birth_stat: min","date: 466905600
value: 20.0
birth_stat: min","date: 244944000
value: 18.0
birth_stat: min","date: 270086400
value: 16.0
birth_stat: min","date: 34992000
value: 8.0
birth_stat: min","date: 317606400
value: 18.0
birth_stat: min","date: 497664000
value: 27.0
birth_stat: min","date: 51062400
value: 6.0
birth_stat: min","date: 229564800
value: 18.0
birth_stat: min","date: 322876800
value: 17.0
birth_stat: min","date: 34560000
value: 18.0
birth_stat: min","date: 284256000
value: 15.0
birth_stat: min","date: 595468800
value: 21.0
birth_stat: min","date: 257126400
value: 18.0
birth_stat: min","date: 199152000
value: 14.0
birth_stat: min","date: 37843200
value: 12.0
birth_stat: min","date: 84844800
value: 12.0
birth_stat: min","date: 261100800
value: 14.0
birth_stat: min","date: -2332800
value: 14.0
birth_stat: min","date: 502934400
value: 18.0
birth_stat: min","date: 577324800
value: 22.0
birth_stat: min","date: 94176000
value: 12.0
birth_stat: min","date: 81993600
value: 18.0
birth_stat: min","date: 15379200
value: 8.0
birth_stat: min","date: 162432000
value: 14.0
birth_stat: min","date: 422668800
value: 18.0
birth_stat: min","date: 347760000
value: 13.0
birth_stat: min","date: 53568000
value: 18.0
birth_stat: min","date: 597456000
value: 19.0
birth_stat: min","date: 211766400
value: 20.0
birth_stat: min","date: 25228800
value: 20.0
birth_stat: min","date: 243043200
value: 10.0
birth_stat: min","date: 116553600
value: 12.0
birth_stat: min","date: 216172800
value: 10.0
birth_stat: min","date: 430358400
value: 16.0
birth_stat: min","date: 200966400
value: 17.0
birth_stat: min","date: 150595200
value: 12.0
birth_stat: min","date: 383702400
value: 11.0
birth_stat: min","date: 119318400
value: 14.0
birth_stat: min","date: 255225600
value: 18.0
birth_stat: min","date: 136771200
value: 10.0
birth_stat: min","date: 387072000
value: 21.0
birth_stat: min","date: 558057600
value: 22.0
birth_stat: min","date: 280108800
value: 23.0
birth_stat: min","date: -15120000
value: 14.0
birth_stat: min","date: 564019200
value: 16.0
birth_stat: min","date: -9158400
value: 14.0
birth_stat: min","date: 562032000
value: 15.0
birth_stat: min","date: 25574400
value: 18.0
birth_stat: min","date: 1296000
value: 18.0
birth_stat: min","date: 221184000
value: 10.0
birth_stat: min","date: 256089600
value: 12.0
birth_stat: min","date: 144633600
value: 20.0
birth_stat: min","date: 293155200
value: 16.0
birth_stat: min","date: 568512000
value: 20.0
birth_stat: min","date: -23068800
value: 16.0
birth_stat: min","date: 90633600
value: 16.0
birth_stat: min","date: 40262400
value: 10.0
birth_stat: min","date: 335577600
value: 21.0
birth_stat: min","date: 231984000
value: 18.0
birth_stat: min","date: 266457600
value: 12.0
birth_stat: min","date: 468460800
value: 14.0
birth_stat: min","date: 122083200
value: 14.0
birth_stat: min","date: 17193600
value: 6.0
birth_stat: min","date: 157939200
value: 13.0
birth_stat: min","date: 23932800
value: 14.0
birth_stat: min","date: 556934400
value: 13.0
birth_stat: min","date: 409190400
value: 21.0
birth_stat: min","date: 456624000
value: 22.0
birth_stat: min","date: 218505600
value: 13.0
birth_stat: min","date: 155520000
value: 19.0
birth_stat: min","date: 219628800
value: 17.0
birth_stat: min","date: 191203200
value: 10.0
birth_stat: min","date: 73008000
value: 17.0
birth_stat: min","date: 144806400
value: 8.0
birth_stat: min","date: 259372800
value: 9.0
birth_stat: min","date: 426816000
value: 22.0
birth_stat: min","date: 267235200
value: 24.0
birth_stat: min","date: 75945600
value: 14.0
birth_stat: min","date: 187833600
value: 18.0
birth_stat: min","date: 140486400
value: 7.0
birth_stat: min","date: 294019200
value: 18.0
birth_stat: min","date: 362620800
value: 23.0
birth_stat: min","date: 554688000
value: 22.0
birth_stat: min","date: 564451200
value: 10.0
birth_stat: min","date: 210902400
value: 15.0
birth_stat: min","date: 81216000
value: 16.0
birth_stat: min","date: 322272000
value: 20.0
birth_stat: min","date: 201139200
value: 14.0
birth_stat: min","date: 531792000
value: 13.0
birth_stat: min","date: 339292800
value: 25.0
birth_stat: min","date: 516499200
value: 21.0
birth_stat: min","date: -18489600
value: 8.0
birth_stat: min","date: 54518400
value: 12.0
birth_stat: min","date: 457747200
value: 20.0
birth_stat: min","date: 21254400
value: 22.0
birth_stat: min","date: 485654400
value: 20.0
birth_stat: min","date: 71971200
value: 12.0
birth_stat: min","date: 543801600
value: 20.0
birth_stat: min","date: 37497600
value: 22.0
birth_stat: min","date: 374716800
value: 21.0
birth_stat: min","date: 393379200
value: 22.0
birth_stat: min","date: 43200000
value: 14.0
birth_stat: min","date: 545270400
value: 21.0
birth_stat: min","date: 525312000
value: 27.0
birth_stat: min","date: 108777600
value: 8.0
birth_stat: min","date: 305856000
value: 16.0
birth_stat: min","date: 568425600
value: 20.0
birth_stat: min","date: 89942400
value: 10.0
birth_stat: min","date: -20822400
value: 16.0
birth_stat: min","date: 529200000
value: 19.0
birth_stat: min","date: 436492800
value: 26.0
birth_stat: min","date: 102643200
value: 14.0
birth_stat: min","date: 310348800
value: 15.0
birth_stat: min","date: 357004800
value: 17.0
birth_stat: min","date: 538272000
value: 17.0
birth_stat: min","date: 531964800
value: 18.0
birth_stat: min","date: 221097600
value: 16.0
birth_stat: min","date: 249091200
value: 21.0
birth_stat: min","date: 36892800
value: 16.0
birth_stat: min","date: 166924800
value: 14.0
birth_stat: min","date: -17193600
value: 18.0
birth_stat: min","date: 62553600
value: 12.0
birth_stat: min","date: -25574400
value: 12.0
birth_stat: min","date: 318384000
value: 18.0
birth_stat: min","date: 328924800
value: 26.0
birth_stat: min","date: 84067200
value: 14.0
birth_stat: min","date: 490320000
value: 21.0
birth_stat: min","date: 329702400
value: 21.0
birth_stat: min","date: 479692800
value: 20.0
birth_stat: min","date: 505008000
value: 21.0
birth_stat: min","date: 230515200
value: 10.0
birth_stat: min","date: 19267200
value: 16.0
birth_stat: min","date: 168048000
value: 10.0
birth_stat: min","date: 565315200
value: 16.0
birth_stat: min","date: 596160000
value: 23.0
birth_stat: min","date: 579052800
value: 14.0
birth_stat: min","date: 2073600
value: 16.0
birth_stat: min","date: 58060800
value: 20.0
birth_stat: min","date: 380073600
value: 18.0
birth_stat: min","date: 417398400
value: 22.0
birth_stat: min","date: 20044800
value: 20.0
birth_stat: min","date: 482025600
value: 21.0
birth_stat: min","date: -7948800
value: 2.0
birth_stat: min","date: 416707200
value: 25.0
birth_stat: min","date: 14774400
value: 20.0
birth_stat: min","date: 569721600
value: 13.0
birth_stat: min","date: 295833600
value: 22.0
birth_stat: min","date: 304646400
value: 20.0
birth_stat: min","date: 258076800
value: 22.0
birth_stat: min","date: 108000000
value: 17.0
birth_stat: min","date: 282960000
value: 17.0
birth_stat: min","date: 432864000
value: 21.0
birth_stat: min","date: 265161600
value: 10.0
birth_stat: min","date: 45446400
value: 16.0
birth_stat: min","date: 118800000
value: 4.0
birth_stat: min","date: 267667200
value: 18.0
birth_stat: min","date: 434505600
value: 12.0
birth_stat: min","date: 114912000
value: 16.0
birth_stat: min","date: 362707200
value: 19.0
birth_stat: min","date: 205200000
value: 13.0
birth_stat: min","date: 577238400
value: 10.0
birth_stat: min","date: 524880000
value: 21.0
birth_stat: min","date: 113443200
value: 16.0
birth_stat: min","date: 309916800
value: 18.0
birth_stat: min","date: 139881600
value: 10.0
birth_stat: min","date: 127526400
value: 8.0
birth_stat: min","date: 111196800
value: 14.0
birth_stat: min","date: 442540800
value: 20.0
birth_stat: min","date: 395884800
value: 26.0
birth_stat: min","date: 129513600
value: 12.0
birth_stat: min","date: 340588800
value: 22.0
birth_stat: min","date: -24710400
value: 12.0
birth_stat: min","date: 329443200
value: 22.0
birth_stat: min","date: 452217600
value: 24.0
birth_stat: min","date: 35337600
value: 16.0
birth_stat: min","date: 201571200
value: 12.0
birth_stat: min","date: 573177600
value: 19.0
birth_stat: min","date: 245548800
value: 16.0
birth_stat: min","date: 345254400
value: 20.0
birth_stat: min","date: 145411200
value: 12.0
birth_stat: min","date: 132364800
value: 10.0
birth_stat: min","date: 156902400
value: 8.0
birth_stat: min","date: 370137600
value: 17.0
birth_stat: min","date: 209520000
value: 16.0
birth_stat: min","date: 496972800
value: 20.0
birth_stat: min","date: 119836800
value: 15.0
birth_stat: min","date: 199929600
value: 17.0
birth_stat: min","date: 469929600
value: 14.0
birth_stat: min","date: 169862400
value: 18.0
birth_stat: min","date: 282441600
value: 17.0
birth_stat: min","date: 478224000
value: 21.0
birth_stat: min","date: -27388800
value: 14.0
birth_stat: min","date: 572227200
value: 15.0
birth_stat: min","date: -28166400
value: 12.0
birth_stat: min","date: -17971200
value: 14.0
birth_stat: min","date: 43113600
value: 4.0
birth_stat: min","date: -11923200
value: 14.0
birth_stat: min","date: 333244800
value: 16.0
birth_stat: min","date: -26697600
value: 12.0
birth_stat: min","date: 347500800
value: 24.0
birth_stat: min","date: 5875200
value: 14.0
birth_stat: min","date: 67392000
value: 8.0
birth_stat: min","date: 387849600
value: 16.0
birth_stat: min","date: 257817600
value: 19.0
birth_stat: min","date: 229305600
value: 18.0
birth_stat: min","date: 200275200
value: 22.0
birth_stat: min","date: 129168000
value: 12.0
birth_stat: min","date: 510105600
value: 14.0
birth_stat: min","date: -22636800
value: 20.0
birth_stat: min","date: 595641600
value: 19.0
birth_stat: min","date: 60566400
value: 10.0
birth_stat: min","date: 228441600
value: 14.0
birth_stat: min","date: 484876800
value: 23.0
birth_stat: min","date: 103593600
value: 6.0
birth_stat: min","date: 227577600
value: 12.0
birth_stat: min","date: 163555200
value: 6.0
birth_stat: min","date: 232588800
value: 14.0
birth_stat: min","date: 568684800
value: 8.0
birth_stat: min","date: 393292800
value: 21.0
birth_stat: min","date: 415238400
value: 19.0
birth_stat: min","date: 285465600
value: 24.0
birth_stat: min","date: 597974400
value: 20.0
birth_stat: min","date: 139536000
value: 16.0
birth_stat: min","date: 247449600
value: 15.0
birth_stat: min","date: 113961600
value: 10.0
birth_stat: min","date: 443318400
value: 19.0
birth_stat: min","date: 175996800
value: 10.0
birth_stat: min","date: 82252800
value: 16.0
birth_stat: min","date: 164073600
value: 18.0
birth_stat: min","date: 90720000
value: 14.0
birth_stat: min","date: 551750400
value: 12.0
birth_stat: min","date: 500428800
value: 15.0
birth_stat: min","date: 409968000
value: 24.0
birth_stat: min","date: 222480000
value: 20.0
birth_stat: min","date: -10195200
value: 12.0
birth_stat: min","date: 137808000
value: 17.0
birth_stat: min","date: 467510400
value: 22.0
birth_stat: min","date: -13651200
value: 12.0
birth_stat: min","date: 314064000
value: 15.0
birth_stat: min","date: 122256000
value: 14.0
birth_stat: min","date: 445132800
value: 23.0
birth_stat: min","date: 597369600
value: 19.0
birth_stat: min","date: 58233600
value: 12.0
birth_stat: min","date: 321408000
value: 12.0
birth_stat: min","date: 291513600
value: 22.0
birth_stat: min","date: 130118400
value: 14.0
birth_stat: min","date: 459475200
value: 22.0
birth_stat: min","date: 486691200
value: 20.0
birth_stat: min","date: 296438400
value: 23.0
birth_stat: min","date: 574819200
value: 15.0
birth_stat: min","date: 29808000
value: 12.0
birth_stat: min","date: 248659200
value: 18.0
birth_stat: min","date: 382233600
value: 24.0
birth_stat: min","date: 519350400
value: 20.0
birth_stat: min","date: 261360000
value: 18.0
birth_stat: min","date: 62208000
value: 16.0
birth_stat: min","date: 273888000
value: 14.0
birth_stat: min","date: 404697600
value: 23.0
birth_stat: min","date: 184204800
value: 12.0
birth_stat: min","date: 502416000
value: 27.0
birth_stat: min","date: -18403200
value: 18.0
birth_stat: min","date: 262656000
value: 13.0
birth_stat: min","date: 445219200
value: 24.0
birth_stat: min","date: 241920000
value: 20.0
birth_stat: min","date: 72489600
value: 14.0
birth_stat: min","date: 387331200
value: 18.0
birth_stat: min","date: 204422400
value: 14.0
birth_stat: min","date: 301449600
value: 20.0
birth_stat: min","date: 135216000
value: 14.0
birth_stat: min","date: 63504000
value: 8.0
birth_stat: min","date: 340934400
value: 21.0
birth_stat: min","date: 294883200
value: 20.0
birth_stat: min","date: 170035200
value: 23.0
birth_stat: min","date: 452304000
value: 22.0
birth_stat: min","date: 62121600
value: 10.0
birth_stat: min","date: 248140800
value: 13.0
birth_stat: min","date: 20304000
value: 16.0
birth_stat: min","date: 33523200
value: 12.0
birth_stat: min","date: -6739200
value: 14.0
birth_stat: min","date: 487036800
value: 18.0
birth_stat: min","date: 590284800
value: 22.0
birth_stat: min","date: 250473600
value: 16.0
birth_stat: min","date: 81043200
value: 14.0
birth_stat: min","date: 189648000
value: 16.0
birth_stat: min","date: 510796800
value: 20.0
birth_stat: min","date: 578880000
value: 15.0
birth_stat: min","date: 76377600
value: 10.0
birth_stat: min","date: 488160000
value: 25.0
birth_stat: min","date: 97286400
value: 14.0
birth_stat: min","date: 27388800
value: 10.0
birth_stat: min","date: 578016000
value: 17.0
birth_stat: min","date: 570412800
value: 20.0
birth_stat: min","date: 219369600
value: 22.0
birth_stat: min","date: 59616000
value: 24.0
birth_stat: min","date: 66441600
value: 12.0
birth_stat: min","date: 120960000
value: 14.0
birth_stat: min","date: 521337600
value: 21.0
birth_stat: min","date: 93312000
value: 12.0
birth_stat: min","date: 277948800
value: 14.0
birth_stat: min","date: 28166400
value: 12.0
birth_stat: min","date: 353203200
value: 22.0
birth_stat: min","date: 13737600
value: 16.0
birth_stat: min","date: 569376000
value: 9.0
birth_stat: min","date: 155692800
value: 8.0
birth_stat: min","date: 556675200
value: 19.0
birth_stat: min","date: 495936000
value: 25.0
birth_stat: min","date: 26352000
value: 18.0
birth_stat: min","date: 136857600
value: 8.0
birth_stat: min","date: 30153600
value: 18.0
birth_stat: min","date: 435456000
value: 22.0
birth_stat: min","date: 489110400
value: 25.0
birth_stat: min","date: 541987200
value: 20.0
birth_stat: min","date: 592272000
value: 17.0
birth_stat: min","date: 134524800
value: 14.0
birth_stat: min","date: 547776000
value: 21.0
birth_stat: min","date: 73440000
value: 14.0
birth_stat: min","date: 388281600
value: 22.0
birth_stat: min","date: 348019200
value: 15.0
birth_stat: min","date: 464140800
value: 17.0
birth_stat: min","date: 289785600
value: 19.0
birth_stat: min","date: 20995200
value: 12.0
birth_stat: min","date: 55641600
value: 14.0
birth_stat: min","date: 175824000
value: 22.0
birth_stat: min","date: 56073600
value: 20.0
birth_stat: min","date: 591494400
value: 21.0
birth_stat: min","date: 50284800
value: 10.0
birth_stat: min","date: 233884800
value: 22.0
birth_stat: min","date: 240796800
value: 19.0
birth_stat: min","date: 39225600
value: 12.0
birth_stat: min","date: 243388800
value: 20.0
birth_stat: min","date: 24364800
value: 14.0
birth_stat: min","date: 548380800
value: 21.0
birth_stat: min","date: 544147200
value: 17.0
birth_stat: min","date: 400377600
value: 25.0
birth_stat: min","date: -8899200
value: 14.0
birth_stat: min","date: 547171200
value: 26.0
birth_stat: min","date: 202521600
value: 16.0
birth_stat: min","date: 11923200
value: 8.0
birth_stat: min","date: 194313600
value: 16.0
birth_stat: min","date: 249436800
value: 12.0
birth_stat: min","date: 1900800
value: 20.0
birth_stat: min","date: 225417600
value: 22.0
birth_stat: min","date: 48470400
value: 16.0
birth_stat: min","date: 271123200
value: 13.0
birth_stat: min","date: 255744000
value: 16.0
birth_stat: min","date: 406080000
value: 19.0
birth_stat: min","date: 115344000
value: 16.0
birth_stat: min","date: 112665600
value: 16.0
birth_stat: min","date: 229046400
value: 16.0
birth_stat: min","date: 574041600
value: 20.0
birth_stat: min","date: 126835200
value: 10.0
birth_stat: min","date: 572832000
value: 14.0
birth_stat: min","date: 1641600
value: 10.0
birth_stat: min","date: 219110400
value: 13.0
birth_stat: min","date: 414633600
value: 22.0
birth_stat: min","date: 276825600
value: 20.0
birth_stat: min","date: 483408000
value: 21.0
birth_stat: min","date: 334454400
value: 22.0
birth_stat: min","date: 373766400
value: 11.0
birth_stat: min","date: 377308800
value: 21.0
birth_stat: min","date: 325987200
value: 24.0
birth_stat: min","date: 344044800
value: 23.0
birth_stat: min","date: 385344000
value: 18.0
birth_stat: min","date: 458352000
value: 16.0
birth_stat: min","date: 170985600
value: 12.0
birth_stat: min","date: 539136000
value: 11.0
birth_stat: min","date: 270000000
value: 16.0
birth_stat: min","date: 326246400
value: 17.0
birth_stat: min","date: 11577600
value: 20.0
birth_stat: min","date: 485395200
value: 23.0
birth_stat: min","date: 7171200
value: 12.0
birth_stat: min","date: 159840000
value: 12.0
birth_stat: min","date: 213321600
value: 20.0
birth_stat: min","date: 52272000
value: 12.0
birth_stat: min","date: 332812800
value: 24.0
birth_stat: min","date: 22464000
value: 14.0
birth_stat: min","date: 18489600
value: 24.0
birth_stat: min","date: 542419200
value: 24.0
birth_stat: min","date: 225072000
value: 16.0
birth_stat: min","date: -5097600
value: 4.0
birth_stat: min","date: 4147200
value: 4.0
birth_stat: min","date: 19008000
value: 8.0
birth_stat: min","date: 178934400
value: 16.0
birth_stat: min","date: 314150400
value: 14.0
birth_stat: min","date: 553824000
value: 24.0
birth_stat: min","date: 129600000
value: 11.0
birth_stat: min","date: 551059200
value: 21.0
birth_stat: min","date: 166320000
value: 8.0
birth_stat: min","date: 560476800
value: 13.0
birth_stat: min","date: -24019200
value: 6.0
birth_stat: min","date: 510883200
value: 23.0
birth_stat: min","date: 81302400
value: 14.0
birth_stat: min","date: 123465600
value: 14.0
birth_stat: min","date: 70070400
value: 6.0
birth_stat: min","date: 555465600
value: 12.0
birth_stat: min","date: 41299200
value: 14.0
birth_stat: min","date: 122601600
value: 8.0
birth_stat: min","date: 592963200
value: 17.0
birth_stat: min","date: 524361600
value: 25.0
birth_stat: min","date: 156988800
value: 10.0
birth_stat: min","date: 14428800
value: 18.0
birth_stat: min","date: 564105600
value: 16.0
birth_stat: min","date: 415411200
value: 17.0
birth_stat: min","date: 482630400
value: 23.0
birth_stat: min","date: 20217600
value: 8.0
birth_stat: min","date: 53136000
value: 16.0
birth_stat: min","date: 76204800
value: 16.0
birth_stat: min","date: 210384000
value: 18.0
birth_stat: min","date: 130982400
value: 14.0
birth_stat: min","date: 340848000
value: 20.0
birth_stat: min","date: 316051200
value: 18.0
birth_stat: min","date: 394416000
value: 20.0
birth_stat: min","date: -16588800
value: 14.0
birth_stat: min","date: 64195200
value: 10.0
birth_stat: min","date: 177379200
value: 12.0
birth_stat: min","date: 173145600
value: 17.0
birth_stat: min","date: 494812800
value: 26.0
birth_stat: min","date: 314323200
value: 19.0
birth_stat: min","date: 484012800
value: 16.0
birth_stat: min","date: -27302400
value: 14.0
birth_stat: min","date: 347328000
value: 10.0
birth_stat: min","date: 488073600
value: 24.0
birth_stat: min","date: 137894400
value: 18.0
birth_stat: min","date: 154828800
value: 14.0
birth_stat: min","date: 333072000
value: 16.0
birth_stat: min","date: 418348800
value: 20.0
birth_stat: min","date: 109555200
value: 8.0
birth_stat: min","date: 61862400
value: 10.0
birth_stat: min","date: 330393600
value: 18.0
birth_stat: min","date: 207532800
value: 16.0
birth_stat: min","date: 206323200
value: 15.0
birth_stat: min","date: 90547200
value: 12.0
birth_stat: min","date: 558144000
value: 17.0
birth_stat: min","date: 567302400
value: 14.0
birth_stat: min","date: 456192000
value: 10.0
birth_stat: min","date: 309484800
value: 21.0
birth_stat: min","date: 50630400
value: 12.0
birth_stat: min","date: 239500800
value: 18.0
birth_stat: min","date: 543196800
value: 18.0
birth_stat: min","date: 92102400
value: 18.0
birth_stat: min","date: 415324800
value: 16.0
birth_stat: min","date: 269395200
value: 14.0
birth_stat: min","date: 340416000
value: 18.0
birth_stat: min","date: 328320000
value: 21.0
birth_stat: min","date: 587779200
value: 15.0
birth_stat: min","date: 412300800
value: 20.0
birth_stat: min","date: 200534400
value: 12.0
birth_stat: min","date: 168998400
value: 14.0
birth_stat: min","date: 78537600
value: 12.0
birth_stat: min","date: 283478400
value: 14.0
birth_stat: min","date: 354326400
value: 20.0
birth_stat: min","date: 419385600
value: 20.0
birth_stat: min","date: 569635200
value: 17.0
birth_stat: min","date: 433555200
value: 29.0
birth_stat: min","date: 31017600
value: 12.0
birth_stat: min","date: 320371200
value: 22.0
birth_stat: min","date: 349574400
value: 24.0
birth_stat: min","date: 418694400
value: 18.0
birth_stat: min","date: 451958400
value: 21.0
birth_stat: min","date: 514080000
value: 25.0
birth_stat: min","date: 545011200
value: 23.0
birth_stat: min","date: 443836800
value: 18.0
birth_stat: min","date: -3456000
value: 12.0
birth_stat: min","date: 285379200
value: 16.0
birth_stat: min","date: 100137600
value: 16.0
birth_stat: min","date: -2073600
value: 18.0
birth_stat: min","date: 455500800
value: 24.0
birth_stat: min","date: 170208000
value: 18.0
birth_stat: min","date: 552441600
value: 18.0
birth_stat: min","date: 368841600
value: 19.0
birth_stat: min","date: 226627200
value: 20.0
birth_stat: min","date: 126316800
value: 14.0
birth_stat: min","date: 442886400
value: 14.0
birth_stat: min","date: 78969600
value: 18.0
birth_stat: min","date: 38448000
value: 18.0
birth_stat: min","date: 336960000
value: 22.0
birth_stat: min","date: 330307200
value: 19.0
birth_stat: min","date: 426902400
value: 20.0
birth_stat: min","date: 92275200
value: 14.0
birth_stat: min","date: 196128000
value: 14.0
birth_stat: min","date: 226972800
value: 14.0
birth_stat: min","date: 164419200
value: 14.0
birth_stat: min","date: 360806400
value: 23.0
birth_stat: min","date: 334022400
value: 10.0
birth_stat: min","date: 477360000
value: 15.0
birth_stat: min","date: 27993600
value: 12.0
birth_stat: min","date: 172800
value: 16.0
birth_stat: min","date: 389923200
value: 20.0
birth_stat: min","date: 360201600
value: 16.0
birth_stat: min","date: 17280000
value: 22.0
birth_stat: min","date: 197510400
value: 14.0
birth_stat: min","date: 458697600
value: 15.0
birth_stat: min","date: 385603200
value: 19.0
birth_stat: min","date: 189475200
value: 12.0
birth_stat: min","date: 339984000
value: 19.0
birth_stat: min","date: 266976000
value: 13.0
birth_stat: min","date: 387244800
value: 14.0
birth_stat: min","date: 181958400
value: 16.0
birth_stat: min","date: -25488000
value: 12.0
birth_stat: min","date: 271296000
value: 23.0
birth_stat: min","date: 348192000
value: 21.0
birth_stat: min","date: 327801600
value: 17.0
birth_stat: min","date: 310435200
value: 15.0
birth_stat: min","date: 90806400
value: 18.0
birth_stat: min","date: 571622400
value: 15.0
birth_stat: min","date: 67478400
value: 18.0
birth_stat: min","date: 229651200
value: 18.0
birth_stat: min","date: 440899200
value: 14.0
birth_stat: min","date: 191721600
value: 15.0
birth_stat: min","date: 487209600
value: 25.0
birth_stat: min","date: 73699200
value: 14.0
birth_stat: min","date: 436924800
value: 15.0
birth_stat: min","date: 535593600
value: 22.0
birth_stat: min","date: 528595200
value: 26.0
birth_stat: min","date: 85276800
value: 16.0
birth_stat: min","date: 66700800
value: 16.0
birth_stat: min","date: 251769600
value: 14.0
birth_stat: min","date: 243475200
value: 10.0
birth_stat: min","date: 329097600
value: 23.0
birth_stat: min","date: 174009600
value: 22.0
birth_stat: min","date: 363398400
value: 22.0
birth_stat: min","date: 9158400
value: 10.0
birth_stat: min","date: 517276800
value: 14.0
birth_stat: min","date: 95990400
value: 14.0
birth_stat: min","date: 121737600
value: 13.0
birth_stat: min","date: 348451200
value: 24.0
birth_stat: min","date: 109123200
value: 5.0
birth_stat: min","date: 317174400
value: 17.0
birth_stat: min","date: 55814400
value: 14.0
birth_stat: min","date: 475459200
value: 18.0
birth_stat: min","date: 187228800
value: 5.0
birth_stat: min","date: 421372800
value: 23.0
birth_stat: min","date: 45014400
value: 10.0
birth_stat: min","date: 294105600
value: 15.0
birth_stat: min","date: 166492800
value: 14.0
birth_stat: min","date: 503539200
value: 19.0
birth_stat: min","date: 455068800
value: 21.0
birth_stat: min","date: 174700800
value: 14.0
birth_stat: min","date: 532828800
value: 15.0
birth_stat: min","date: 243820800
value: 13.0
birth_stat: min","date: 507168000
value: 20.0
birth_stat: min","date: 250646400
value: 9.0
birth_stat: min","date: 528768000
value: 15.0
birth_stat: min","date: 507081600
value: 14.0
birth_stat: min","date: 287625600
value: 15.0
birth_stat: min","date: 171158400
value: 15.0
birth_stat: min","date: 131587200
value: 16.0
birth_stat: min","date: 563587200
value: 20.0
birth_stat: min","date: 535766400
value: 9.0
birth_stat: min","date: 65836800
value: 19.0
birth_stat: min","date: 257385600
value: 22.0
birth_stat: min","date: 281059200
value: 19.0
birth_stat: min","date: 3369600
value: 12.0
birth_stat: min"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(97,156,255,1)","opacity":1,"size":5.66929133858268,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(97,156,255,1)"}},"hoveron":"points","name":"min","legendgroup":"min","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":24.7671232876712,"r":7.30593607305936,"b":38.7214611872146,"l":48.9497716894977},"plot_bgcolor":"rgba(235,235,235,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":14.6118721461187},"xaxis":{"domain":[0,1],"type":"linear","autorange":false,"tickmode":"array","range":[-61979040,630577440],"ticktext":["1970","1975","1980","1985"],"tickvals":[0,157766400,315532800,473385600],"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":3.65296803652968,"tickwidth":0.66417600664176,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":11.689497716895},"tickangle":-0,"showline":false,"linecolor":null,"linewidth":0,"showgrid":true,"gridcolor":"rgba(255,255,255,1)","gridwidth":0.66417600664176,"zeroline":false,"anchor":"y","title":"date","titlefont":{"color":"rgba(0,0,0,1)","family":"","size":14.6118721461187},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"type":"linear","autorange":false,"tickmode":"array","range":[-82.5,1754.5],"ticktext":["0","500","1000","1500"],"tickvals":[0,500,1000,1500],"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":3.65296803652968,"tickwidth":0.66417600664176,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":11.689497716895},"tickangle":-0,"showline":false,"linecolor":null,"linewidth":0,"showgrid":true,"gridcolor":"rgba(255,255,255,1)","gridwidth":0.66417600664176,"zeroline":false,"anchor":"x","title":"value","titlefont":{"color":"rgba(0,0,0,1)","family":"","size":14.6118721461187},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":true,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":1.88976377952756,"font":{"color":"rgba(0,0,0,1)","family":"","size":11.689497716895},"y":0.913385826771654},"annotations":[{"text":"birth_stat","x":1.02,"y":1,"showarrow":false,"ax":0,"ay":0,"font":{"color":"rgba(0,0,0,1)","family":"","size":14.6118721461187},"xref":"paper","yref":"paper","textangle":-0,"xanchor":"left","yanchor":"bottom","legendTitle":true}],"hovermode":"closest"},"source":"A","attrs":{"1f7a1cae023c":{"x":{},"y":{},"colour":{},"type":"ggplotly"}},"cur_data":"1f7a1cae023c","visdat":{"1f7a1cae023c":["function (y) ","x"]},"config":{"modeBarButtonsToAdd":[{"name":"Collaborate","icon":{"width":1000,"ascent":500,"descent":-50,"path":"M487 375c7-10 9-23 5-36l-79-259c-3-12-11-23-22-31-11-8-22-12-35-12l-263 0c-15 0-29 5-43 15-13 10-23 23-28 37-5 13-5 25-1 37 0 0 0 3 1 7 1 5 1 8 1 11 0 2 0 4-1 6 0 3-1 5-1 6 1 2 2 4 3 6 1 2 2 4 4 6 2 3 4 5 5 7 5 7 9 16 13 26 4 10 7 19 9 26 0 2 0 5 0 9-1 4-1 6 0 8 0 2 2 5 4 8 3 3 5 5 5 7 4 6 8 15 12 26 4 11 7 19 7 26 1 1 0 4 0 9-1 4-1 7 0 8 1 2 3 5 6 8 4 4 6 6 6 7 4 5 8 13 13 24 4 11 7 20 7 28 1 1 0 4 0 7-1 3-1 6-1 7 0 2 1 4 3 6 1 1 3 4 5 6 2 3 3 5 5 6 1 2 3 5 4 9 2 3 3 7 5 10 1 3 2 6 4 10 2 4 4 7 6 9 2 3 4 5 7 7 3 2 7 3 11 3 3 0 8 0 13-1l0-1c7 2 12 2 14 2l218 0c14 0 25-5 32-16 8-10 10-23 6-37l-79-259c-7-22-13-37-20-43-7-7-19-10-37-10l-248 0c-5 0-9-2-11-5-2-3-2-7 0-12 4-13 18-20 41-20l264 0c5 0 10 2 16 5 5 3 8 6 10 11l85 282c2 5 2 10 2 17 7-3 13-7 17-13z m-304 0c-1-3-1-5 0-7 1-1 3-2 6-2l174 0c2 0 4 1 7 2 2 2 4 4 5 7l6 18c0 3 0 5-1 7-1 1-3 2-6 2l-173 0c-3 0-5-1-8-2-2-2-4-4-4-7z m-24-73c-1-3-1-5 0-7 2-2 3-2 6-2l174 0c2 0 5 0 7 2 3 2 4 4 5 7l6 18c1 2 0 5-1 6-1 2-3 3-5 3l-174 0c-3 0-5-1-7-3-3-1-4-4-5-6z"},"click":"function(gd) { \n // is this being viewed in RStudio?\n if (location.search == '?viewer_pane=1') {\n alert('To learn about plotly for collaboration, visit:\\n https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html');\n } else {\n window.open('https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html', '_blank');\n }\n }"}],"cloud":false},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1}},"base_url":"https://plot.ly"},"evals":["config.modeBarButtonsToAdd.0.click"],"jsHooks":{"render":[{"code":"function(el, x) { var ctConfig = crosstalk.var('plotlyCrosstalkOpts').set({\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1}}); }","data":null}]}} Whilst using plot_ly() we obtain…

plot_ly(date, x = ~date, y = ~value, color = ~birth_stat, type = "scatter")

{"x":{"visdat":{"1f7a3b6792cf":["function () ","plotlyVisDat"]},"cur_data":"1f7a3b6792cf","attrs":{"1f7a3b6792cf":{"x":{},"y":{},"color":{},"alpha":1,"sizes":[10,100],"type":"scatter"}},"layout":{"margin":{"b":40,"l":60,"t":25,"r":10},"xaxis":{"domain":[0,1],"title":"date"},"yaxis":{"domain":[0,1],"title":"value"},"hovermode":"closest","showlegend":true},"source":"A","config":{"modeBarButtonsToAdd":[{"name":"Collaborate","icon":{"width":1000,"ascent":500,"descent":-50,"path":"M487 375c7-10 9-23 5-36l-79-259c-3-12-11-23-22-31-11-8-22-12-35-12l-263 0c-15 0-29 5-43 15-13 10-23 23-28 37-5 13-5 25-1 37 0 0 0 3 1 7 1 5 1 8 1 11 0 2 0 4-1 6 0 3-1 5-1 6 1 2 2 4 3 6 1 2 2 4 4 6 2 3 4 5 5 7 5 7 9 16 13 26 4 10 7 19 9 26 0 2 0 5 0 9-1 4-1 6 0 8 0 2 2 5 4 8 3 3 5 5 5 7 4 6 8 15 12 26 4 11 7 19 7 26 1 1 0 4 0 9-1 4-1 7 0 8 1 2 3 5 6 8 4 4 6 6 6 7 4 5 8 13 13 24 4 11 7 20 7 28 1 1 0 4 0 7-1 3-1 6-1 7 0 2 1 4 3 6 1 1 3 4 5 6 2 3 3 5 5 6 1 2 3 5 4 9 2 3 3 7 5 10 1 3 2 6 4 10 2 4 4 7 6 9 2 3 4 5 7 7 3 2 7 3 11 3 3 0 8 0 13-1l0-1c7 2 12 2 14 2l218 0c14 0 25-5 32-16 8-10 10-23 6-37l-79-259c-7-22-13-37-20-43-7-7-19-10-37-10l-248 0c-5 0-9-2-11-5-2-3-2-7 0-12 4-13 18-20 41-20l264 0c5 0 10 2 16 5 5 3 8 6 10 11l85 282c2 5 2 10 2 17 7-3 13-7 17-13z m-304 0c-1-3-1-5 0-7 1-1 3-2 6-2l174 0c2 0 4 1 7 2 2 2 4 4 5 7l6 18c0 3 0 5-1 7-1 1-3 2-6 2l-173 0c-3 0-5-1-8-2-2-2-4-4-4-7z m-24-73c-1-3-1-5 0-7 2-2 3-2 6-2l174 0c2 0 5 0 7 2 3 2 4 4 5 7l6 18c1 2 0 5-1 6-1 2-3 3-5 3l-174 0c-3 0-5-1-7-3-3-1-4-4-5-6z"},"click":"function(gd) { \n // is this being viewed in RStudio?\n if (location.search == '?viewer_pane=1') {\n alert('To learn about plotly for collaboration, visit:\\n https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html');\n } else {\n window.open('https://cpsievert.github.io/plotly_book/plot-ly-for-collaboration.html', '_blank');\n }\n }"}],"cloud":false},"data":[{"x":["1983-06-27","1982-11-22","1985-08-31","1970-03-14","1975-03-01","1972-01-11","1988-06-20","1975-08-10","1985-01-12","1981-02-11","1978-07-26","1969-01-17","1976-07-30","1972-05-07","1978-03-03","1975-11-21","1976-04-07","1972-11-04","1970-06-22","1980-07-21","1983-08-16","1974-11-03","1981-05-10","1979-03-16","1982-05-08","1980-09-06","1975-06-23","1986-06-07","1971-08-06","1974-04-02","1971-07-03","1981-05-09","1975-07-15","1976-08-19","1977-06-08","1988-04-13","1984-03-04","1987-04-12","1972-09-08","1971-09-16","1988-03-09","1988-11-29","1974-01-13","1984-05-18","1987-09-26","1969-09-15","1972-06-21","1973-07-03","1980-07-09","1982-04-24","1975-06-15","1981-06-11","1972-02-03","1979-01-17","1979-12-19","1982-04-19","1973-02-08","1982-09-29","1981-09-30","1981-03-08","1974-02-06","1972-02-06","1985-02-20","1971-05-03","1984-02-24","1978-12-24","1975-07-19","1971-09-01","1986-02-18","1974-05-09","1985-04-29","1977-08-22","1985-08-20","1985-08-28","1983-11-15","1979-09-15","1969-12-08","1969-12-02","1983-01-08","1984-12-08","1974-03-14","1984-05-02","1984-06-02","1975-09-08","1970-08-23","1973-09-24","1988-06-06","1974-08-28","1981-02-20","1987-02-10","1969-05-03","1983-12-30","1987-08-22","1977-02-14","1978-10-06","1971-07-31","1986-04-24","1987-11-20","1979-07-20","1985-05-14","1977-01-05","1975-03-26","1974-01-16","1987-04-16","1976-12-27","1988-02-17","1987-06-14","1988-06-14","1971-11-01","1975-04-27","1986-11-29","1979-01-18","1981-04-27","1978-06-01","1978-05-15","1970-06-18","1970-03-24","1983-10-07","1988-01-05","1979-12-31","1986-09-09","1975-12-21","1978-01-08","1985-10-10","1983-07-10","1985-03-19","1981-11-18","1984-07-30","1971-08-15","1974-12-29","1984-05-14","1987-07-06","1973-01-06","1975-09-06","1970-07-21","1969-11-27","1977-06-04","1983-11-13","1978-04-28","1980-09-25","1984-01-16","1976-02-24","1972-06-30","1983-02-16","1984-05-25","1985-09-03","1986-12-29","1984-02-10","1971-01-14","1969-07-13","1985-01-29","1970-10-31","1979-09-11","1969-08-11","1973-08-15","1978-11-06","1984-07-23","1980-06-25","1984-02-02","1978-08-16","1969-05-09","1985-10-31","1978-10-18","1973-05-07","1980-03-25","1971-08-24","1970-12-27","1977-07-28","1970-07-12","1983-05-11","1976-02-09","1973-06-06","1985-01-19","1987-03-13","1984-12-04","1987-04-09","1971-11-12","1979-12-09","1982-01-03","1974-01-26","1977-01-06","1977-06-29","1971-10-04","1982-01-14","1969-09-11","1984-12-19","1977-05-13","1978-03-23","1972-01-27","1984-06-05","1985-03-11","1970-05-20","1974-06-04","1977-06-19","1976-07-08","1983-03-14","1972-10-02","1985-12-05","1985-11-15","1984-06-22","1983-07-12","1970-09-07","1978-08-28","1983-09-05","1978-12-21","1977-04-11","1969-03-01","1981-09-09","1983-05-01","1975-02-23","1979-03-13","1983-11-08","1978-02-01","1972-09-26","1979-06-22","1975-06-27","1982-03-01","1973-09-06","1977-02-28","1987-03-20","1973-10-12","1974-03-29","1982-06-05","1976-08-28","1974-11-04","1985-05-17","1983-01-02","1981-04-30","1972-08-11","1983-09-26","1970-05-09","1971-01-23","1988-04-27","1974-06-17","1973-07-09","1981-07-18","1970-01-01","1978-05-18","1971-05-01","1972-07-27","1987-12-30","1977-02-13","1987-11-08","1981-04-12","1984-09-02","1974-01-05","1979-03-15","1971-02-08","1979-09-19","1970-01-06","1976-06-27","1986-08-29","1972-08-06","1986-11-02","1981-07-01","1987-12-29","1971-04-17","1978-11-25","1983-08-14","1988-12-16","1975-08-19","1978-08-23","1985-02-16","1972-01-26","1983-09-24","1984-06-18","1987-05-13","1982-06-15","1981-12-17","1970-06-02","1971-11-28","1976-05-03","1979-03-21","1971-01-08","1969-05-24","1981-07-14","1977-10-23","1973-12-09","1979-05-19","1984-03-08","1982-05-04","1970-04-10","1983-08-05","1971-11-09","1985-07-14","1970-07-15","1970-09-08","1985-02-07","1975-11-20","1971-09-05","1986-01-21","1983-05-30","1984-05-22","1980-10-13","1974-03-13","1975-03-29","1976-11-12","1973-02-13","1987-12-31","1974-05-22","1970-04-30","1969-06-20","1979-11-21","1984-10-21","1985-08-09","1980-05-09","1976-04-06","1970-08-15","1982-03-17","1971-03-23","1972-03-03","1982-06-14","1978-06-07","1981-11-17","1972-06-14","1981-05-02","1976-01-26","1979-03-06","1979-09-18","1988-06-10","1980-03-18","1985-10-24","1971-01-02","1985-12-06","1984-04-24","1974-12-03","1987-10-08","1986-05-19","1987-08-08","1988-04-14","1986-04-17","1973-06-30","1988-09-12","1977-01-16","1983-01-23","1987-05-07","1980-04-02","1979-03-05","1988-07-24","1986-08-12","1977-03-23","1972-09-12","1969-04-27","1988-04-24","1987-07-21","1986-09-25","1982-09-01","1980-10-08","1979-04-28","1971-12-16","1981-10-28","1986-05-23","1982-01-29","1983-03-17","1980-05-10","1970-06-14","1975-07-07","1980-09-05","1969-09-10","1969-02-27","1972-12-27","1987-04-28","1982-02-05","1982-07-08","1986-05-17","1974-02-01","1988-08-31","1970-12-24","1988-02-04","1973-02-09","1974-06-02","1976-06-01","1972-03-04","1980-05-08","1986-05-15","1978-02-22","1975-06-04","1974-08-15","1973-11-30","1974-08-06","1976-08-25","1969-10-16","1978-02-24","1984-08-15","1982-08-09","1983-02-27","1975-01-07","1972-04-24","1986-04-15","1973-11-07","1981-02-14","1987-01-14","1973-03-12","1982-02-02","1983-03-15","1975-05-11","1970-12-29","1986-01-15","1971-01-18","1981-12-09","1977-01-23","1969-01-14","1977-09-10","1970-09-24","1986-05-01","1982-06-20","1986-08-02","1975-05-16","1985-06-05","1978-09-28","1983-06-29","1981-12-02","1983-05-22","1985-10-11","1988-09-06","1972-02-21","1980-02-10","1985-08-11","1986-09-26","1980-08-31","1971-08-27","1969-12-05","1982-02-19","1972-02-15","1977-11-13","1974-05-14","1969-03-25","1981-06-21","1970-11-30","1972-01-18","1987-06-08","1979-10-07","1974-04-08","1984-01-14","1983-07-14","1971-11-22","1987-05-29","1973-02-18","1988-01-17","1987-07-20","1976-02-10","1976-09-07","1978-08-20","1971-07-04","1980-04-13","1984-07-14","1986-10-23","1969-05-10","1986-01-17","1980-11-22","1977-05-14","1980-01-20","1975-10-03","1973-01-17","1981-11-13","1976-03-10","1975-04-30","1978-04-23","1982-04-26","1969-05-28","1986-07-13","1970-10-14","1977-12-01","1969-05-31","1983-10-18","1974-08-13","1986-02-01","1980-04-03","1982-11-21","1981-11-02","1979-08-24","1988-08-11","1988-12-13","1974-03-15","1975-12-01","1982-05-11","1981-05-29","1977-05-29","1982-10-09","1969-01-18","1985-06-10","1987-05-16","1974-02-28","1970-01-05","1987-01-16","1975-03-23","1985-11-17","1975-12-31","1975-07-16","1975-01-15","1978-06-19","1969-02-10","1979-05-11","1971-03-29","1985-07-04","1977-08-10","1976-06-29","1988-06-19","1982-11-27","1978-04-17","1982-10-06","1985-07-07","1987-12-04","1970-10-12","1983-08-27","1976-01-23","1976-01-28","1973-04-17","1976-12-03","1969-11-20","1983-05-28","1975-06-25","1976-06-22","1982-09-02","1982-04-15","1970-04-11","1979-03-25","1985-08-08","1978-03-14","1974-12-06","1980-05-27","1977-01-12","1976-05-07","1985-08-03","1977-06-16","1971-01-11","1971-11-25","1977-09-29","1987-10-18","1976-07-26","1977-06-07","1974-04-30","1974-10-17","1983-10-26","1970-10-15","1976-03-27","1979-12-26","1980-01-10","1974-08-22","1973-03-28","1973-12-06","1977-11-20","1979-12-12","1975-09-22","1986-08-23","1975-09-20","1978-01-21","1971-08-09","1978-08-10","1988-02-22","1970-07-23","1977-08-15","1980-12-06","1972-10-22","1983-03-19","1972-09-19","1971-02-23","1975-03-04","1985-02-27","1979-04-06","1983-12-14","1987-07-17","1982-06-17","1975-10-20","1981-11-19","1977-09-02","1977-11-26","1983-09-21","1978-05-12","1985-10-22","1984-10-09","1984-04-30","1977-01-30","1980-11-07","1982-11-07","1974-08-30","1970-11-17","1970-03-30","1986-10-11","1979-12-22","1972-07-07","1975-05-02","1984-03-14","1982-05-16","1973-07-21","1979-10-17","1970-10-26","1982-02-17","1983-07-21","1985-06-25","1988-01-01","1985-04-07","1974-04-09","1987-07-18","1971-09-12","1986-11-07","1969-09-04","1976-09-20","1981-12-15","1981-05-20","1979-08-14","1970-01-31","1980-05-29","1977-11-27","1984-08-06","1987-03-10","1985-09-08","1982-02-07","1969-11-15","1985-01-02","1984-03-31","1970-12-23","1983-10-08","1986-10-10","1974-01-07","1981-11-26","1979-11-26","1973-11-18","1970-06-29","1985-02-19","1985-11-12","1982-07-17","1988-02-27","1971-04-18","1976-12-15","1983-05-27","1982-01-15","1976-02-05","1977-03-29","1974-04-20","1982-10-03","1972-07-01","1986-01-13","1974-01-08","1972-03-12","1984-01-13","1983-01-21","1972-02-26","1987-09-23","1973-06-05","1970-03-02","1973-04-02","1972-06-03","1978-12-15","1983-02-24","1970-05-26","1977-06-05","1977-08-28","1985-09-09","1985-05-12","1974-08-08","1981-01-08","1983-06-17","1986-03-17","1985-11-10","1982-12-27","1970-06-19","1973-05-13","1979-10-01","1988-09-07","1981-12-01","1971-02-15","1972-01-04","1973-04-19","1978-11-14","1986-07-25","1982-06-25","1987-01-26","1972-10-17","1986-06-11","1983-03-08","1979-10-27","1971-09-24","1969-12-22","1974-05-06","1984-12-21","1975-02-17","1986-05-10","1975-09-27","1971-04-09","1988-01-15"],"y":[1286,1272,1288,970,694,928,1508,778,1107,1152,1066,936,1026,758,922,922,922,804,1006,1144,1386,754,1090,1110,1100,1120,962,1118,942,906,882,1072,880,994,944,1470,1050,1136,994,938,1381,1613,658,1184,1313,994,788,872,1140,1060,736,1246,904,1058,1082,1278,788,1206,1250,984,828,744,1312,876,1164,894,770,906,1327,856,1276,1066,1454,1447,1238,1080,1020,1032,1086,1066,802,1300,1104,1028,832,884,1508,984,1206,1489,854,1204,1281,950,1028,1028,1309,1468,1076,1408,940,858,824,1397,964,1502,1123,1633,890,768,1111,956,1076,1028,1032,982,1008,1362,1440,1086,1545,774,802,1459,1074,1336,1164,1246,838,702,1208,1403,672,860,1166,824,906,1110,1028,1170,1120,946,838,1256,1324,1464,1441,1276,942,930,1342,906,1170,1032,914,1030,1274,1118,1164,1040,978,1323,974,766,1252,946,858,1122,848,1280,876,830,1158,1410,1298,1525,908,914,1062,758,928,1052,1072,1138,1038,1310,952,946,716,1196,1239,966,896,794,934,1244,844,1349,1412,1190,1284,882,1008,1020,990,928,930,1286,978,734,980,1176,962,918,1114,868,1122,860,916,1480,784,866,1084,930,846,1298,1058,1220,910,1300,928,976,1626,934,786,1074,764,1044,924,912,1550,886,1159,990,1086,748,1040,904,1228,982,776,1479,836,1063,1168,1598,820,948,1092,1556,874,1004,1104,882,1122,1386,1369,1276,1246,1020,700,896,1148,956,866,1152,846,758,860,1194,1256,1002,1326,830,1117,986,1158,1332,822,780,1295,1024,1264,1060,818,748,972,816,1417,922,896,1024,1120,964,1459,1116,904,934,1168,924,884,1250,1098,1282,744,1028,920,978,1148,1528,1154,1355,798,1324,1250,856,1451,1379,1278,1454,1349,736,1588,804,968,1414,1102,990,1246,1416,956,890,846,1206,1521,1466,1254,1182,852,896,1214,1420,1292,1246,972,876,960,1264,1080,888,916,1430,1122,1422,1118,842,1604,882,1455,804,702,944,742,1076,1437,980,940,956,874,998,1002,922,964,1376,1252,1106,862,850,1382,818,1032,1393,842,1168,1206,794,1154,1346,1082,1196,800,1036,978,1030,1407,1066,1214,968,1317,1122,1416,1226,1014,1374,1653,738,936,1186,1497,1030,896,970,1142,896,896,874,1010,1034,1048,906,1483,906,822,1068,1334,832,1477,702,1142,1481,860,996,894,762,926,1120,1336,862,1331,990,844,852,926,902,1174,894,912,842,1190,996,1129,1010,986,874,1304,990,1098,1056,1038,1268,1074,1643,1534,858,936,1292,1218,806,1086,904,1389,1173,866,938,1396,852,1136,1000,944,942,1000,982,1118,990,1126,1010,920,1275,1002,904,1334,1131,1494,1088,1128,812,866,884,960,1018,1082,934,852,1310,1252,992,930,1441,1024,888,1202,1048,856,1261,1014,960,666,1070,1149,1008,994,826,862,1298,1096,834,986,1034,880,814,828,842,1146,1000,1268,916,800,928,1006,1396,1000,1012,990,770,1040,972,940,848,1240,1044,1202,1516,1226,832,1158,1022,876,1332,990,1363,1492,1256,928,1196,1032,966,1084,1032,1165,918,956,890,1208,1000,746,1080,1060,1256,1194,1316,1182,1126,884,1190,884,1387,1042,1078,1194,1060,1284,852,1094,852,1446,1385,1162,966,898,1135,1078,1012,1140,1472,874,950,1018,732,960,1205,1390,1202,1255,764,992,1256,1112,878,994,782,1036,744,1261,834,758,1252,1220,808,1524,834,1038,848,750,1056,1292,1026,796,916,1434,1065,908,1068,1262,1375,1091,1232,1072,764,1054,1671,1266,854,770,832,1050,1480,1242,1399,880,1423,1258,960,1012,1032,808,1388,660,1210,838,884,1464],"type":"scatter","mode":"markers","name":"max","marker":{"fillcolor":"rgba(102,194,165,0.5)","color":"rgba(102,194,165,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y","frame":null},{"x":["1984-12-06","1981-02-06","1972-09-15","1981-05-09","1979-08-04","1981-09-19","1976-07-11","1985-01-06","1969-10-21","1980-02-27","1975-06-20","1970-05-26","1983-08-27","1973-03-26","1974-12-15","1987-12-06","1986-07-27","1988-11-20","1984-06-08","1974-01-15","1988-12-17","1988-06-13","1981-02-11","1976-04-10","1983-09-03","1977-07-25","1983-04-27","1972-07-10","1985-02-21","1981-09-25","1976-09-22","1977-11-06","1969-10-13","1975-02-28","1979-05-08","1981-05-19","1982-08-22","1973-08-06","1971-02-14","1983-03-29","1984-05-22","1979-06-10","1975-04-05","1988-08-04","1979-10-11","1973-06-26","1985-07-19","1981-09-02","1985-12-18","1972-10-19","1988-12-23","1986-06-25","1980-05-19","1980-04-04","1975-01-01","1985-11-05","1975-07-25","1987-11-28","1984-11-26","1981-12-31","1984-12-27","1979-10-09","1976-09-04","1984-03-27","1974-12-14","1987-04-26","1984-08-04","1978-10-30","1988-02-19","1984-04-19","1971-10-05","1976-10-21","1987-03-10","1977-06-18","1981-07-07","1976-11-15","1975-06-15","1983-09-10","1987-10-21","1985-06-24","1978-10-13","1972-10-27","1979-01-19","1972-09-08","1975-06-18","1979-01-13","1986-09-12","1980-05-22","1979-09-27","1970-08-25","1971-11-04","1977-03-18","1988-01-15","1978-03-03","1976-10-30","1982-02-07","1982-05-28","1976-10-12","1988-05-11","1974-11-14","1976-01-15","1971-12-27","1974-08-13","1979-06-08","1973-01-18","1977-05-08","1980-06-08","1984-10-21","1973-12-01","1987-06-23","1984-10-31","1986-05-09","1973-07-24","1978-04-05","1979-06-04","1979-02-23","1972-10-07","1985-09-12","1973-11-08","1975-06-10","1988-09-01","1985-05-03","1973-03-14","1982-08-05","1982-01-31","1979-06-14","1982-09-08","1983-03-13","1975-09-10","1977-09-07","1977-06-19","1978-02-15","1987-05-15","1977-09-17","1979-11-26","1969-08-28","1987-02-18","1977-06-04","1974-01-08","1973-04-06","1975-03-07","1972-01-26","1971-06-11","1986-04-15","1984-07-14","1976-04-09","1973-02-12","1979-01-02","1972-03-08","1972-10-25","1978-07-11","1969-02-11","1984-04-29","1978-07-30","1975-11-30","1983-02-05","1978-02-13","1980-02-19","1969-02-09","1976-11-13","1970-05-03","1986-03-08","1978-08-22","1972-03-27","1969-06-23","1979-12-25","1988-08-23","1976-07-08","1970-09-21","1988-09-12","1985-04-03","1975-11-11","1971-07-14","1988-09-19","1979-03-02","1988-03-27","1980-07-15","1975-10-01","1969-08-24","1974-07-02","1971-11-27","1976-10-07","1988-12-25","1983-02-14","1985-05-30","1978-04-04","1983-09-23","1974-07-08","1971-01-23","1973-06-29","1983-03-09","1977-08-10","1975-03-23","1977-11-29","1988-11-03","1972-05-06","1981-05-26","1976-12-16","1987-12-09","1983-12-03","1987-04-24","1987-05-28","1974-09-13","1972-10-12","1986-07-29","1980-10-06","1982-01-30","1970-10-17","1974-07-16","1980-04-12","1972-05-24","1980-08-08","1976-03-06","1986-05-04","1985-02-01","1977-05-12","1969-09-07","1973-08-14","1978-09-29","1973-04-03","1975-12-26","1970-08-06","1977-07-04","1969-04-12","1984-03-26","1988-05-09","1971-12-30","1971-12-12","1986-04-07","1985-06-09","1974-01-04","1971-06-23","1984-09-24","1980-11-23","1976-01-16","1976-06-13","1980-02-22","1982-01-16","1978-03-01","1980-12-09","1979-04-22","1978-07-20","1969-12-18","1970-08-24","1981-01-27","1978-07-28","1985-11-29","1971-08-23","1979-04-12","1972-05-08","1988-10-27","1982-09-20","1970-12-29","1984-10-17","1988-07-27","1970-11-01","1983-01-08","1971-01-27","1981-09-15","1986-08-26","1973-05-29","1976-10-05","1982-10-10","1971-04-07","1971-12-06","1981-07-24","1971-02-02","1984-01-13","1983-04-17","1982-07-18","1970-03-19","1984-04-03","1970-12-31","1972-08-14","1973-06-04","1981-11-22","1969-08-27","1983-11-24","1988-02-18","1988-01-14","1969-01-28","1972-10-15","1973-12-12","1969-10-03","1988-04-28","1975-11-12","1971-02-24","1969-07-21","1978-04-20","1984-09-10","1979-10-29","1981-12-27","1972-07-25","1972-06-12","1977-07-10","1971-06-20","1972-10-30","1970-01-13","1978-01-23","1987-09-12","1971-04-03","1985-08-08","1982-10-18","1984-08-14","1986-12-03","1980-12-12","1972-01-12","1974-05-18","1979-03-19","1984-01-23","1969-07-25","1976-03-19","1986-05-08","1982-09-30","1977-07-03","1972-10-24","1970-05-23","1976-11-23","1978-02-27","1976-08-30","1980-08-16","1976-09-07","1985-02-27","1979-12-15","1984-03-16","1975-10-11","1971-03-29","1973-11-11","1976-08-02","1984-03-19","1969-04-30","1978-12-29","1978-07-15","1984-08-05","1988-08-17","1988-03-26","1980-03-22","1977-09-23","1982-03-04","1978-04-26","1979-10-02","1971-08-19","1978-04-29","1973-07-31","1975-08-29","1978-04-27","1987-08-05","1978-03-07","1981-08-07","1969-02-12","1970-07-27","1988-04-09","1970-11-17","1975-06-04","1982-10-16","1986-01-31","1969-10-16","1983-06-18","1976-01-02","1976-07-09","1988-09-26","1982-01-08","1986-07-18","1975-05-21","1984-11-06","1984-06-25","1987-10-11","1975-04-03","1979-01-27","1984-02-13","1978-02-08","1985-06-01","1978-05-05","1987-03-14","1984-08-24","1974-12-01","1973-07-04","1983-02-28","1970-06-01","1981-09-03","1975-12-08","1973-10-17","1985-01-21","1987-09-01","1984-07-10","1976-10-13","1973-03-24","1981-09-05","1971-04-30","1988-07-14","1978-11-17","1969-12-24","1972-10-02","1980-10-03","1987-10-20","1981-08-19","1971-08-06","1976-03-31","1984-12-01","1971-03-16","1970-09-14","1974-07-26","1988-10-30","1976-08-04","1973-08-02","1988-11-06","1988-01-10","1986-10-18","1970-01-19","1971-01-26","1971-02-04","1985-11-12","1972-09-25","1976-09-01","1975-12-30","1979-04-30","1973-05-03","1975-03-17","1986-03-23","1982-02-19","1972-04-09","1986-03-25","1982-08-14","1978-04-30","1969-06-04","1983-05-27","1972-02-20","1970-10-25","1970-03-08","1978-01-20","1980-07-30","1973-04-23","1969-02-03","1976-11-03","1978-03-17","1974-11-23","1987-10-30","1980-04-01","1978-05-09","1973-03-03","1971-02-27","1974-02-03","1984-10-04","1975-12-16","1978-10-28","1976-01-08","1985-11-03","1978-04-12","1973-02-02","1982-06-05","1973-04-10","1978-09-22","1977-03-15","1982-01-17","1974-07-24","1977-12-11","1975-06-28","1971-01-01","1986-09-05","1988-12-11","1977-01-22","1987-10-18","1975-10-10","1983-05-24","1988-11-16","1977-05-18","1983-07-19","1970-05-20","1987-06-26","1981-08-22","1982-11-28","1969-05-30","1982-06-17","1971-10-29","1976-05-02","1978-01-24","1974-01-09","1972-08-02","1987-11-22","1969-10-19","1975-03-13","1969-06-12","1983-07-29","1981-03-22","1983-07-17","1987-01-04","1978-03-24","1982-02-25","1972-08-11","1975-06-21","1970-03-22","1986-07-05","1987-07-31","1977-01-24","1985-11-06","1976-10-10","1987-03-30","1977-05-13","1969-09-10","1971-02-13","1974-01-31","1973-12-27","1978-02-12","1980-08-27","1973-01-27","1980-02-12","1974-11-25","1974-07-01","1970-03-03","1983-02-24","1974-08-03","1984-11-02","1972-12-12","1976-06-12","1976-06-02","1969-03-09","1971-09-05","1978-02-09","1974-04-23","1982-05-17","1988-06-28","1981-06-19","1980-02-18","1974-01-24","1976-06-09","1980-12-24","1977-06-10","1976-10-26","1975-02-20","1975-03-02","1969-04-06","1982-04-06","1973-04-18","1976-09-15","1971-08-24","1970-11-20","1978-12-12","1986-01-25","1976-02-18","1987-08-17","1986-11-24","1971-05-05","1974-05-20","1969-06-05","1987-07-08","1973-12-18","1971-06-06","1971-09-03","1973-12-14","1970-12-08","1988-02-23","1983-06-06","1972-02-19","1974-09-01","1987-03-20","1973-05-19","1983-12-04","1984-11-18","1983-03-17","1974-08-20","1977-03-27","1978-01-05","1975-10-03","1970-01-24","1986-12-27","1979-12-27","1981-06-07","1970-05-25","1972-03-15","1975-11-13","1977-05-14","1978-10-26","1969-06-29","1984-05-13","1978-07-18","1980-04-08","1981-04-10","1983-01-07","1978-05-30","1988-02-05","1973-09-16","1986-09-17","1980-10-19","1972-03-29","1971-06-21","1970-05-30","1973-06-14","1987-03-26","1985-12-07","1981-01-14","1971-01-09","1978-05-20","1981-10-09","1973-08-09","1979-08-24","1973-02-13","1980-11-25","1981-08-14","1988-03-06","1975-03-06","1983-01-20","1979-04-15","1978-09-08","1970-01-05","1978-11-18","1985-06-28","1988-07-26","1977-04-21","1981-06-29","1971-10-15","1977-06-08","1978-07-29","1986-09-13","1972-11-26","1983-03-20","1972-08-05","1976-01-22","1979-05-29","1978-10-04","1975-05-08","1977-08-15","1982-05-22","1969-06-13","1973-10-25","1988-07-25","1982-08-31","1978-08-08","1988-01-21","1982-10-22","1977-07-26","1978-08-09","1981-05-31","1975-09-06","1986-01-13","1970-02-02","1973-01-25","1985-09-09","1987-06-25","1977-06-02","1969-01-21","1986-07-19","1969-09-09","1973-05-01","1980-09-04","1972-09-26","1975-09-22","1973-05-17","1988-12-26","1973-04-21","1978-03-28","1971-01-04","1982-02-17","1981-06-05","1978-03-14","1977-03-09","1984-10-30","1984-09-29","1978-12-10","1986-02-09","1983-04-20","1980-04-29","1981-07-22","1969-01-13","1986-03-05","1982-09-27","1985-11-18","1978-01-22","1979-04-29","1987-05-30","1982-02-21","1982-03-29"],"y":[199.450980392157,198.019607843137,201.549019607843,163.803921568627,184.843137254902,188.411764705882,156.725490196078,166.21568627451,209.294117647059,191.823529411765,177.235294117647,207.803921568627,181.21568627451,175.843137254902,147.156862745098,166.333333333333,175.666666666667,165.392156862745,207.058823529412,175.274509803922,171.686274509804,217.588235294118,198.274509803922,144.745098039216,179.43137254902,191.588235294118,204.156862745098,181.607843137255,207.509803921569,224.705882352941,192.862745098039,153.764705882353,196,175.960784313725,196.21568627451,202.137254901961,178.392156862745,185.176470588235,177.803921568627,211.980392156863,211.372549019608,162.921568627451,148.647058823529,238.352941176471,198.156862745098,178.058823529412,225.176470588235,214.156862745098,215.352941176471,176.607843137255,196.019607843137,216.43137254902,195.764705882353,196.725490196078,137.803921568627,218.019607843137,186.176470588235,170.294117647059,208.941176470588,203.803921568627,220.078431372549,202.941176470588,164.843137254902,203.058823529412,153.823529411765,162.470588235294,188.117647058824,185.725490196078,218.21568627451,197.196078431373,213.21568627451,181.509803921569,219.607843137255,161.313725490196,225.450980392157,177.078431372549,142.56862745098,186.980392156863,219.411764705882,215.960784313725,191.705882352941,177.058823529412,193.627450980392,198.882352941176,177.450980392157,169.588235294118,235.509803921569,198.21568627451,215.941176470588,223.21568627451,186.588235294118,181.56862745098,218.450980392157,178.301886792453,156.235294117647,166.941176470588,209.470588235294,188.666666666667,221.941176470588,177.666666666667,171.294117647059,190.039215686275,200.254901960784,188.019607843137,177.725490196078,149.862745098039,160.450980392157,167.529411764706,139.581818181818,224.176470588235,196.725490196078,212.019607843137,185.294117647059,173.725490196078,191.588235294118,198.039215686275,164.882352941176,234.470588235294,169.529411764706,176.411764705882,232.686274509804,207.705882352941,174.764705882353,219.529411764706,164.313725490196,192.117647058824,224.607843137255,165.333333333333,181.666666666667,202.549019607843,152.843137254902,182.274509803922,219.803921568627,179.627450980392,196.254901960784,208.156862745098,210.901960784314,157.823529411765,172.274509803922,168.921568627451,177.549019607843,179.529411764706,192.43137254902,213.254901960784,180.647058823529,162.490196078431,174.607843137255,173.627450980392,181,177.490196078431,193.490196078431,193.254901960784,151.392156862745,166.549019607843,147,166.254901960784,175.980392156863,199.509803921569,170.470588235294,155.156862745098,157.56862745098,171.823529411765,200.803921568627,178.098039215686,193.725490196078,156.235294117647,239.921568627451,187.235294117647,227.725490196078,236.509803921569,206.941176470588,175.019607843137,205.764705882353,241.803921568627,191.235294117647,167.333333333333,217.549019607843,173.928571428571,178.117647058824,194.56862745098,167.882352941176,185.509803921569,153.627450980392,207.803921568627,214.56862745098,185.294117647059,219.156862745098,185.725490196078,192.196078431373,176.627450980392,202.392156862745,200.235294117647,147.490196078431,188.607843137255,221.960784313725,152.725490196078,205.313725490196,185.294117647059,212.627450980392,162.254901960784,212.686274509804,224.254901960784,193.490196078431,186.196078431373,233.254901960784,206.647058823529,171.098039215686,186.078431372549,190.137254901961,167.529411764706,179.333333333333,225.333333333333,148.235294117647,155.313725490196,207.666666666667,180.588235294118,180.313725490196,192.980392156863,203.647058823529,177.156862745098,168.588235294118,212.470588235294,160.21568627451,175.294117647059,199.333333333333,217.196078431373,199.137254901961,158.862745098039,210.196078431373,172.333333333333,173.549019607843,188.235294117647,234.901960784314,165.549019607843,173.470588235294,145.882352941176,201.333333333333,170.686274509804,163.464285714286,202.392156862745,155.313725490196,203.941176470588,204.43137254902,205.019607843137,202.862745098039,202.43137254902,194.549019607843,203.882352941176,188.078431372549,176,217.313725490196,227.372549019608,244.078431372549,209.666666666667,238.509803921569,177.843137254902,167.156862745098,204.745098039216,223.960784313725,231.745098039216,174.686274509804,191.941176470588,174.098039215686,191.098039215686,190.823529411765,215.882352941176,211.843137254902,192.901960784314,164,183.803921568627,198.039215686275,197.098039215686,219.803921568627,187.039215686275,166.764705882353,165.235294117647,208.588235294118,163.058823529412,216.470588235294,211.392156862745,196.705882352941,154.588235294118,172.43137254902,214.156862745098,222.137254901961,167.019607843137,206.509803921569,199.921568627451,168.509803921569,228.254901960784,194.509803921569,169.666666666667,189.450980392157,170.529411764706,156.529411764706,160.666666666667,175.176470588235,207.450980392157,181.627450980392,185.627450980392,174.039215686275,226.137254901961,204.254901960784,226.470588235294,208.823529411765,196.843137254902,182.588235294118,150.333333333333,190.21568627451,194.607843137255,209.56862745098,169.078431372549,206.21568627451,220.960784313725,154.137254901961,183.294117647059,184.78431372549,182.666666666667,181.803921568627,179.588235294118,183.549019607843,189.294117647059,209.235294117647,166.137254901961,209.921568627451,156.56862745098,200.392156862745,145.490196078431,177.196078431373,204.450980392157,179.176470588235,204.176470588235,173.921568627451,179.156862745098,235.21568627451,179.764705882353,174.549019607843,202.509803921569,200.098039215686,177,213.941176470588,203.647058823529,152.235294117647,190.235294117647,187.980392156863,173.705882352941,222.56862745098,187.941176470588,220.705882352941,196.235294117647,216.705882352941,170.607843137255,219.254901960784,171.411764705882,174.392156862745,208.588235294118,194.470588235294,170.764705882353,156.745098039216,187.980392156863,236.019607843137,197.78431372549,226.901960784314,177.313725490196,206,207.078431372549,167.509803921569,174.529411764706,164.156862745098,195.627450980392,179.490196078431,176.392156862745,178.549019607843,173.274509803922,218.862745098039,140.277777777778,155.098039215686,201.058823529412,198.509803921569,213.607843137255,174.725490196078,170.862745098039,202.235294117647,230.078431372549,228.647058823529,180.058823529412,153.882352941176,183.411764705882,191.21568627451,234.372549019608,193.254901960784,176.039215686275,188.843137254902,216.627450980392,223.137254901961,216.843137254902,201.137254901961,169.666666666667,166.254901960784,204.666666666667,221.647058823529,187.725490196078,175.490196078431,177.745098039216,184.294117647059,171.235294117647,162.725490196078,170.78431372549,198.509803921569,215.607843137255,199.411764705882,215.372549019608,192.843137254902,185.803921568627,198.901960784314,186.627450980392,163.156862745098,176.470588235294,164.450980392157,203.43137254902,147.745098039216,218.509803921569,185.176470588235,140.235294117647,192.901960784314,205.411764705882,155.607843137255,181.686274509804,175.019607843137,182.666666666667,218.156862745098,164.156862745098,195.843137254902,176.764705882353,186.039215686275,158.882352941176,216.588235294118,198.941176470588,182.686274509804,165.313725490196,187.960784313725,145.725490196078,222.333333333333,187.372549019608,165.196078431373,165.039215686275,165.529411764706,169,174.058823529412,174.901960784314,173.392156862745,203.333333333333,189.882352941176,167.098039215686,182.882352941176,147.117647058824,159.392156862745,173.490196078431,233.019607843137,165.725490196078,160.156862745098,162.156862745098,180.627450980392,215.117647058824,215.137254901961,184.56862745098,216.470588235294,196.941176470588,226.43137254902,190.980392156863,167.21568627451,179.490196078431,210.411764705882,194.549019607843,139.019607843137,184.823529411765,163.647058823529,183.921568627451,166.196078431373,168.352941176471,168.823529411765,200.392156862745,216.176470588235,165.843137254902,175.294117647059,161.941176470588,179.686274509804,203.274509803922,182.941176470588,156.058823529412,172.235294117647,178.647058823529,225.352941176471,181.294117647059,209.705882352941,163,208.294117647059,182.627450980392,204.901960784314,182.627450980392,169.019607843137,186.450980392157,156.176470588235,215.78431372549,157.294117647059,201.019607843137,173.294117647059,170.740740740741,198.59649122807,208.039215686275,166.078431372549,204.627450980392,194.156862745098,154.78431372549,171.549019607843,164.588235294118,173.56862745098,181.607843137255,177.156862745098,207.274509803922,238.529411764706,206.313725490196,190.509803921569,170.43137254902,172.588235294118,176.058823529412,181.117647058824,184.372549019608,176.156862745098,144.843137254902,157.019607843137,208.235294117647,174.333333333333,195.627450980392,209.882352941176,218.156862745098,197.490196078431,176.882352941176,173.058823529412,227.156862745098,207.862745098039,182.549019607843,172.411764705882,188,226.078431372549,186.980392156863,163.960784313725,211.529411764706,179.941176470588,220,215.705882352941,203.352941176471,163.725490196078,155.078431372549,220.686274509804,150.960784313725,156.352941176471,162.745098039216,206.352941176471,199.078431372549,152.333333333333,177.509803921569,182.078431372549,185.686274509804,172.960784313725,205.960784313725,169.372549019608,197.56862745098,181.294117647059,172.980392156863,158.980392156863,186.56862745098,172.549019607843,160.764705882353,203.450980392157,202.411764705882,198.333333333333,195.039215686275,188.960784313725,214.588235294118,156.745098039216,230.529411764706,169.980392156863,174.137254901961,190.588235294118,173.882352941176,169.117647058824,214.019607843137,167.352941176471,204.294117647059,181.960784313725,158.392156862745,213.823529411765,184.666666666667,207.274509803922,174.43137254902,205.803921568627,224.176470588235,164.372549019608,173.333333333333,199.098039215686,149.313725490196,203.607843137255,193.176470588235,165.588235294118,222.745098039216,242.039215686275,179.294117647059,205.921568627451,199.607843137255,180.490196078431,170.490196078431,188.156862745098,152.745098039216,167.137254901961,166.843137254902,174.372549019608,192.843137254902,195,167.666666666667,193.176470588235,168.725490196078,193.176470588235,166.803921568627,228.254901960784,225.588235294118,205.098039215686,214.686274509804,204.549019607843,198.588235294118,199.274509803922,168.588235294118,166,200.117647058824,206.705882352941,175.666666666667,227.901960784314,224.058823529412,183.21568627451,205.372549019608,184.725490196078,207.803921568627,170.153846153846,216.450980392157,199.078431372549,187.647058823529,167.627450980392,170.254901960784,148.607843137255,182.411764705882,196.941176470588,206.509803921569,203.254901960784,187,183.450980392157,205.058823529412,192.411764705882,158.901960784314,166.098039215686,203.352941176471,199.117647058824,216.941176470588,192.823529411765,208.843137254902,226.235294117647,210.21568627451,148.490196078431,147,181.882352941176,170.764705882353,200.313725490196],"type":"scatter","mode":"markers","name":"mean","marker":{"fillcolor":"rgba(252,141,98,0.5)","color":"rgba(252,141,98,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y","frame":null},{"x":["1971-04-30","1983-05-15","1988-08-20","1986-09-26","1972-01-13","1978-11-04","1971-10-14","1988-01-24","1972-02-22","1971-12-01","1969-05-24","1977-11-20","1984-12-03","1978-07-28","1973-08-20","1987-10-02","1982-02-13","1980-09-20","1977-07-29","1977-08-05","1975-03-24","1980-01-15","1988-08-13","1973-05-06","1976-06-19","1987-12-10","1977-08-17","1969-04-13","1969-09-25","1977-06-26","1972-04-26","1974-12-26","1972-11-29","1987-05-18","1976-03-13","1973-07-01","1985-02-18","1988-02-08","1970-02-04","1986-10-31","1977-07-19","1984-09-30","1970-04-18","1974-10-03","1975-08-20","1987-03-14","1977-11-25","1976-01-30","1979-06-30","1984-07-14","1983-04-16","1987-05-03","1984-08-31","1982-06-12","1980-05-13","1979-04-08","1984-11-10","1975-12-23","1985-08-17","1982-03-15","1976-01-01","1978-10-26","1980-07-21","1975-07-30","1973-08-08","1969-02-06","1986-07-14","1972-04-18","1971-08-26","1987-05-08","1985-01-09","1978-12-13","1981-07-30","1972-02-18","1984-02-14","1979-09-22","1979-10-29","1982-06-14","1987-08-05","1969-03-13","1979-04-19","1979-05-06","1973-10-24","1969-08-13","1971-03-26","1986-06-26","1972-02-27","1981-12-08","1974-07-01","1975-11-14","1983-04-28","1973-08-17","1974-06-09","1976-04-17","1976-12-01","1984-10-18","1977-10-06","1978-07-24","1971-02-10","1980-01-25","1985-10-09","1971-08-15","1977-04-11","1980-03-26","1971-02-05","1979-01-04","1988-11-14","1978-02-24","1976-04-24","1971-03-15","1972-09-09","1978-04-11","1969-12-05","1985-12-09","1988-04-18","1972-12-26","1972-08-07","1970-06-28","1975-02-24","1983-05-25","1981-01-08","1971-09-13","1988-12-07","1976-09-17","1970-10-20","1977-09-14","1973-09-11","1976-11-07","1983-08-22","1976-05-15","1974-10-10","1982-02-28","1973-10-13","1978-02-02","1974-05-03","1982-04-08","1987-09-08","1978-11-17","1969-07-10","1987-11-16","1969-09-17","1987-10-24","1970-10-24","1970-01-16","1977-01-04","1978-02-12","1974-08-02","1979-04-17","1988-01-07","1969-04-09","1972-11-15","1971-04-12","1980-08-20","1977-05-09","1978-06-12","1984-11-05","1973-11-14","1970-07-19","1975-01-03","1970-10-05","1987-08-26","1982-12-20","1984-06-21","1976-12-04","1974-12-06","1976-12-17","1976-01-23","1972-04-25","1974-08-04","1978-03-22","1983-07-12","1978-06-21","1972-05-29","1975-12-15","1974-06-15","1979-04-27","1981-06-29","1987-07-31","1987-11-21","1976-09-07","1972-07-29","1980-03-19","1976-05-17","1986-11-08","1980-10-02","1986-05-15","1969-06-01","1971-09-24","1984-07-04","1970-09-04","1985-05-23","1972-04-13","1987-03-27","1971-03-11","1981-11-16","1982-06-20","1971-05-16","1987-04-13","1986-08-25","1973-06-13","1979-09-11","1988-01-06","1972-11-07","1969-05-05","1986-10-09","1983-11-01","1973-04-03","1979-11-02","1981-04-25","1987-01-22","1986-11-10","1977-01-03","1977-11-23","1971-03-04","1975-04-17","1969-06-16","1971-12-26","1969-03-11","1980-02-03","1980-06-04","1972-08-31","1985-07-16","1980-06-13","1985-03-15","1986-01-02","1977-04-22","1970-08-12","1975-04-30","1987-12-01","1988-11-22","1988-05-08","1970-01-25","1971-11-04","1982-01-17","1983-03-25","1970-08-21","1985-04-11","1969-10-01","1983-03-17","1970-06-21","1988-01-21","1979-05-18","1979-08-28","1978-03-07","1973-06-04","1978-12-20","1983-09-20","1978-05-28","1971-06-11","1973-10-07","1978-06-26","1983-10-09","1973-08-23","1981-06-30","1976-07-03","1988-04-17","1986-08-20","1973-08-06","1979-10-28","1974-06-08","1974-01-16","1973-07-11","1984-01-10","1982-07-19","1974-02-08","1980-10-17","1969-03-21","1980-06-10","1984-05-01","1971-02-14","1976-05-22","1988-03-01","1977-10-13","1980-12-10","1974-08-11","1974-03-13","1974-12-22","1981-09-24","1976-08-22","1985-10-01","1973-10-19","1976-05-03","1984-11-22","1975-05-21","1978-12-14","1985-02-26","1969-02-18","1988-02-19","1969-02-09","1969-06-07","1971-05-15","1969-08-16","1980-07-24","1969-02-26","1981-01-05","1970-03-10","1972-02-20","1982-04-17","1978-03-04","1977-04-08","1976-05-07","1974-02-04","1986-03-02","1969-04-14","1988-11-16","1971-12-03","1977-03-29","1985-05-14","1973-04-14","1977-03-19","1975-03-09","1977-05-16","1988-01-09","1982-06-19","1983-02-28","1979-01-18","1988-12-13","1974-06-04","1977-11-04","1973-08-12","1984-01-19","1975-07-31","1972-08-10","1975-03-15","1972-11-16","1987-06-27","1985-11-10","1982-12-29","1977-01-19","1969-09-05","1974-05-15","1984-10-25","1969-07-27","1979-12-15","1973-11-16","1984-02-09","1988-12-06","1971-11-06","1980-03-09","1979-03-29","1974-02-15","1984-07-24","1985-06-04","1979-05-25","1988-03-20","1970-12-12","1977-11-18","1982-02-11","1986-06-17","1978-04-14","1971-12-22","1978-09-06","1982-10-29","1975-11-03","1985-12-03","1969-06-02","1978-04-29","1984-02-10","1977-09-01","1972-04-19","1982-04-11","1976-06-24","1979-07-22","1974-04-15","1972-01-06","1980-10-21","1979-05-07","1975-05-23","1984-05-02","1971-12-21","1977-11-12","1970-08-24","1971-01-24","1969-10-15","1985-06-08","1988-09-15","1977-12-09","1972-07-27","1976-01-05","1986-03-10","1988-05-06","1972-06-03","1985-06-21","1973-01-31","1970-11-14","1988-04-26","1988-01-29","1976-12-14","1971-11-22","1972-02-09","1973-11-01","1986-07-10","1972-12-16","1978-10-23","1970-11-23","1981-03-12","1970-06-09","1988-01-17","1974-12-08","1987-08-23","1985-09-19","1970-11-02","1974-05-04","1970-12-16","1983-10-20","1985-07-02","1987-03-06","1988-10-08","1974-04-07","1987-05-12","1972-04-30","1982-04-22","1981-01-11","1984-09-16","1979-03-09","1970-09-01","1971-10-07","1975-07-29","1971-10-12","1988-09-29","1971-08-06","1977-05-31","1977-08-19","1971-03-31","1977-09-18","1970-10-10","1987-05-19","1987-03-31","1982-09-09","1969-09-20","1987-05-05","1976-06-02","1970-05-19","1976-02-28","1977-11-27","1970-01-23","1977-02-22","1971-07-16","1978-08-05","1978-02-08","1982-11-14","1973-08-28","1973-07-28","1977-04-05","1988-03-11","1974-01-08","1988-02-26","1970-01-20","1976-12-11","1983-02-21","1978-10-10","1985-04-27","1980-08-07","1981-11-05","1981-12-16","1980-05-01","1980-11-26","1982-03-19","1984-07-11","1975-06-03","1987-02-01","1978-07-23","1980-05-04","1970-05-15","1985-05-20","1970-03-25","1975-01-25","1976-10-05","1971-08-29","1980-07-19","1970-09-18","1970-08-03","1987-03-11","1977-02-18","1969-11-03","1970-02-18","1970-08-09","1975-09-03","1979-12-16","1987-07-21","1974-02-09","1987-06-19","1975-04-10","1987-10-06","1969-03-29","1986-03-11","1972-07-30","1973-11-30","1972-03-22","1987-08-09","1971-04-24","1973-11-20","1988-10-16","1986-08-14","1974-12-23","1970-06-17","1987-11-17","1983-03-02","1985-04-18","1970-08-23","1971-09-08","1972-06-01","1976-09-01","1974-02-25","1980-10-20","1980-01-07","1982-07-02","1969-06-23","1972-01-14","1975-08-16","1975-06-28","1985-09-06","1979-12-18","1985-05-04","1969-02-19","1981-01-03","1985-06-20","1974-05-16","1974-11-28","1980-07-22","1983-04-05","1973-06-22","1971-12-18","1980-06-21","1976-07-30","1976-07-16","1972-11-14","1987-09-09","1987-12-24","1984-06-16","1979-10-23","1971-08-10","1977-08-04","1987-03-20","1972-12-02","1983-03-01","1978-07-16","1980-10-15","1980-05-28","1988-08-17","1983-01-25","1976-05-10","1975-05-11","1972-06-28","1978-12-26","1981-03-25","1983-04-17","1988-01-20","1983-09-28","1970-12-26","1980-02-26","1981-01-29","1983-04-09","1984-04-28","1986-04-17","1987-04-10","1984-01-25","1969-11-22","1979-01-17","1973-03-05","1969-12-08","1984-06-08","1975-05-25","1987-07-05","1981-09-09","1977-03-08","1974-01-02","1984-01-14","1972-07-03","1971-03-22","1980-09-05","1980-06-20","1983-07-13","1972-12-04","1976-03-20","1977-03-12","1975-03-19","1981-06-08","1980-08-02","1985-02-16","1970-11-21","1970-01-03","1982-05-11","1981-06-01","1970-07-20","1976-04-05","1984-07-15","1982-03-22","1976-01-03","1980-10-10","1978-06-18","1982-04-10","1975-10-08","1969-03-12","1978-08-07","1981-01-13","1980-05-22","1979-11-03","1972-11-17","1988-02-12","1972-02-21","1977-04-12","1983-12-22","1976-01-29","1985-06-10","1972-05-03","1983-11-06","1986-12-22","1986-10-02","1972-09-14","1972-02-12","1977-12-24","1977-09-19","1980-06-06","1975-07-08","1981-07-08","1970-04-17","1986-05-24","1973-01-16","1973-11-10","1981-01-16","1973-06-17","1980-01-20","1971-10-09","1985-01-25","1975-12-08","1983-05-10","1971-06-06","1979-04-28","1975-04-12","1985-12-16","1984-06-03","1975-07-16","1986-11-20","1977-09-23","1986-01-27","1977-12-11","1986-10-04","1986-01-26","1979-02-12","1975-06-05","1974-03-04","1987-11-11","1986-12-24","1972-02-02","1978-02-27","1978-11-28","1970-02-09"],"y":[20,19,17,22,18,16,16,15,20,2,16,10,23,16,14,18,16,16,15,16,14,21,19,7,16,18,22,14,12,10,13,14,14,22,15,2,19,20,16,22,22,15,14,14,18,18,10,15,19,11,19,17,20,16,21,17,14,12,19,20,12,21,26,18,16,14,25,12,10,21,17,19,22,14,22,17,16,20,20,12,13,14,6,18,10,23,10,20,1,12,14,10,16,14,1,20,18,16,8,18,27,6,18,17,18,15,21,18,14,12,12,14,14,18,22,12,18,8,14,18,13,18,19,20,20,10,12,10,16,17,12,11,14,18,10,21,22,23,14,16,14,15,18,18,10,12,20,16,20,16,16,10,21,18,12,14,14,6,13,14,13,21,22,13,19,17,10,17,8,9,22,24,14,18,7,18,23,22,10,15,16,20,14,13,25,21,8,12,20,22,20,12,20,22,21,22,14,21,27,8,16,20,10,16,19,26,14,15,17,17,18,16,21,16,14,18,12,12,18,26,14,21,21,20,21,10,16,10,16,23,14,16,20,18,22,20,21,2,25,20,13,22,20,22,17,17,21,10,16,4,18,12,16,19,13,10,21,16,18,10,8,14,20,26,12,22,12,22,24,16,12,19,16,20,12,10,8,17,16,20,15,17,14,18,17,21,14,15,12,14,4,14,16,12,24,14,8,16,19,18,22,12,14,20,19,10,14,23,6,12,6,14,8,21,19,24,20,16,15,10,19,10,16,18,14,12,15,24,20,12,17,22,12,15,14,23,19,12,12,22,14,22,20,23,15,12,18,24,20,18,16,14,23,12,27,18,13,24,20,14,18,14,20,14,8,21,20,23,22,10,13,16,12,14,18,22,16,14,16,20,15,10,25,14,10,17,20,22,24,12,14,21,12,14,12,22,16,9,8,19,25,18,8,18,22,25,20,17,14,21,14,22,15,17,19,12,14,22,20,21,10,22,19,12,20,14,21,17,25,14,26,16,8,16,12,20,22,16,13,16,19,16,16,16,20,10,14,10,13,22,20,21,22,11,21,24,23,18,16,12,11,16,17,20,23,12,12,20,12,24,14,24,24,16,4,4,8,16,14,24,11,21,8,13,6,23,14,14,6,12,14,8,17,25,10,18,16,17,23,8,16,16,18,14,20,18,20,14,10,12,17,26,19,16,14,10,24,18,14,16,20,8,10,18,16,15,12,17,14,10,21,12,18,18,18,16,14,18,21,15,20,12,14,12,14,20,20,17,29,12,22,24,18,21,25,23,18,12,16,16,18,24,18,18,19,20,14,14,18,18,22,19,20,14,14,14,14,23,10,15,12,16,20,16,22,14,15,19,12,19,13,14,16,12,23,21,17,15,18,15,18,18,14,15,25,14,15,22,26,16,16,14,10,23,22,22,10,14,14,13,24,5,17,14,18,5,23,10,15,14,19,21,14,15,13,20,9,15,14,15,15,16,20,9,19,22,19,12],"type":"scatter","mode":"markers","name":"min","marker":{"fillcolor":"rgba(141,160,203,0.5)","color":"rgba(141,160,203,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1}},"base_url":"https://plot.ly"},"evals":["config.modeBarButtonsToAdd.0.click"],"jsHooks":{"render":[{"code":"function(el, x) { var ctConfig = crosstalk.var('plotlyCrosstalkOpts').set({\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1}}); }","data":null}]}} Again, both plots are identical, bar styling.

time2 = microbenchmark( ggplotly = ggplotly( ggplot(date) + geom_point(aes(y = value, x = date, colour = birth_stat)) ), plotly = plot_ly(date, x = ~date, y = ~value, color = ~birth_stat, type = "scatter"), times = 100, unit = "s") time2 ## Unit: seconds ## expr min lq mean median uq max neval cld ## ggplotly 0.335823 0.355301 0.389759 0.365353 0.378502 0.54746 100 b ## plotly 0.002472 0.002534 0.002719 0.002585 0.002675 0.01179 100 a autoplot(time2)

On average ggplotly() is 143 times slower than plot_ly(), with the max run time being 0.547 seconds!

Summary

I’m going to level with you. Using ggplotly() in interactive mode isn’t a problem. Well, it’s not a problem until your shiny dashboard or your markdown document has to generate a few plots at the same time. With only one plot, you’ll probably go with the method that gives you your style in the easiest way possible and you’ll do this with no repercussions. However, let’s say you’re making a shiny dashboard and it now has over 5 interactive graphs within it. Suddenly, if you’re using ggplotly(), the lag we noticed in the analysis above starts to build up unnecessarily. That’s why I’d use plot_ly().

Thanks for chatting!

R.version.string ## [1] "R version 3.4.2 (2017-09-28)" packageVersion("ggplot2") ## [1] '2.2.1' packageVersion("plotly") ## [1] '4.7.1'

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: R on The Jumping Rivers Blog. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

Data-set update to “Empirical software engineering using R”

Sun, 11/26/2017 - 20:26

(This article was first published on The Shape of Code » R, and kindly contributed to R-bloggers)

The pile of papers, books and data-sets, relating to previously released draft chapters of my Empirical software engineering book, has been growing, and cluttering up my mind. I decided to have a clear-out.

A couple of things stood out.

There are around 25 data-sets that have been promised but not yet arrived. If you encounter anybody who mentions they promised to send me data, please encourage them to spend some time doing this. I don’t want to add a new category, promised but never delivered, to the list of email responses.

There has been an increase in data-sets not being used because I already have something better. This is a good sign, data quality is increasing. One consequence is that a growing number of ‘historical’ data-sets have fallen by the wayside. This is a good thing, most data-sets analysed in papers are very low quality and only used because nothing else was available.

One of my reasons for making draft releases was to prompt people to suggest data I had missed. This has not happened yet; come on people, suggest some data I don’t yet know about.

About a third of the pile got included in the latest draft, a third had been superseded by something better, and a third are still waiting for promised data.

Now, back to the reliability chapter.

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: The Shape of Code » R. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

rfoaas 1.1.1: Updated and extended

Sun, 11/26/2017 - 20:08

(This article was first published on Thinking inside the box , and kindly contributed to R-bloggers)

FOAAS upstream is still at release 1.1.0, but added a few new accessors a couple of months ago. So this new version of rfoaas updates to these: asshole(), cup(), fyyff(), immensity(), programmer(), rtfm(), thinking(). We also added test coverage and in doing so noticed that our actual tests never ran on Travis. Yay. Now fixed.

As usual, CRANberries provides a diff to the previous CRAN release. Questions, comments etc should go to the GitHub issue tracker. More background information is on the project page as well as on the github repo

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: Thinking inside the box . R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

Rcpp 0.12.14: Some deprecation and minor updates

Fri, 11/24/2017 - 14:49

(This article was first published on Thinking inside the box , and kindly contributed to R-bloggers)

The fourteenth release in the 0.12.* series of Rcpp landed on CRAN yesterday after a somewhat longer-than-usual gestation period (and word is it may have been due to some unrelated disturbances from lots of changes within the main r-devel build).

This release follows the 0.12.0 release from July 2016, the 0.12.1 release in September 2016, the 0.12.2 release in November 2016, the 0.12.3 release in January 2017, the 0.12.4 release in March 2016, the 0.12.5 release in May 2016, the 0.12.6 release in July 2016, the 0.12.7 release in September 2016, the 0.12.8 release in November 2016, the 0.12.9 release in January 2017, the 0.12.10.release in March 2017, the 0.12.11.release in May 2017, the 0.12.12 release in July 2017 and the 0.12.13.release in late September 2017 making it the eighteenth release at the steady and predictable bi-montly release frequency.

Rcpp has become the most popular way of enhancing GNU R with C or C++ code. As of today, 1246 packages (and hence 77 more since the last release) on CRAN depend on Rcpp for making analytical code go faster and further, along with another 91 in BioConductor.

This release is relatively minor compared to other releases, but follows through on the deprecattion of the old vectors for Date and Datetime (which were terrible: I was influenced by the vector design in QuantLib at the time and didn’t really understand yet how a SEXP vector should work) we announced with Rcpp 0.12.8 a year ago. So now the new vectors are the default, but you can flip back if you need to with #define.

Otherwise Dan rounded a corner with the improved iterators he contributed, and Kirill improved the output stream implementation suppressing a warning with newer compilers.

Changes in Rcpp version 0.12.14 (2017-11-17)
  • Changes in Rcpp API:

    • New const iterators functions cbegin() and cend() added to MatrixRow as well (Dan Dillon in #750).

    • The Rostream object now contains a Buffer rather than allocating one (Kirill Müller in #763).

    • New DateVector and DatetimeVector classes are now the default fully deprecating the old classes as announced one year ago.

  • Changes in Rcpp Package:

    • DESCRIPTION file now list doi information per CRAN suggestion.
  • Changes in Rcpp Documentation:

    • Update CITATION file with doi information and PeerJ preprint.

Thanks to CRANberries, you can also look at a diff to the previous release. As always, details are on the Rcpp Changelog page and the Rcpp page which also leads to the downloads page, the browseable doxygen docs and zip files of doxygen output for the standard formats. A local directory has source and documentation too. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: Thinking inside the box . R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

Association rules using FPGrowth in Spark MLlib through SparklyR

Thu, 11/23/2017 - 20:55

(This article was first published on R – Longhow Lam's Blog, and kindly contributed to R-bloggers)

Introduction

Market Basket Analysis or association rules mining can be a very useful technique to gain insights in transactional data sets, and it can be useful for product recommendation. The classical example is data in a supermarket. For each customer we know what the individual products (items) are that he has bought. With association rules mining we can identify items that are frequently bought together. Other use cases for MBA could be web click data, log files, and even questionnaires.

In R there is a package arules to calculate association rules, it makes use of the so-called Apriori algorithm. For data sets that are not too big, calculating rules with arules in R (on a laptop) is not a problem. But when you have very huge data sets, you need to do something else, you can:

  • use more computing power (or cluster of computing nodes).
  • use another algorithm, for example FP Growth, which is more scalable. See this blog for some details on Apriori vs. FP Growth.

Or do both of the above points by using FPGrowth in Spark MLlib on a cluster. And the nice thing is: you can stay in your familiar R Studio environment!

Spark MLlib and sparklyr Example Data set

We use the example groceries transactions data in the arules package. It is not a big data set and you would definitely not need more than a laptop, but it is much more realistic than the example given in the Spark MLlib documentation :-).

Preparing the data

I am a fan of sparklyr It offers a good R interface to Spark and MLlib. You can use dplyr syntax to prepare data on Spark, it exposes many of the MLlib machine learning algorithms in a uniform way. Moreover, it is nicely integrated into the RStudio environment offering the user views on Spark data and a way to manage the Spark connection.

First connect to spark and read in the groceries transactional data, and upload the data to Spark. I am just using a local spark install on my Ubuntu laptop.

###### sparklyr code to perform FPGrowth algorithm ############ library(sparklyr) library(dplyr) #### spark connect ######################################### sc <- spark_connect(master = "local") #### first create some dummy data ########################### transactions = readRDS("transactions.RDs") #### upload to spark #########################################   trx_tbl  = copy_to(sc, transactions, overwrite = TRUE)

For demonstration purposes, data is copied in this example from the local R session to Spark. For large data sets this is not feasible anymore, in that case data can come from hive tables (on the cluster).

The figure above shows the products purchased by the first four customers in Spark in an RStudio grid. Although transactional systems will often output the data in this structure, it is not what the FPGrowth model in MLlib expects. It expects the data aggregated by id (customer) and the products inside an array. So there is one more preparation step.

# data needs to be aggregated by id, the items need to be in a list trx_agg = trx_tbl %>% group_by(id) %>% summarise( items = collect_list(item) )

The figure above shows the aggregated data, customer 12, has a list of 9 items that he has purchased.

Running the FPGrowth algorithm

We can now run the FPGrowth algorithm, but there is one more thing. Sparklyr does not expose the FPGrowth algorithm (yet), there is no R interface to the FPGrowth algorithm. Luckily, sparklyr allows the user to invoke the underlying Scala methods in Spark. We can define an new object with invoke_new

  uid = sparklyr:::random_string("fpgrowth_")   jobj = invoke_new(sc, "org.apache.spark.ml.fpm.FPGrowth", uid) 

Now jobj is an object of class FPGrowth in Spark.

jobj class org.apache.spark.ml.fpm.FPGrowth fpgrowth_d4d41f71f3e0

And by looking at the Scala documentation of FPGrowth we see that there are more methods that you can use. We need to use the function invoke, to specify which column contains the list of items, to specify the minimum confidence and to specify the minimum support.

jobj %>%      invoke("setItemsCol", "items") %>%     invoke("setMinConfidence", 0.03) %>%     invoke("setMinSupport", 0.01)  %>%     invoke("fit", spark_dataframe(trx_agg))

By invoking fit, the FPGrowth algorithm is fitted and an FPGrowthModel object is returned where we can invoke associationRules to get the calculated rules in a spark data frame

rules = FPGmodel %>% invoke("associationRules")

The rules in the spark data frame consists of an antecedent column (the left hand side of the rule), a consequent column (the right hand side of the rule) and a column with the confidence of the rule. Note that the antecedent and consequent are lists of items! If needed we can split these lists and collect them to R for plotting for further analysis.

The invoke statements and rules extractions statements can of course be wrapped inside functions to make it more reusable. So given the aggregated transactions in a spark table trx_agg, you can get something like:

GroceryRules =  ml_fpgrowth(   trx_agg ) %>%   ml_fpgrowth_extract_rules() plot_rules(GroceryRules) Conclusion

The complete R script can be found on my GitHub. If arules in R on your laptop is not workable anymore because of the size of your data, consider FPGrowth in Spark through sparklyr.

cheers, Longhow

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: R – Longhow Lam's Blog. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

R live class | Professional R Programming | Nov 29-30 Milan

Thu, 11/23/2017 - 19:13

(This article was first published on R blog | Quantide - R training & consulting, and kindly contributed to R-bloggers)

 

Professional R Programming is the sixth and last course of the autumn term. It takes place in November 29-30 in a location close to Milano Lima.
If you have a solid R knowledge and want to boost your programming skills, this course is made for you.
This course will give you an inner perspective of R working mechanisms, as well as tools for addressing your code’s issues and to make it more efficient. Once these concepts are established, you will learn how to create R packages and use them as the fundamental unit of reproducible R code.

Professional R Programming: Outlines

– Base Programming: environments, functions and loops
– Functionals in base R
– The purrr package
– Code style and clarity
– Profiling
– Parallel computation
– Testing and debugging
– Documenting your code: rmarkdown
– Sharing your code: github
– R packages

Professional R Programming is organized by the R training and consulting company Quantide and is taught in Italian, while all the course materials are in English.

This course is for max 6 attendees.

Location

The course location is 550 mt. (7 minutes on walk) from Milano central station and just 77 mt. (1 minute on walk) from Lima subway station.

Registration

If you want to reserve a seat go to: FAQ, detailed program and tickets.

Other R courses | Autumn term

Sadly, this is the last course of the autumn term. Our next R classes’ session will be in Spring! Stay in touch for more updates.

In case you are a group of people interested in more than one class, write us at training[at]quantide[dot]com! We can arrange together a tailor-made course, picking all the topics that are interesting for your organization and dropping the rest.

The post R live class | Professional R Programming | Nov 29-30 Milan appeared first on Quantide – R training & consulting.

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: R blog | Quantide - R training & consulting. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

EARL Boston round up

Thu, 11/23/2017 - 17:14

(This article was first published on Mango Solutions, and kindly contributed to R-bloggers)

Now we’ve recovered from over indulging in Boston’s culinary delights, we’re ready to share our highlights from this year’s EARL Boston Conference.

Day 1 highlights

Stack Overflow’s David Robinson kicked off the Conference, using Stack Overflow data to perform all sorts of interesting analyses. Highlights included trends in questions mentioning specific R packages over time, leading to the identification of rival R packages. We found that R is the least disliked language (because it’s the best obviously!); although David cautioned that often people who haven’t used R before haven’t heard of it either.

Richie Cotton’s talk on how DataCamp is a ‘data-inspired’ organisation was particularly entertaining and he was a really engaging speaker. It was also great to hear from Emily Riederer about tidycf; she shared a really good example of the type of data-driven revolution taking place in many financial institutions.

We also enjoyed Patrick Turgeon’s presentation on Quantitative Trading with R. His presentation portrayed quantitative trading as a scientific problem to be investigated using diverse sources of information, open source code and hard work. Free from jargon, Patrick demonstrated that placing bets on the markets does not have to be some mysterious art, but an analytic puzzle like any other.

A brilliant first day was rounded out with an evening reception overlooking the Charles River, where we enjoyed drinks and a chance to catch up with everyone at the Conference. It was a great opportunity to chat with all the attendees to find out what talks they enjoyed and what ones they wanted to catch on day two.

Day 2 highlights

Mara Averick got things moving on day two with a witty and humble keynote talk on the importance of good communication in data science. She may have also confessed to getting R banned in her fantasy basketball league. From having to argue with the internet that Krieger’s most common distinctive phrase is “yep yep”, to always having the correct word for any situation, she gave a fantastic presentation; a key skill for any data scientist (even if she says she isn’t one!).

Keeping up the theme of great communication in data science, Ali Zaidi gave a really clear rundown of what deep learning is, and how existing models can be reused to make pattern recognition practicably applicable even with modest hardware.

Other highlights included both Alex Albright’s and Monika Wahi’s talks. Alex showed us lots of enjoyable small analyses and suggested ideas for finding fun datasets and encouraged us all to share our findings when experimenting. Monika Wahi discussed why SAS still dominates in healthcare and how we can convert people to R. She talked about how R is easier and nicer to read and showed us equivalent code in SAS and R to illustrate her point.

It was tough, but we picked just a few of the many highlights from both days at EARL. Please tweet @EARLConf any of your EARL highlights so we can share them – we would love to see what people enjoyed the most.

We’d like to thank all of our attendees for joining us, our fantastic speakers, and our generous sponsors for making EARL Boston the success it has been.

To hear the latest news about EARL Conferences sign up to our mailing list, and we’ll let you know first when tickets are on sale.

You can now find speaker slides (where available) on the EARL website – just click on the speaker profile and download the file.

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: Mango Solutions. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

Happy Thanksgiving!

Thu, 11/23/2017 - 17:00

(This article was first published on Revolutions, and kindly contributed to R-bloggers)

Today is Thanksgiving Day here in the US, so we're taking the rest of the week off to enjoy the time with family.

Even if you don't celebrate Thanksgiving, today is still an excellent day to give thanks to the volunteers who have contributed to the R project and its ecosystem. In particular, give thanks to the R Core Group, whose tireless dedication — in several cases over a period of more than 20 years — was and remains critical to the success and societal contributions of the language we use and love: R. You can contribute financially by becoming a Supporting Member of the R Foundation.

var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

To leave a comment for the author, please follow the link and comment on their blog: Revolutions. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

Handling ‘Happy’ vs ‘Not Happy’: Better sentiment analysis with sentimentr in R

Thu, 11/23/2017 - 15:00

(This article was first published on R Programming – DataScience+, and kindly contributed to R-bloggers)

Sentiment Analysis is one of the most obvious things Data Analysts with unlabelled Text data (with no score or no rating) end up doing in an attempt to extract some insights out of it and the same Sentiment analysis is also one of the potential research areas for any NLP (Natural Language Processing) enthusiasts.

For an analyst, the same sentiment analysis is a pain in the neck because most of the primitive packages/libraries handling sentiment analysis perform a simple dictionary lookup and calculate a final composite score based on the number of occurrences of positive and negative words. But that often ends up in a lot of false positives, with a very obvious case being ‘happy’ vs ‘not happy’ – Negations, in general Valence Shifters.

Consider this sentence: ‘I am not very happy’. Any Primitive Sentiment Analysis Algorithm would just flag this sentence positive because of the word ‘happy’ that apparently would appear in the positive dictionary. But reading this sentence we know this is not a positive sentence.

While we could build our own way to handle these negations, there are couple of new R-packages that could do this with ease. One such package is sentimentr developed by Tyler Rinker.

Installing the package

sentimentr can be installed from CRAN or the development version can be installed from github.

install.packages('sentimentr') #or library(devtools) install_github('trinker/sentimentr') Why sentimentr?

The author of the package himself explaining what does sentimentr do that other packages don’t and why does it matter?

“sentimentr attempts to take into account valence shifters (i.e., negators, amplifiers (intensifiers), de-amplifiers (downtoners), and adversative conjunctions) while maintaining speed. Simply put, sentimentr is an augmented dictionary lookup. The next questions address why it matters.”

Sentiment Scoring:

sentimentr offers sentiment analysis with two functions: 1. sentiment_by() 2. sentiment()

Aggregated (Averaged) Sentiment Score for a given text with sentiment_by

sentiment_by('I am not very happy', by = NULL) element_id sentence_id word_count sentiment 1: 1 1 5 -0.06708204

But this might not help much when we have multiple sentences with different polarity, hence sentence-level scoring with sentiment would help here.

sentiment('I am not very happy. He is very happy') element_id sentence_id word_count sentiment 1: 1 1 5 -0.06708204 2: 1 2 4 0.67500000

Both the functions return a dataframe with four columns:

1. element_id – ID / Serial Number of the given text
2. sentence_id – ID / Serial Number of the sentence and this is equal to element_id in case of sentiment_by
3. word_count – Number of words in the given sentence
4. sentiment – Sentiment Score of the given sentence

Extract Sentiment Keywords

The extract_sentiment_terms() function helps us extract the keywords – both positive and negative that was part of the sentiment score calculation. sentimentr also supports pipe operator %>% which makes it easier to write multiple lines of code with less assignment and also cleaner code.

'My life has become terrible since I met you and lost money' %>% extract_sentiment_terms() element_id sentence_id negative positive 1: 1 1 terrible,lost money Sentiment Highlighting:

And finally, the highight() function coupled with sentiment_by() that gives a html output with parts of sentences nicely highlighted with green and red color to show its polarity. Trust me, This might seem trivial but it really helps while making Presentations to share the results, discuss False positives and to identify the room for improvements in the accuracy.

'My life has become terrible since I met you and lost money. But I still have got a little hope left in me' %>% sentiment_by(by = NULL) %>% highlight()

Output Screenshot:

Try using sentimentr for your sentiment analysis and text analytics project and do share your feedback in comments. Complete code used here is available on my github.

    Related Post

    1. Creating Reporting Template with Glue in R
    2. Predict Employee Turnover With Python
    3. Making a Shiny dashboard using ‘highcharter’ – Analyzing Inflation Rates
    4. Time Series Analysis in R Part 2: Time Series Transformations
    5. Time Series Analysis in R Part 1: The Time Series Object
    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: R Programming – DataScience+. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    Arbitrary Data Transforms Using cdata

    Wed, 11/22/2017 - 17:36

    (This article was first published on R – Win-Vector Blog, and kindly contributed to R-bloggers)

    We have been writing a lot on higher-order data transforms lately:

    What I want to do now is "write a bit more, so I finally feel I have been concise."

    The cdata R package supplies general data transform operators.

    • The whole system is based on two primitives or operators cdata::moveValuesToRowsD() and cdata::moveValuesToColumnsD().
    • These operators have pivot, un-pivot, one-hot encode, transpose, moving multiple rows and columns, and many other transforms as simple special cases.
    • It is easy to write many different operations in terms of the cdata primitives.
    • These operators can work-in memory or at big data scale (with databases and Apache Spark; for big data we use the cdata::moveValuesToRowsN() and cdata::moveValuesToColumnsN() variants).
    • The transforms are controlled by a control table that itself is a diagram of or picture of the transform.

    We will end with a quick example, centered on pivoting/un-pivoting values to/from more than one column at the same time.

    Suppose we had some sales data supplied as the following table:

    SalesPerson Period BookingsWest BookingsEast a 2017Q1 100 175 a 2017Q2 110 180 b 2017Q1 250 0 b 2017Q2 245 0

    Suppose we are interested in adding a derived column: which region the salesperson made most of their bookings in.

    library("cdata") ## Loading required package: wrapr library("seplyr") d <- d %.>% dplyr::mutate(., BestRegion = ifelse(BookingsWest > BookingsEast, "West", ifelse(BookingsEast > BookingsWest, "East", "Both")))

    Our notional goal is (as part of a larger data processing plan) to reformat the data a thin/tall table or a RDF-triple like form. Further suppose we wanted to copy the derived column into every row of the transformed table (perhaps to make some other step involving this value easy).

    We can use cdata::moveValuesToRowsD() to do this quickly and easily.

    First we design what is called a transform control table.

    cT1 <- data.frame(Region = c("West", "East"), Bookings = c("BookingsWest", "BookingsEast"), BestRegion = c("BestRegion", "BestRegion"), stringsAsFactors = FALSE) print(cT1) ## Region Bookings BestRegion ## 1 West BookingsWest BestRegion ## 2 East BookingsEast BestRegion

    In a control table:

    • The column names specify new columns that will be formed by cdata::moveValuesToRowsD().
    • The values specify where to take values from.

    This control table is called "non trivial" as it does not correspond to a simple pivot/un-pivot (those tables all have two columns). The control table is a picture of of the mapping we want to perform.

    An interesting fact is cdata::moveValuesToColumnsD(cT1, cT1, keyColumns = NULL) is a picture of the control table as a one-row table (and this one row table can be mapped back to the original control table by cdata::moveValuesToRowsD(), these two operators work roughly as inverses of each other; though cdata::moveValuesToRowsD() operates on rows and cdata::moveValuesToColumnsD() operates on groups of rows specified by the keying columns).

    The mnemonic is:

    • cdata::moveValuesToColumnsD() converts arbitrary grouped blocks of rows that look like the control table into many columns.
    • cdata::moveValuesToRowsD() converts each row into row blocks that have the same shape as the control table.

    Because pivot and un-pivot are fairly common needs cdata also supplies functions that pre-populate the controls tables for these operations (buildPivotControlTableD() and buildUnPivotControlTable()).

    To design any transform you draw out the control table and then apply one of these operators (you can pretty much move from any block structure to any block structure by chaining two or more of these steps).

    We can now use the control table to supply the same transform for each row.

    d %.>% dplyr::mutate(., Quarter = substr(Period,5,6), Year = as.numeric(substr(Period,1,4))) %.>% dplyr::select(., -Period) %.>% moveValuesToRowsD(., controlTable = cT1, columnsToCopy = c('SalesPerson', 'Year', 'Quarter')) %.>% arrange_se(., c('SalesPerson', 'Year', 'Quarter', 'Region')) %.>% knitr::kable(.) SalesPerson Year Quarter Region Bookings BestRegion a 2017 Q1 East 175 East a 2017 Q1 West 100 East a 2017 Q2 East 180 East a 2017 Q2 West 110 East b 2017 Q1 East 0 West b 2017 Q1 West 250 West b 2017 Q2 East 0 West b 2017 Q2 West 245 West

    Notice we were able to easily copy the extra BestRegion values into all the correct rows.

    It can be hard to figure out how to specify such a transformation in terms of pivots and un-pivots. However, as we have said: by drawing control tables one can easily design and manage fairly arbitrary data transform sequences (often stepping through either a denormalized intermediate where all values per-instance are in a single row, or a thin intermediate like the triple-like structure we just moved into).

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: R – Win-Vector Blog. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    Mapping “world cities” in R

    Wed, 11/22/2017 - 13:00

    (This article was first published on r-bloggers – SHARP SIGHT LABS, and kindly contributed to R-bloggers)



    Here at Sharp Sight, we make a lot of maps.

    There are a few reasons for this.

    First, good maps are typically ‘information dense.’ You can get a lot of information at a glance from a good map. They are good visualization tools for finding and communicating insights.

    Second, it’s extremely easy to get data that you can use to make a map. From a variety of sources, you’ll find data about cities, states, counties, and countries. If you know how to retrieve this data and wrangle it into shape, it will be easy to find data that you can use to make a map.

    Finally, map making is just good practice. To create a map like the one we’re about to make, you’ll typically need to use a variety of data wrangling and data visualization tools. Maps make for excellent practice for intermediate data scientists who have already mastered some of the basics.

    With that in mind, this week we’ll make a map of “world cities.” This set of cities has been identified by the Globalization and World Cities (GaWC) Research Network as being highly connected and influential in the world economy.

    We’re going to initially create a very basic map, but we’ll also create a small multiple version of the map (broken out by GaWC ranking).

    Let’s get started.

    First, we’ll load the packages that we’ll need.

    #============== # LOAD PACKAGES #============== library(tidyverse) library(ggmap) library(forcats)

    Next, we’ll input the cities by hard coding them as data frames. To be clear, there is more than one way to do this (e.g., we could scrape the data), but there isn’t that much data here, so doing this manually is acceptable.

    #=================== # INPUT ALPHA CITIES #=================== df_alpha_plus_plus <- tibble(city = c('London','New York')) df_alpha_plus <- tibble(city = c('Singapore', 'Hong Kong', 'Paris', 'Beijing' ,'Tokyo', 'Dubai', 'Shanghai')) df_alpha <- tibble(city = c('Sydney', 'São Paulo', 'Milan', 'Chicago' ,'Mexico City', 'Mumbai', 'Moscow', 'Frankfurt' ,'Madrid', 'Warsaw', 'Johannesburg', 'Toronto' ,'Seoul', 'Istanbul', 'Kuala Lumpur', 'Jakarta' ,'Amsterdam', 'Brussels', 'Los Angeles')) df_alpha_minus <- tibble(city = c('Dublin', 'Melbourne', 'Washington', 'New Delhi' ,'Bangkok', 'Zurich', 'Vienna', 'Taipei' ,'Buenos Aires', 'Stockholm', 'San Francisco' ,'Guangzhou', 'Manila', 'Bogotá', 'Miami', 'Luxembourg' ,'Riyadh', 'Santiago', 'Barcelona', 'Tel Aviv', 'Lisbon'))

    Now, we’ll create a new variable called rating. This will contain the global city rating.

    Notice that this is a very straightforward use of dplyr::mutate(), one of the tidyverse functions you should definitely master.

    #======================= # ADD GLOBAL CITY RATING #======================= df_alpha_plus_plus <- df_alpha_plus_plus %>% mutate(rating = 'alpha++') df_alpha_plus <- df_alpha_plus %>% mutate(rating = 'alpha+') df_alpha <- df_alpha %>% mutate(rating = 'alpha') df_alpha_minus <- df_alpha_minus %>% mutate(rating = 'alpha-')

    Next, we’ll combine the different data frames into one using rbind().

    #====================================== # COMBINE DATAFRAMES INTO ONE DATAFRAME #====================================== alpha_cities <- rbind(df_alpha_plus_plus ,df_alpha_plus ,df_alpha ,df_alpha_minus )

    Now that the data are combined into a single data frame, we’ll get the longitude and latitude using geocode().

    #======== # GEOCODE #======== latlong <- geocode(alpha_cities$city) #======== # INSPECT #======== alpha_cities latlong

    Once we have the longitude and latitude data, we need to combine it with the original data in the alpha_cities data frame. To do this, we will use cbind().

    #============================ # BIND LAT/LONG TO CITY NAMES #============================ alpha_cities <- cbind(alpha_cities, latlong) %>% rename(long = lon) alpha_cities #names(alpha_cities)

    Now we have the data that we need, but we’ll need to clean things up a little.

    In the visualization we’ll make, we will need to use the faceting technique from ggplot2. When we do this, we’ll facet on the rating variable, but we will need the levels of that variable to be ordered properly (otherwise the facets will be out of order).

    To reorder the factor levels of rating, we will use fct_relevel().

    #================================================ # REORDER LEVELS OF GLOBAL CITY RATING # - the global city ratings should be ordered # i.e., alpha++, then alpha+ .... # - to do this, we'll use forecats::fct_relevel() #================================================ alpha_cities <- mutate(alpha_cities, rating = fct_relevel(rating, 'alpha++','alpha+','alpha','alpha-')) levels(alpha_cities$rating)

    Because we will be building a map, we’ll need to retrive a map of the world. We can get a world map by using map_data(“world”).

    #============== # GET WORLD MAP #============== map_world <- map_data("world")

    Ok. We basically have everything we need. Now we will make a simple first draft.

    #================ # FIRST DRAFT MAP #================ ggplot() + geom_polygon(data = map_world, aes(x = long, y = lat, group = group)) + geom_point(data = alpha_cities, aes(x = long, y = lat), color = 'red')



    … and now we’ll use the faceting technique to break out our plot using the rating variable.

    #========================== # CREATE SMALL MULTIPLE MAP #========================== ggplot() + geom_polygon(data = map_world, aes(x = long, y = lat, group = group)) + geom_point(data = alpha_cities, aes(x = long, y = lat), color = 'red') + #facet_grid(. ~ rating) #facet_grid(rating ~ .) facet_wrap(~ rating)



    Once again, this is a good example of an intermediate-level project that you could do to practice your data wrangling and data visualization skills.

    Having said that, before you attempt to do something like this yourself, I highly recommend that you first master the individual tools that we used here (i.e., the tools from ggplot2, dplyr, and the tidyverse).

    Sign up now, and discover how to rapidly master data science

    To master data science, you need to master the essential tools.

    And to make rapid progress, you need to know what to learn, what not to learn, and you need to know how to practice what you learn.

    Sharp Sight is dedicated to teaching you how to master the tools of data science as quickly as possible.

    Sign up now for our email list, and you’ll receive regular tutorials and lessons.

    You’ll learn:

    • What data science tools you should learn (and what not to learn)
    • How to practice those tools
    • How to put those tools together to execute analyses and machine learning projects
    • … and more

    If you sign up for our email list right now, you’ll also get access to our “Data Science Crash Course” for free.

    SIGN UP NOW

    The post Mapping “world cities” in R appeared first on SHARP SIGHT LABS.

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: r-bloggers – SHARP SIGHT LABS. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    Tips for A/B Testing with R

    Wed, 11/22/2017 - 10:19

    (This article was first published on INWT-Blog-RBloggers, and kindly contributed to R-bloggers)

    Which layout of an advertisement leads to more clicks? Would a different color or position of the purchase button lead to a higher conversion rate? Does a special offer really attract more customers – and which of two phrasings would be better?

    For a long time, people have trusted their gut feeling to answer these questions. Today all these questions could be answered by conducting an A/B test. For this purpose, visitors of a website are randomly assigned to one of two groups between which the target metric (i.e. click-through rate, conversion rate…) can then be compared. Due to this randomization, the groups do not systematically differ in all other relevant dimensions. This means: If your target metric takes a significantly higher value in one group, you can be quite sure that it is because of your treatment and not because of any other variable.

    In comparison to other methods, conducting an A/B test does not require extensive statistical knowledge. Nevertheless, some caveats have to be taken into account.

    When making a statistical decision, there are two possible errors (see also table 1): A Type I error means that we observe a significant result although there is no real difference between our groups. A Type II error means that we do not observe a significant result although there is in fact a difference. The Type I error can be controlled and set to a fixed number in advance, e.g., at 5%, often denoted as α or the significance level. The Type II error in contrast cannot be controlled directly. It decreases with the sample size and the magnitude of the actual effect. When, for example, one of the designs performs way better than the other one, it’s more likely that the difference is actually detected by the test in comparison to a situation where there is only a small difference with respect to the target metric. Therefore, the required sample size can be computed in advance, given α and the minimum effect size you want to be able to detect (statistical power analysis). Knowing the average traffic on the website you can get a rough idea of the time you have to wait for the test to complete. Setting the rule for the end of the test in advance is often called “fixed-horizon testing”.

    Table 1: Overview over possible errors and correct decisions in statistical tests Effect really exists No Yes Statistical test is significant No True negative Type II error (false negative) Yes Type I error (false positive) True positive

    Statistical tests generally provide the p-value which reflects the probability of obtaining the observed result (or an even more extreme one) just by chance, given that there is no effect. If the p-value is smaller than α, the result is denoted as “significant”.

    When running an A/B test you may not always want to wait until the end but take a look from time to time to see how the test performs. What if you suddenly observe that your p-value has already fallen below your significance level – doesn’t that mean that the winner has already been identified and you could stop the test? Although this conclusion is very appealing, it can also be very wrong. The p-value fluctuates strongly during the experiment and even if the p-value at the end of the fixed-horizon is substantially larger than α, it can go below α at some point during the experiment. This is the reason why looking at your p-value several times is a little bit like cheating, because it makes your actual probability of a Type I error substantially larger than the α you chose in advance. This is called “α inflation”. At best you only change the color or position of a button although it does not have any impact. At worst, your company provides a special offer which causes costs but actually no gain. The more often you check your p-value during the data collection, the more likely you are to draw wrong conclusions. In short: As attractive as it may seem, don’t stop your A/B test early just because you are observing a significant result. In fact you can prove that if you increase your time horizon to infinity, you are guaranteed to get a significant p-value at some point in time.

    The following code simulates some data and plots the course of the p-value during the test. (For the first samples which are still very small R returns a warning that the chi square approximation may be incorrect.)

    library(timeDate) library(ggplot2) # Choose parameters: pA <- 0.05 # True click through rate for group A pB <- 0.08 # True click through rate for group B nA <- 500 # Number of cases for group A nB <- 500 # Number of cases for group B alpha <- 0.05 # Significance level # Simulate data: data <- data.frame(group = rep(c("A", "B"), c(nA, nB)), timestamp = sample(seq(as.timeDate('2016-06-02'), as.timeDate('2016-06-09'), by = 1), nA+nB), clickedTrue = as.factor(c(rbinom(n = nA, size = 1, prob = pA), rbinom(n = nB, size = 1, prob = pB)))) # Order data by timestamp data <- data[order(data$GMT.x..i..), ] levels(data$clickedTrue) <- c("0", "1") # Compute current p-values after every observation: pValues <- c() index <- c() for (i in 50:dim(data)[1]){ presentData <- table(data$group[1:i], data$clickedTrue[1:i]) if (all(rowSums(presentData) > 0)){ pValues <- c(pValues, prop.test(presentData)$p.value) index <- c(index, i)} } results <- data.frame(index = index, pValue = pValues) # Plot the p-values: ggplot(results, aes(x = index, y = pValue)) + geom_line() + geom_hline(aes(yintercept = alpha)) + scale_y_continuous(name = "p-value", limits = c(0,1)) + scale_x_continuous(name = "Observed data points") + theme(text = element_text(size=20))

    The figure below shows an example with 500 observations and true rates of 5% in both groups, i.e., no actual difference. You can see that the p-value nevertheless crosses the threshold several times, but finally takes a very high value. By stopping this test early, it would have been very likely to draw a wrong conclusion.

    Example for the course of a p-value for two groups with no actual difference

    The following code shows you how to test the difference between two rates in R, e.g., click-through rates or conversion rates. You can apply the code to your own data by replacing the URL to the example data with your file path. To test the difference between two proportions, you can use the function prop.test which is equivalent to Pearson’s chi-squared test. For small samples you should use Fisher’s exact test instead. Prop.test returns a p-value and a confidence interval for the difference between the two rates. The interpretation of a 95% confidence interval is as follows: When conducting such an analysis many times, then 95% of the displayed confidence intervals would contain the true difference. Afterwards you can also take a look at the fluctuations of the p-value during the tests by using the code from above.

    library(readr) # Specify file path: dataPath <- "https://www.inwt-statistics.de/files/INWT/downloads/exampleDataABtest.csv" # Read data data <- read_csv(file = dataPath) # Inspect structure of the data str(data) ## Classes 'tbl_df', 'tbl' and 'data.frame': 1000 obs. of 3 variables: ## $ group : chr "A" "A" "A" "B" ... ## $ time : POSIXct, format: "2016-06-02 02:17:53" "2016-06-02 03:03:54" ... ## $ clickedTrue: int 0 0 1 0 0 0 0 0 0 0 ... # Change the column names names(data) <- c("group", "time", "clickedTrue") # Change type of group to factor data$group <- as.factor(data$group) # Change type of click through variable to factor data$clickedTrue <- as.factor(data$clickedTrue) levels(data$clickedTrue) <- c("0", "1") # Compute frequencies and conduct test for proportions # (Frequency table with successes in the first column) freqTable <- table(data$group, data$clickedTrue)[, c(2,1)] # print frequency table freqTable ## ## 1 0 ## A 20 480 ## B 40 460 # Conduct significance test prop.test(freqTable, conf.level = .95) ## ## 2-sample test for equality of proportions with continuity ## correction ## ## data: freqTable ## X-squared = 6.4007, df = 1, p-value = 0.01141 ## alternative hypothesis: two.sided ## 95 percent confidence interval: ## -0.071334055 -0.008665945 ## sample estimates: ## prop 1 prop 2 ## 0.04 0.08

    There are some more pitfalls, but most of them can easily be avoided. First, as a counterpart of stopping your test early because of a significant result, you could gather more data after the planned end of the test because the results have not yet become significant. This would likewise lead to an α inflation. A second, similar problem arises when running several tests at once: The probability to achieve a false-positive result would then be α for each of the tests. The overall probability that at least one of the results is false-positive is much larger. So always keep in mind that some of the significant results may have been caused by chance. Third, you can also get into trouble when you reach the required sample size very fast and stop the test after a few hours already. You should always consider that the behavior of the users in this specific time slot might not be representative for the general case. To avoid this, you should plan the duration of the test so that it covers at least 24 hours or a week when customers are behaving different at the weekend than on a typical work day. A fourth caveat concerns a rather moral issue: When users discover they are part of an experiment and suffer from disadvantages as a result, they might rightly become angry. (This problem will probably not arise due to a different-colored button, but maybe because of different prices or special offers.)

    If you are willing to invest some more time, you may want to learn about techniques to avoid α inflation when conducting multiple tests or stopping your test as soon as the p-value crosses a certain threshold. In addition, there are techniques to include previous knowledge in your computations with Bayesian approaches. The latter is especially useful when you have rather small samples, but previous knowledge about the values that your target metric usually takes.

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: INWT-Blog-RBloggers. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    October 2017 New Packages

    Wed, 11/22/2017 - 01:00

    (This article was first published on R Views, and kindly contributed to R-bloggers)

    Of the 182 new packages that made it to CRAN in October, here are my picks for the “Top 40”. They are organized into eight categories: Engineering, Machine Learning, Numerical Methods, Science, Statistics, Time Series, Utilities and Visualizations. Engineering is a new category, and its appearance may be an early signal for the expansion of R into a new domain. The Science category is well-represented this month. I think this is the result of the continuing trend for working scientists to wrap their specialized analyses into R packages.

    Engineering

    FlowRegEnvCost 0.1.1: Calculates the daily environmental costs of river-flow regulation by dams based on García de Jalon et al. (2017).

    rroad v0.0.4: Computes and visualizes the International Roughness Index (IRI) given a longitudinal road profile for a single road segment, or for a sequence of segments with a fixed length. For details on The International Road Roughness Experiment establishing a correlation and a calibration standard for measurements, see the World Bank technical paper. The vignette shows an example of a Road Condition Analysis. The following scaleogram was produced from a continuous wavelet transform of a 3D accelerometer signal.

    Machine Learning

    detrendr v0.1.0: Implements a method based on an algorithm by Nolan et al. (2017) for detrending images affected by bleaching. See the vignette

    MlBayesOpt v0.3.3: Provides a framework for using Bayesian optimization (see Shahriari et al. to tune hyperparameters for support vector machine, random forest, and extreme gradient boosting models. The vignette shows how to set things up.

    rerf v1.0: Implements an algorithm, Random Forester (RerF), developed by Tomita (2016), which is similar to the Random Combination (Forest-RC) algorithm developed by Breiman (2001). Both algorithms form splits using linear combinations of coordinates.

    Numerical Methods

    episode v1.0.0: Provides statistical tools for inferring unknown parameters in continuous time processes governed by ordinary differential equations (ODE). See the Introduction.

    KGode v1.0.1: Implements the kernel ridge regression and the gradient matching algorithm proposed in Niu et al. (2016), and the warping algorithm proposed in Niu et al. (2017) for improving parameter estimation in ODEs.

    Science

    adjclust v0.5.2: Implements a constrained version of hierarchical agglomerative clustering, in which each observation is associated with a position, and only adjacent clusters can be merged. The algorithm, which is time- and memory-efficient, is described in Alia Dehman (2015). There are vignettes on Clustering Hi-C Contact Maps, Implementation Notes, and Inferring Linkage Disequilibrium blocks from Genotypes.

    hsdar v0.6.0: Provides functions for transforming reflectance spectra, calculating vegetation indices and red edge parameters, and spectral resampling for hyperspectral remote sensing and simulation. The Introduction offers several examples.

    mapfuser v0.1.2: Constructs consensus genetic maps with LPmerge (See Endelman and Plomion (2014)) and models the relationship between physical distance and genetic distance using thin-plate regression splines (see Wood (2003)). The vignette explains how to use the package.

    mortAAR v1.0.0: Provides functions for the analysis of archaeological mortality data See Chamberlain (2006). There is a vignette on Lifetables and an Extended Discussion.

    skyscapeR v0.2.2: Provides a tool set for data reduction, visualization and analysis in skyscape archaeology, archaeoastronomy and cultural astronomy. The vignette shows how to use the package.

    Statistics

    BayesRS v0.1.2: Fits hierarchical linear Bayesian models, samples from the posterior distributions of model parameters in JAGS, and computes Bayes factors for group parameters of interest with the Savage-Dickey density ratio ([See Wetzels et al.(2009). There is an Introduction.

    CatPredi v1.1: Allows users to categorize a continuous predictor variable in a logistic or a Cox proportional hazards regression setting, by maximizing the discriminative ability of the model. See Barrio et al. (2015) and Barrio et al. (2017).

    CovTools v0.2.1: Provides a collection of geometric and inferential tools for convenient analysis of covariance structures. For an introduction to covariance in multivariate statistical analysis, see Schervish (1987).

    genlogis v0.5.0: Provides basic distribution functions for a generalized logistic distribution proposed by Rathie and Swamee (2006).

    emmeans v0.9.1: Provides functions to obtain estimated marginal means (EMMs) for many linear, generalized linear, and mixed models, and computes contrasts or linear functions of EMMs, trends, and comparisons of slopes. There are twelve vignettes including The Basics, Comparisons and Contrasts, Confidence Intervals and Tests, Interaction Analysis, and Working with Messy Data.

    ESTER v0.1.0: Provides an implementation of sequential testing that uses evidence ratios computed from the Akaike weights of a set of models. For details see Burnham & Anderson (2004). There is a vignette.

    FarmTest v1.0.0: Provides functions to perform robust multiple testing for means in the presence of latent factors. It uses Huber’s loss function to estimate distribution parameters and accounts for strong dependence among coordinates via an approximate factor model. See Zhou et al.(2017) for details. There is a vignette to get you started.

    miic v0.1: Implements an information-theoretic method which learns a large class of causal or non-causal graphical models from purely observational data, while including the effects of unobserved latent variables, commonly found in many datasets. For more information see Verny et al. (2017).

    modcmfitr v0.1.0: Fits a modified version of the Connor-Mosimann distribution ( Connor & Mosimann (1969)), a Connor-Mosimann distribution, or a Dirichlet distribution to elicited quantiles of a multinomial distribution. See the vignette for details.

    pense v1.0.8: Provides a robust penalized elastic net S and MM estimator for linear regression as described in Freue et al. (2017).

    paramtest v0.1.0: Enables running simulations or other functions while easily varying parameters from one iteration to the next. The vignette shows how to run a power simulation.

    rENA v0.1.0: Implements functions to perform epistemic network analysis ENA, a novel method for identifying and quantifying connections among elements in coded data, and representing them in dynamic network models, which illustrate the structure of connections and measure the strength of association among elements in a network.

    rma.exact v0.1.0: Provides functions to compute an exact CI for the population mean under a random-effects model. For details, see Michael, Thronton, Xie, and Tian (2017).

    Time Series

    carfima v1.0.1: Provides a toolbox to fit a continuous-time, fractionally integrated ARMA process CARFIMA on univariate and irregularly spaced time-series data using a general-order CARFIMA(p, H, q) model for p>q as specified in Tsai and Chan (2005).

    colorednoise v0.0.1: Provides tools for simulating populations with white noise (no temporal autocorrelation), red noise (positive temporal autocorrelation), and blue noise (negative temporal autocorrelation) based on work by Ruokolainen et al. (2009). The vignette describes colored noise.

    nnfor v0.9: Provides functions to facilitate automatic time-series modelling with neural networks. Look here for some help getting started.

    Utilities

    hdf5r v1.0.0: Provides an object-oriented wrapper for the HDF5 API using R6 classes. The vignette shows how to use the package.

    geoops v0.1.2: Provides tools for working with the GeoJSON geospatial data interchange format. There is an Introduction.

    linl v0.0.2: Adds a LaTeX Letter class to rmarkdown, using the pandoc-letter template adapted for use with markdown. See the vignette and README for details.

    oshka v0.1.2: Expands quoted language by recursively replacing any symbol that points to quoted language with the language itself. There is an Introduction and a vignette on Non Standard Evaluation Functions.

    rcreds v0.6.6: Provides functions to read and write credentials to and from an encrypted file. The vignette describes how to use the package.

    RMariaDB v1.0-2: Implements a DBI-compliant interface to MariaDB and MySQL databases.

    securitytxt v0.1.0: Provides tools to identify and parse security.txt files to enable the analysis and adoption of the Web Security Policies draft standard.

    usethis v1.1.0: Automates package and project setup tasks, including setting up unit testing, test coverage, continuous integration, Git, GitHub, licenses, Rcpp, RStudio projects, and more that would otherwise be performed manually. README provides examples.

    xltabr v0.1.1: Provides functions to produce nicely formatted cross tabulations to Excel using [openxlsx]((https://cran.r-project.org/package=openxlsx), which has been developed to help automate the process of publishing Official Statistics. Look here for documentation.

    Visualizations

    iheatmapr v0.4.2: Provides a system for making complex, interactive heatmaps. Look at the webpage for examples.

    otvPlots v0.2.0: Provides functions to automate the visualization of variable distributions over time, and compute time-aggregated summary statistics for large datasets. See the README for an introduction.

    _____='https://rviews.rstudio.com/2017/11/22/october-2017-new-packages/';

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: R Views. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    Le Monde puzzle [#1029]

    Wed, 11/22/2017 - 00:17

    (This article was first published on R – Xi'an's Og, and kindly contributed to R-bloggers)

    A convoluted counting Le Monde mathematical puzzle:

    A film theatre has a waiting room and several projection rooms. With four films on display. A first set of 600 spectators enters the waiting room and vote for their favourite film. The most popular film is projected to the spectators who voted for it and the remaining spectators stay in the waiting room. They are joined by a new set of 600 spectators, who then also vote for their favourite film. The selected film (which may be the same as the first one) is then shown to those who vote for it and the remaining spectators stay in the waiting room. This pattern is repeated for a total number of 10 votes, after which the remaining spectators leave. What are the maximal possible numbers of waiting spectators and of spectators in a projection room?

    A first attempt by random sampling does not produce extreme enough events to reach those maxima:

    wm=rm=600 #waiting and watching for (v in 1:V){ film=rep(0,4) #votes on each fiLm for (t in 1:9){ film=film+rmultinom(1,600,rep(1,4)) rm=max(rm,max(film)) film[order(film)[4]]=0 wm=max(wm,sum(film)+600)} rm=max(rm,max(film)+600)}

    where the last line adds the last batch of arriving spectators to the largest group of waiting ones. This code only returns 1605 for the maximal number of waiting spectators. And 1155 for the maximal number in a projection room.  Compared with the even separation of the first 600 into four groups of 150… I thus looked for an alternative deterministic allocation:

    wm=rm=0 film=rep(0,4) for (t in 1:9){ size=sum(film)+600 film=c(rep(ceiling(size/4),3),size-3*ceiling(size/4)) film[order(film)[4]]=0 rm=max(rm,max(film)+600) wm=max(wm,sum(film)+600)}

    which tries to preserve as many waiting spectators as possible for the last round (and always considers the scenario of all newcomers backing the largest waiting group for the next film). The outcome of this sequence moves up to 1155 for the largest projection audience and 2264 for the largest waiting group. I however wonder if splitting into two groups in the final round(s) could even increase the size of the last projection. And indeed halving the last batch into two groups leads to 1709 spectators in the final projection. With uncertainties about the validity of the split towards ancient spectators keeping their vote fixed! (I did not think long enough about this puzzle to turn it into a more mathematical problem…)

    While in Warwick, I reconsidered the problem from a dynamic programming perspective, always keeping the notion that it was optimal to allocate the votes evenly between some of the films (from 1 to 4). Using the recursive R code

    optiz=function(votz,t){ if (t==9){ return(sort(votz)[3]+600) }else{ goal=optiz(sort(votz)+c(0,0,600,-max(votz)),t+1) goal=rep(goal,4) for (i in 2:4){ film=sort(votz);film[4]=0;film=sort(film) size=sum(film[(4-i+1):4])+600 film[(4-i+1):4]=ceiling(size/i) while (sum(film[(4-i+1):4])>size) film[4]=film[4]-1 goal[i]=optiz(sort(film),t+1)} return(max(goal))}}

    led to a maximal audience size of 1619. [Which is also the answer provided by Le Monde]

    Filed under: Books, Kids, R Tagged: combinatorics, Le Monde, R

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: R – Xi'an's Og. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    4-Day Workshop in Toronto: Learn R, tidyverse, and Shiny with Dean Attali and Kirill Muller

    Tue, 11/21/2017 - 21:00

    (This article was first published on Dean Attali's R Blog, and kindly contributed to R-bloggers)

    Kirill Muller and I are excited to announce a 4-day R workshop in Toronto on January 23-26, 2018!

    To register or for more information click here

    Readers of this blog can receive a 10% discount by using promo code TIDYSHINYTEN (limited-time offer).
    If you know someone who might benefit from the workshop, you can receive 10% of the ticket price using this affiliate link (we will pay you using PayPal).

    The course will take place in the Hilton Hotel in Toronto, Canada over 4 full days. It is intended for beginners and experienced R users alike. For any questions, feel free to contact Dean at dean@attalitech.com

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: Dean Attali's R Blog. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    xray: The R Package to Have X Ray Vision on your Datasets

    Tue, 11/21/2017 - 19:00

    (This article was first published on R - Data Science Heroes Blog, and kindly contributed to R-bloggers)


    This package lets you analyze the variables of a dataset, to evaluate how is the shape of your data. Consider this the first step when you have your data for modeling, you can use this package to analyze all variables and check if there is anything weird worth transforming or even avoiding the variable altogether.

    Installation

    You can install xray from github with:

    # install.packages("devtools") devtools::install_github("sicarul/xray") Usage Anomaly detection

    xray::anomalies analyzes all your columns for anomalies, whether they are NAs, Zeroes, Infinite, etc, and warns you if it detects variables with at least 80% of rows with those anomalies. It also warns you when all rows have the same value.

    Example:

    data(longley) badLongley=longley badLongley$GNP=NA xray::anomalies(badLongley) #> Warning in xray::anomalies(badLongley): Found 1 possible problematic variables: #> GNP #> $variables #> Variable q qNA pNA qZero pZero qBlank pBlank qInf pInf qDistinct #> 1 GNP 16 16 1 0 0 0 0 0 0 1 #> 2 GNP.deflator 16 0 0 0 0 0 0 0 0 16 #> 3 Unemployed 16 0 0 0 0 0 0 0 0 16 #> 4 Armed.Forces 16 0 0 0 0 0 0 0 0 16 #> 5 Population 16 0 0 0 0 0 0 0 0 16 #> 6 Year 16 0 0 0 0 0 0 0 0 16 #> 7 Employed 16 0 0 0 0 0 0 0 0 16 #> type anomalous_percent #> 1 Logical 1 #> 2 Numeric 0 #> 3 Numeric 0 #> 4 Numeric 0 #> 5 Numeric 0 #> 6 Integer 0 #> 7 Numeric 0 #> #> $problem_variables #> Variable q qNA pNA qZero pZero qBlank pBlank qInf pInf qDistinct #> 1 GNP 16 16 1 0 0 0 0 0 0 1 #> type anomalous_percent #> 1 Logical 1 #> problems #> 1 Anomalies present in 100% of the rows. Less than 2 distinct values. Distributions

    xray::distributions tries to analyze the distribution of your variables, so you can understand how each variable is statistically structured. It also returns a percentiles table of numeric variables as a result, which can inform you of the shape of the data.

    distrLongley=longley distrLongley$testCategorical=c(rep('One',7), rep('Two', 9)) xray::distributions(distrLongley)


    #> Variable p_1 p_10 p_25 p_50 p_75 p_90 #> 1 GNP.deflator 83.78 88.35 94.525 100.6 111.25 114.95 #> 2 GNP 237.8537 258.74 317.881 381.427 454.0855 510.387 #> 3 Unemployed 187.93 201.55 234.825 314.35 384.25 434.4 #> 4 Armed.Forces 147.61 160.3 229.8 271.75 306.075 344.85 #> 5 Population 107.7616 109.2025 111.7885 116.8035 122.304 126.61 #> 6 Year 1947.15 1948.5 1950.75 1954.5 1958.25 1960.5 #> 7 Employed 60.1938 60.7225 62.7125 65.504 68.2905 69.4475 #> p_99 #> 1 116.72 #> 2 549.3859 #> 3 478.725 #> 4 358.695 #> 5 129.7466 #> 6 1961.85 #> 7 70.403 Distributions along a time axis

    xray::timebased also investigates into your distributions, but shows you the change over time, so if there is any change in the distribution over time (For example a variable stops or starts being collected) you can easily visualize it.

    dateLongley=longley dateLongley$Year=as.Date(paste0(dateLongley$Year,'-01-01')) dateLongley$Data='Original' ndateLongley=dateLongley ndateLongley$GNP=dateLongley$GNP+10 ndateLongley$Data='Offseted' xray::timebased(rbind(dateLongley, ndateLongley), 'Year')



    #> [1] “7 charts have been generated.”

    If you are just starting to learn about Data Science or want to explore further, i encourage you to check this cool book made by my buddy Pablo Casas: The Data Science Live Book

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: R - Data Science Heroes Blog. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    βCEA

    Tue, 11/21/2017 - 17:32

    (This article was first published on Gianluca Baio's blog, and kindly contributed to R-bloggers)

    Recently, I’ve been doing a lot of work on the beta version of BCEA (I was after all born in Agrigento $-$ in the picture to the left $-$, which is a Greek city, so a beta version sounds about right…). 

    The new version is only available as a beta-release from our GitHub repository – usual ways to install it are through the devtools package.

    There aren’t very many changes from the current CRAN version, although the one thing I did change is kind of big. In fact, I’ve embedded the web-app functionalities within the package. So, it is now possible to launch the web-app from the current R session using the new function BCEAweb. This takes as arguments three inputs: a matrix e containing $S$ simulations for the measures of effectiveness computed for the $T$ interventions; a matrix c containing the simulations for the measures of costs; and a data frame or matrix containing simulations for the model parameters. 

    In fact, none of the inputs is required and the user can actually launch an empty web-app, in which the inputs can be uploaded, say, from a spreadsheet (there are in fact other formats available).

    I think the web-app facility is not necessary when you’ve gone through the trouble of actually installing the R package and you’re obviously using it from R. But it’s helpful, nonetheless, for example in terms of producing some standard output (perhaps even more than the actual package $-$ which I think is more flexible) and of reporting, with the cool facility based on pandoc.

    This means there are a few more packages “suggested” on installation and potentially a longer compilation time for the package $-$ but nothing major. The new version is under testing but I may be able to release it on CRAN soon-ish… And there are other cool things we’re playing around (the links here give all the details!).

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: Gianluca Baio's blog. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    Scale up your parallel R workloads with containers and doAzureParallel

    Tue, 11/21/2017 - 17:30

    (This article was first published on Revolutions, and kindly contributed to R-bloggers)

    by JS Tan (Program Manager, Microsoft)

    The R language is by and far the most popular statistical language, and has seen massive adoption in both academia and industry. In our new data-centric economy, the models and algorithms that data scientists build in R are not just being used for research and experimentation. They are now also being deployed into production environments, and directly into products themselves.

    However, taking your workload in R and deploying it at production capacity, and at scale, is no trivial matter.  Because of R's rich and robust package ecosystem, and the many versions of R, reproducing the environment of your local machine in a production setting can be challenging. Let alone ensuring your model's reproducibility!

    This is why using containers is extremely important when it comes to operationalizing your R workloads. I'm happy to announce that the doAzureParallel package, powered by Azure Batch, now supports fully containerized deployments. With this migration, doAzureParallel will not only help you scale out your workloads, but will also do it in a completely containerized fashion, letting your bypass the complexities of dealing with inconsistent environments. Now that doAzureParallel runs on containers, we can ensure a consistent immutable runtime while handling custom R versions, environments, and packages.

    By default, the container used in doAzureParallel is the 'rocker/tidyverse:latest' container that is developed and maintained as part of the rocker project. For most cases, and especially for beginners, this image will contain most of what is needed. However, as users become more experienced or have more complex deployment requirements, they may want to change the Docker image that is used, or even build their own. doAzureParallel supports both those options, giving you flexibility (without any compromise on reliability). Configuring the Docker image is easy. Once you know which Docker image you want to use, you can simply specify its location in the cluster configuration and doAzureParallel will just know to use it when provisioning subsequent clusters. More details on configuring your Docker container settings with doAzureParallel are included in the documentation. 

    With this release, we hope to unblock many users who are looking to take their R models, and scale it up in the cloud. To get started with doAzureParallel, visit our Github page. Please give it a try and let us know if you have questions, feedback, or suggestions, or via email at razurebatch@microsoft.com.

    Github (Azure): doAzureParallel

     

    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: Revolutions. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    dplyr and the design effect in survey samples

    Tue, 11/21/2017 - 13:59

    (This article was first published on Data Literacy - The blog of Andrés Gutiérrez, and kindly contributed to R-bloggers)

    Blogdown entry here.

    For those guys like me who are not such R geeks, this trick could be of interest. The package dplyr can be very useful when it comes to data manipulation and you can extract valuable information from a data frame. For example, when using if you want to count how many humans have a particular hair color, you can run the following piece of code:

    library(dplyr)

    starwars %>% filter(species == "Human") %>%
    group_by(hair_color) %>%
    summarise(n = n()) hair_color n auburn 1 auburn, grey 1 auburn, white 1 black 8 blond 3 brown 14 brown, grey 1 grey 1 none 3 white 2

    As a result the former query gives you a data frame and you can use it to make another query. For example, if you want to know the average number of individuals in the data frame you can use the summarise twice:

    library(dplyr)

    starwars %>% filter(species == "Human") %>%
    group_by(hair_color) %>%
    summarise(n = n()) %>%
    summarise(x.b = mean(n)) x.b 3.5

    Now, turning our attention to statistics, it is known that, when dealing with sample surveys, one measure of interest is the design effect defined as

    $Deff \approx 1 + (\bar{m} – 1)\rho$

    where $\bar{m}$ is the average cluster size and $\rho$ is the intraclass correlation coefficient. If you are dealing with survey data and you want to figure out the value of $\bar{m}$ and $\rho$, you can use dplyr. Let’s use the Lucy data of the samplesize4surveys package to show how you can do it.

    library(samplesize4surveys)
    data(Lucy)

    m <- Lucy %>% group_by(Zone) %>%
    summarise(n = n()) %>%
    summarise(m = mean(n))

    rho <- ICC(y = Lucy$Taxes, cl = Lucy$Zone)$ICC

    DEFF <- 1 + (as.integer(m) - 1) * rho
    DEFF
    var vglnk = { key: '949efb41171ac6ec1bf7f206d57e90b8' }; (function(d, t) { var s = d.createElement(t); s.type = 'text/javascript'; s.async = true; s.src = '//cdn.viglink.com/api/vglnk.js'; var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r); }(document, 'script'));

    To leave a comment for the author, please follow the link and comment on their blog: Data Literacy - The blog of Andrés Gutiérrez. R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

    Pages