Source code for lossmodels.frequency.base

from abc import ABC, abstractmethod
import numpy as np
from ..utils.random import RNGLike


[docs] class FrequencyModel(ABC): """ Base class for all frequency distributions. All frequency models must implement: - sample - mean - variance """
[docs] @abstractmethod def sample(self, size: int = 1, rng: RNGLike = None) -> np.ndarray: """ Generate random samples of claim counts. Parameters ---------- size : int Number of samples Returns ------- np.ndarray Array of claim counts """ pass
[docs] @abstractmethod def mean(self) -> float: """Expected number of claims""" pass
[docs] @abstractmethod def variance(self) -> float: """Variance of number of claims""" pass
[docs] def std(self) -> float: """Standard deviation of claim count""" return np.sqrt(self.variance())
def __repr__(self): return f"{self.__class__.__name__}()"