Predicting Startup performance using Logistic regression
By: Xiaoxiang Ma
Tags: Logistic Regression, Machine Learning, Startup, Data Science, Towards Data Science

Here are my jupyter notebooks from scraping to modeling in case you are interested :)

1. Data Acquisition

After researching a few different startup databases, I chose angelist.co for its decently detailed data and its freely accessible nature. Below is an appearance of the site to give you a sense of the data we are dealing with.

Angelist companies page

The above page features a huge amount of startup companies, and for each startup, the following data is presented:

Time joined (Month and year when startup joined angelist database)

Location of startup

The market the startup is in (E-Commerce, Healthcare, B2B, SaaS, etc…)

Employee size (1–10, 11–50, 51–200, etc…)

Current startup stage (Seed, Series A, … , IPO, Acquired)

Total dollars raised

I wrote a web scraper to acquire the above data, randomly sampling 4260 unique startups from Angelist. Below is a snippet of the data I scraped.

Table 1: Scraped data

Evaluation Metric

It bugged me whether to frame this as a regression problem to predict some dollar value or as a classification between “good” and “not good” startups. If it is a classification problem, then we need some measure of good and not good. I was inspired by a study by TechCrunch regarding the fundraising impact of one round on the next.

We see in the below chart, the probability of raising Series A is highest when companies raised 2 to 2.5 million in pre-series A. Therefore a seed-stage company that raised $2M should have a higher chance of survival than one that raised less than $2M. Hence, our seed-stage model will use $2M as a threshold to evaluate which goodness of companies.

Between $0 raised and somewhere in the $2.00-$2.50 million range, each half-million dollar chunk of pre-Series A financing raised resulted in a marginal increase in the likelihood of raising a Series A round, at least for those companies that raised pre-Series A funding between 2003 and 2012. After that $2.5 million mark, there was no marginal benefit to raising more money from Seed, angel and other pre-Series A investors, at least in terms of companies’ chances of raising a B round.

The probability of raising Series B is a lot flatter among different Series A funding. The fundraising amount has less of an impact on advancing to the next stage. Yet, we still see a spike near $12M, so we would follow the same logic previously and use $12M as a threshold to evaluate the goodness of startups.

we find that the rate of Series B fundraising success remains relatively flat with only slight variations from the average. This indicates that, for one reason or another, the amount of money raised prior to Series B doesn’t have a significant impact, most of the time, on a company’s ability to raise a Series B round.

Data postprocessing

After correcting the data types and cleaning repeated rows/special characters, the following processing logic is applied to create a table ready for training.

The raw data columns “location” and “market” are one-hot encoded for machine learning.

“years” is created to represent the number of years since the time joined angelist.

“size_numeric” is created to convert ordinal data to a numeric data (By choosing the midpoint of size ranges).

“raised_2mil” and “raised_12mil” are binary outcome variables we are trying to predict for seed and series A startups respectively.

Filtered stage by “seed” and “series A” and had two datasets ready for modeling.

A screenshot of the seed-stage companies dataframe is included below. All variables except size_numeric and years are binary 1/0 to represent whether that startup meets the location/market criterion.