You.i Engine adds Service for Roku Scene Graph 7.6

You.i TV logo

You.i Engine Now Powers Apps on latest Roku SceneGraph technology

  • Extends single-codebase portability to most Roku apparatus

OTTAWA, ON — You.i TV today extended the cross-platform reach of its own video experience platform by adding support for Roku Scene Graph 7.6. Apps built on You.i Engine to Roku support the standard monetization and discovery characteristics of the system including deep linking, in-app purchasing, analytics, along with Roku Advertising Framework (RAF). The SVOD support from Turner Classic Movies, Filmstruck, is first-to-market on this solution with only an 86KB BrightScript footprint.

You.i Engine now powers immersive user experiences over all Roku apparatus. This is in addition to You.i Engine’s existing list of supported platforms, such as iOS, Android, tvOS, Android TV, Amazon Fire TV, Xbox, Playstation, Tizen TV, Chromecast and much more — all from a single codebase.

With a focus on portability and simplicity of installation, You.i Engine provides a foundation basis for integrations of vital back-end systems and app maintenance, enabling development tools to concentrate on attributes and important platform nuances.

“By enabling brands to expand their adventures to a market top platform such as Roku, You.i Engine is assisting to guarantee expertise parity across platforms” states Jason Flick, Co-Founder and CEO of both You.i TV. “This implies content providers don’t need to think twice when seeking to attain maximum advantage.”

Creating an expository graph

(This article was originally published at Simply Statistics, also syndicated at StatsBlogs.)

I am co-teaching a information science course in Johns Hopkins with John Muschelli. I gave the lectures on EDA and that he just gave a lecture on the best way to create an “expository graph”. You make for yourself only to try to know a data set when we teach the course an graph is the type of chart. An chart is one where you are currently trying to communicate data.

It’s usually simple, with no axes, legends colours, or other attempt to ensure it is transparent, understandable and fairly when you are making an exploratory graph. John has a great blog post on the best way to build up a figure that is expository.

Recently I gave a talk at McGill University and had to create a plot for the talk. I figured one more illustration would be better for all, so I thought I’d go through my process here.

I wished to demonstrate that the supply in the package. So first I loaded the information:

library(tidypvals)
Library(ggridges)
## Loading required package: ggplot2
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:bottom':
## 
##     intersect, setdiff, setequal, marriage
library(ggplot2)
Library(forcats)
information(allp)

I knew I needed to utilize the package so I read the docs and began with the version:

Allp %>% 
  Ggplot(aes(x = pvalue, y = area)) +
    geom_density_ridges()
## Picking combined bandwidth of 0.00413

Right away I saw there were several issues here. First of all a greater than one should not be in there, so that was a error. I don’t like that you can’t really find the values because most of the activity is near zero.

So let’s fix the x-axis a bit. I spent a few minutes fiddling and decided I only wished to find the values between 0 and 0.25.

Allp %>% 
  Ggplot(aes(x = pvalue, y = area)) +
    geom_density_ridges() + 
  xlim(c(0,0.25))
## Selecting joint bandwidth of 0.00401
## Warning: Removed 359521 rows comprising non-finite values
## (stat_density_ridges).  

Okay that is better, however I don’t really like the grey background so let us select a background color that is different

Allp %>% 
  Ggplot(aes(x = pvalue, y = area)) +
    geom_density_ridges() + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE)
## Selecting joint bandwidth of 0.00401
## Warning: Removed 359521 rows comprising non-finite values
## (stat_density_ridges).  

That is a bit more pretty, however we see that area is occasionally NA so we will need to remove those values.

Allp %>% 
  Filter(! Is.na(area)) %>%
  ggplot(aes(x = pvalue, y = area)) +
    geom_density_ridges() + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE)
## Selecting joint bandwidth of 0.00404
## Warning: Removed 349629 rows comprising non-finite values
## (stat_density_ridges).  

And actually the density plots are a little weird for p-values, lets see if we could turn them in to something a bit more like a histogram, which I think fits this information type. To accomplish this we must modify the parameters from geom_density_ridges.

Allp %>% 
  Filter(! Is.na(area)) %>%
  ggplot(aes(x = pvalue, y = area)) +
    geom_density_ridges(stat = "binline") + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE)
## 'stat_binline()' using 'bins = 30'.  Pick at value with 'binwidth'.  
## Warning: Removed 349629 rows comprising non-finite values (stat_binline).  

Okay but I think it would look let us up the Amount of bins

Allp %>% 
  Filter(! Is.na(area)) %>%
  ggplot(aes(x = pvalue, y = area)) +
    geom_density_ridges(stat = "binline",bins=50) + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE)
## Warning: Removed 349629 rows comprising non-finite values (stat_binline).  

Okay but as folks have pointed out the spike in 0.05 is because of censoring (p-values reported such as \(P < 0.05\)). So let’s break it down by operator.

Allp %>% 
  Filter(! Is.na(area)) %>%
  ggplot(aes(x = pvalue, y = area,fill=operator)) +
    geom_density_ridges(stat = "binline",bins=50) + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE)
## Warning: Removed 349629 rows comprising non-finite values (stat_binline).  

Okay there are not that higher than p-values also it makes the plot cluttered drop those

Allp %>% 
  Filter(! Is.na(area)) %>%
  filter(operator !) = "greaterthan") %>%
  ggplot(aes(x = pvalue, y = area,fill=operator)) +
    geom_density_ridges(stat = "binline",bins=50) + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE)
## Warning: Removed 332965 rows comprising non-finite values (stat_binline).  

The histograms overlap a bit so let us alpha blend the colours.

