Probability Module¶
startup_valuation.probability
¶
Probability theory calculations for valuation under uncertainty.
Chapter 2: Mathematical Foundations — Probability Theory
Classes¶
Functions¶
expected_value_discrete(outcomes, probabilities)
¶
Calculate expected value for a discrete random variable.
Formula: E[X] = Σ xᵢ × P(X = xᵢ)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
outcomes
|
list[float]
|
Possible outcome values (xᵢ). |
required |
probabilities
|
list[float]
|
Probability of each outcome P(X = xᵢ). |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with expected value. |
Example
result = expected_value_discrete([1, 0], [0.3, 0.7]) result.value 0.3
Source code in src/startup_valuation/probability.py
joint_probability(probabilities)
¶
Calculate joint probability of sequential independent events.
Formula: P(total) = Π Pᵢ
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
probabilities
|
list[float]
|
Probability of each sequential event. |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with joint probability. |
Example
result = joint_probability([0.90, 0.70, 0.60, 0.85]) round(result.value, 4) 0.3213
Source code in src/startup_valuation/probability.py
probability_weighted_value(probabilities, values)
¶
Calculate probability-weighted expected value.
Formula: E[V] = Σ pᵢ × Vᵢ
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
probabilities
|
list[float]
|
Probability of each scenario. |
required |
values
|
list[float]
|
Value in each scenario. |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with expected value. |
Example
result = probability_weighted_value([0.20, 0.60, 0.20], [10_000_000, 5_000_000, 1_000_000]) result.value 5200000.0
Source code in src/startup_valuation/probability.py
portfolio_expected_return(probabilities, returns)
¶
Calculate expected return of a VC portfolio.
Formula: E[R] = Σ pᵢ × Rᵢ
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
probabilities
|
list[float]
|
Probability of each return outcome. |
required |
returns
|
list[float]
|
Return multiple for each outcome. |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with expected return. |
Example
result = portfolio_expected_return([0.20, 0.30, 0.20, 0.30], [10, 2, 1, 0]) result.value 2.8
Source code in src/startup_valuation/probability.py
poisson_probability(lambda_, k)
¶
Calculate Poisson probability P(X = k).
Formula: P(X = k) = e^(-λ) × λ^k / k!
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lambda_
|
float
|
Mean rate (λ). |
required |
k
|
int
|
Target count. |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with probability. |
Example
result = poisson_probability(500, 450) round(result.value, 3) 0.011
Source code in src/startup_valuation/probability.py
expected_value_continuous(pdf_func, lower, upper)
¶
Calculate expected value for a continuous random variable.
Formula: E[X] = ∫ x × f(x) dx over [lower, upper]
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pdf_func
|
Callable[[float], float]
|
Probability density function f(x). |
required |
lower
|
float
|
Lower bound of integration. |
required |
upper
|
float
|
Upper bound of integration. |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with expected value. |
Example
import scipy.stats result = expected_value_continuous(scipy_stats.norm(0, 1).pdf, -10, 10) round(result.value, 4) 0.0