I am trying to implement a "light" version of a paper (Hunter, Saini & Zaman 2017), in which the authors build a model capable of predicting the probability that a startup will exit (either by getting acquired or IPO).
Both when it comes to the math and programming, I am in over my head, but I am adamant in understanding what is going on and how to implement the paper myself.
I understand the general idea behind the their model, but there are two things that are unclear to me:
- How is the prediction problem set up? In supervised learning terms, what is the label?
- How should the likelihood function be implemented programatically (preferably in Python)?
I have collected data on several thousand companies, where each row represents a company.
My features include, but are not limited to, sector, investor type, number of founders and founder education. Additionally, I have data about the funding rounds a company has raised. Specifically, I have the announcement dates and the deal size in USD.
I would like to train a model that is able to return predicted probabilities of a given startup's chance of exiting given a feature vector. The authors suggest a Brownian Motion Model to solve this task. They specify it in the following way:
They specify the Data Likelihood like this:
Using this specification, it is possible to figure out 1) what are the labels going into the model, and 2) how can this be implemented with Python?
In relation to 1), for each company, my understanding is that I will need a) the timing between each rounds and b) the set of funding rounds raised.
The authors then proceed to estimate the parameters using a Bayesian approach, but for my purposes that would be slightly overkill, so I believe gradient descent should be able to do the job.