Allp %>% 
  Filter(! Is.na(area)) %>%
  filter(operator !) = "greaterthan") %>%
  ggplot(aes(x = pvalue, y = area,fill=operator)) +
    geom_density_ridges(stat = "binline",
                        bins=50,alpha=0.25) + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE)
## Warning: Removed 332965 rows comprising non-finite values (stat_binline).  

There’s some funkiness in how the histogram bins have been calculated so I went into the net and figured out I had to set the boundary at 0 and then make the bins be closed on the rightside.

Allp %>% 
  Filter(! Is.na(area)) %>%
  filter(operator !) = "greaterthan") %p%
  ggplot(aes(x = pvalue, y = area,fill=operator)) +
    geom_density_ridges(stat = "binline",
                        bins=50,alpha=0.25,
                        boundary=0,closed="right") + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE)
## Warning: Removed 332965 rows comprising non-finite values (stat_binline).  

We make sure by making use of the expand argument, that there is not wasted space on the y-axis.

Allp %>% 
  Filter(! Is.na(area)) %>%
  filter(operator !) = "greaterthan") %>%
  ggplot(aes(x = pvalue, y = area,fill=operator)) +
    geom_density_ridges(stat = "binline",
                        bins=50,alpha=0.25,
                        boundary=0,closed="right") + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE) + 
  scale_y_discrete(expand=c(0,0))
## Warning: Removed 332965 rows comprising non-finite values (stat_binline).  

Remove the baseline out of the storyline for ggridges coolness that is authentic

Allp %>% 
  Filter(! Is.na(area)) %>%
  filter(operator !) = "greaterthan") %>%
  ggplot(aes(x = pvalue, y = area,fill=operator)) +
    geom_density_ridges(stat = "binline",
                        bins=50,alpha=0.25,
                        boundary=0,closed="right",
                        draw_baseline=FALSE) + 
  xlim(c(0,0.25)) + 
  theme_ridges(grid = FALSE) + 
  scale_y_discrete(expand=c(0,0))
## Warning: Removed 332965 rows comprising non-finite values (stat_binline).  

That is definitely not a perfect plot, but it worked for the talk and was at least able to convey a couple of the major things (about variation by discipline, variant by operator, and spikes at critical values).

If I had been moving beyond the conversation I boost the dimensions of the storyline or decrease the amount of subjects displayed. I make the bin width smaller and I’d add a name. I would also probably tidy up the “greaterthan” and also “lessthan” to be “Greater than” and “Less than”.

Regardless, I’m constantly surprised just how much work it takes to go from an exploratory plot I am only looking at myself into a I’d reveal to other people.

Please comment on the content here:

The post Making an expository chart for a talk appeared first on All About Statistics.

Indians-Yankees win expectancy graph tells quite a story

There are plenty of strategies. The top will be to see live, naturally, but sometimes rsquo & that; s not an alternative. Sometimes you don’you might not even have the ability to delight in a game that is condensed or highlights, and t need to time to sit down and watch it afterwards. Where FanGraphs & rsquo; triumph expectancy graph comes from that & rsquo; s. If you want a quick glimpse they’re a temporary alternative. And also the one from last night’s bonkers Game 2 of the ALDS tells the narrative.

If you aren’t familiar with the triumph expectancy graphs, or win expectancy, FanGraphs themselves and possess some explanations of exactly how everything functions. These FanGraphs graphs’ gist is each time someone advances a foundation, that: Each time that the inning varies, each time a staff records an outside, and each time that the team scores it graphs the present win expectancy for each team. For simplicity of these graphs, the away team is zero percentage, or the bottom of the graphs, along with the home team is 100 percent, or even on the top.

They come out pretty straightforward. Take, for example, the graphs from each playoff game last night besides Indians-Yankees. There were moments but for the large part until the game was finished the triumph expectancy started from the leadership of one team and continued that way.

And then this hapened:

Mama, woah.

The first big drop for the Indians arrived when Aaron Hicks concentrated his inner Minnesota Twin origins and ruined everything great in the world using a three-run homer. That was sufficient to drop the Indians’ triumph expectancy from 50.8 per cent — if Bird singled in prior at-bat — to a mere 23.0 percentage. A 27.8 percentage change is enormous, and it was really the fourth largest of the game after the game-winning struck in extra innings that took it out of 50 percent to a 100 percentage in the Tribe’s favor, Jay Bruce’s game-tying solo shot at the eighth that transferred the needle 30.1 per cent, along with a TOOTBLAN in extra innings.

Francisco Lindor’s cherished grand slam, that brought the Indians in a rush from the middle innings, was “only” a 25.1 percentage change in triumph expectancy — from 7.7 percentage when Joe Girardi dismissed the pleas of his catcher and allow Lonnie Chisenhall stroll to first base, to 32.8 percent if Lindor caused an earthquake at the corner of Carnegie and Ontario.

Another interesting section of this graph, that rsquo we &;ll telephone Erik’s Valley of Sadness, is that little teeny dip into the inning. You might recall that as the minute Erik Gonzalez sailed a routine throw from third base all the way to the camera nicely behind first floor. That dropped the triumph expectancy for the Indians a full 28.4 per cent, the largest of the game, because giving the opponent a runner at second with no obligations is dangerous business in extras. Fortunately Ronaldo Torreyes gave it all right back along with his TOOTBLAN and 360 no range at the hands of Yan Gomes.

Studying a graph after a game might not be the most exciting approach to witness a baseball game, but if you want to sit back and digest what the hell you just watched, it doesn’t get much better than the one generate by the Tribe last night.

Eveningtime ’s absolutely special.