File size: 620 Bytes
fc329a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"""Base DGP interface."""
from abc import ABC, abstractmethod
from dataclasses import dataclass
import numpy as np


@dataclass
class DGPSample:
    """Standard output of any DGP.
    
    X: covariates (n, d)
    Y: true simplex responses (n, K)
    U: predictions f̂(X) (n, K)
    R: residuals d(Y, U) (n,)
    sigma_true: oracle local scale at U (n,), None if unavailable
    """
    X: np.ndarray
    Y: np.ndarray
    U: np.ndarray
    R: np.ndarray
    sigma_true: np.ndarray | None = None


class BaseDGP(ABC):
    @abstractmethod
    def sample(self, n: int, rng: np.random.Generator) -> DGPSample:
        ...