5 ms·
These charts aren't great. A single survival curve could display all of that data, and account for the different starting times of the startups[1]. But it looks
by Gatsky 12y ago
These charts aren't great. A single survival curve could display all of that data, and account for the different starting times of the startups[1]. But it looks like Datawrapper can't do survival curves. Also, a 3 section pie chart is a waste of space.
[1] http://en.wikipedia.org/wiki/Kaplan%E2%80%93Meier_estimator http://en.wikipedia.org/wiki/Kaplan%E2%80%93Meier_estimator
- seccess 12y agoMy PhD adviser's rule of thumb with pie charts: don't use pie charts.
- taylorbuley 12y agoFlorence Nightingale invented the pie chart to be able to convey medical data visually in a time before other visual devices were invented. They still serve a role, but an argument against them today is that representing two dimensional data in three dimensions can be misleading (such as w/surface area).
- andrioni 12y agoSorry, but did you mean one-dimensional data represented in two dimensions, as in scalars represented through areas?
- taylorbuley 12y agoPie charts can be three-dimensional, but thanks for clearing up what I muddied.
- gwern 12y agoDid someone say... survival analysis‽ Here's some R code to handle the censoring of the data mentioned in OP ("The program’s growth skews the overall stats toward the most recent program entrants–those that have had little chance to either fail, be acquired, or prove their independent staying power."): --- # http://blogs.wsj.com/venturecapital/2014/11/20/techstars-graduates-success-rates-what-the-numbers-show/ # data:application/octet-stream;charset=utf-8,Year%2C2007%2C2008%2C2009%2C2010%2C2011%2C2012%2C2013%2C2014%0AActive%2C2%2C2%2C7%2C15%2C36%2C68%2C121%2C120%0AFailed%2C3%2C4%2C5%2C11%2C9%2C10%2C5%2C0%0AAcquired%2C5%2C4%2C7%2C5%2C14%2C15%2C4%2C1 rates <- read.csv(stdin(),header=TRUE) Year,2007,2008,2009,2010,2011,2012,2013,2014 Active,2,2,7,15,36,68,121,120 Failed,3,4,5,11,9,10,5,0 Acquired,5,4,7,5,14,15,4,1 library(reshape2) rates2 <- melt(rates) colnames(rates2) <- c("Status", "Year", "Count") rates2$Year <- as.integer(substring(as.character(rates2$Year), 2)) startups <- NULL for (i in 1:nrow(rates2)) { startups <- rbind(data.frame(Status = rep(rates2[i,]$Status, rates2[i,]$Count), Year=rep(rates2[i,]$Year, rates2[i,]$Count)), startups) } library(survival) # define startups which have been acquired or failed as dead startups$Alive <- startups$Status == "Active" # define startups in 2014 as 0 years old, etc startups$Age <- 2014 - startups$Year sf <- survfit(Surv(Age, Alive, type="right") ~ 1, data=startups); summary(sf) # time n.risk n.event survival std.err lower 95% CI upper 95% CI # 0 473 120 0.74630 0.020007 0.708099 0.78656 # 1 352 121 0.48976 0.023007 0.446680 0.53699 # 2 222 68 0.33974 0.022007 0.299236 0.38573 # 3 129 36 0.24493 0.020778 0.207412 0.28924 # 4 70 15 0.19245 0.020269 0.156552 0.23657 # 5 39 7 0.15790 0.020407 0.122571 0.20342 # 6 20 2 0.14211 0.021202 0.106083 0.19038 # 7 10 2 0.11369 0.024715 0.074248 0.17409 plot(sf) # https://i.imgur.com/76B7AxN.png --- Since there are no covariates or anything in the provided data, we just get a curve. It looks like a pretty steady decline per year, with half of them 'dying' in the first year. The curve flattens out towards the end, which suggests that there might be some sort of time-varying hazard going on (possibly the accelerator has gotten less picky and the earliest startups were best?). Of course, there's a bigger problem: one might argue that treating 'failed' & 'acquired' the same is painting a misleadingly negative picture - surely acquisitions represent successes? But we can't mark acquired as 'alive' because then they'll never die and then the graph is just of explicit failure... So let's switch to a form of survival analysis which has multiple kinds of deaths, 'competing risks survival analysis' (https://en.wikipedia.org/wiki/Relative_survival); https://en.wikipedia.org/wiki/Relative_survival); we'll treat acquisition as one form of death, failure another kind, and any startups which are 'active' are considered censored (we don't yet know what their fate will be): --- library(cmprsk) sc <- cuminc(startups$Age, startups$Status, cencode="Active"); sc # Estimates and Variances: # $est # 1 2 3 4 5 6 # 1 Acquired 0.0134537767 0.0791545678 0.172799416 0.223444079 0.321616811 0.397350061 # 1 Failed 0.0141745147 0.0579750421 0.118175302 0.229593560 0.299716940 0.375450190 # # $var # 1 2 3 4 5 6 # 1 Acquired 3.62406271e-05 0.000301240943 0.000805565675 0.00118663857 0.00205862260 0.00275961348 # 1 Failed 3.97263451e-05 0.000220342717 0.000570181024 0.00140171794 0.00200661959 0.00272841167 plot(sc, lty=1, color=c(3,2)) # https://i.imgur.com/Tafk9B0.png https://i.imgur.com/Tafk9B0.png --- If we only consider 'failure' as a bad outcome, then this is more helpful than the first survival curve, as we can read off the risk with time easily from the graph or table. This graph is the opposite of before, we're now seeing the cumulative risk over time for each kind of death - eg by 7 years after founding, a startup has roughly 40% chance of having died at some point, roughly 40% chance of having been bought at some point, and just 20% to still be active; given another few years, I think actives would drop to ~0% and it'd be roughly 50/50 - and a half-failure-rate is close to the summary in OP: > Techstars failure rates, at least so far, are a little lower than the industry average, according to estimates from the National Venture Capital Association, which says that overall about 40% of venture-backed companies fail, 40% produce moderate returns, and 20% produce high returns.