configuration/strings/representation.strings.ts

configuration/strings/representation.strings.ts is a file in GovLab Patterns. 135 lines of code and 35 definitions.

export const DISTRIBUTION_STRINGS = {
    complexityExplained: "lower is more regular",
    complexityObserved: "compressibility of the value stream",
    driftExplained: "positive skews recent",
    driftObserved: "per-value position trend over the stream",
    freqExplained(entropy: string): string {
        return `entropy ${entropy} bits`;
    },
    freqObserved(count: string, distinct: string): string {
        return `${count} records over ${distinct} distinct values`;
    },
    predictionExplained(accuracy: string): string {
        return `predicting the mode is right ${accuracy} of the time on held-out history`;
    },
    predictionObserved(mode: string): string {
        return `most likely next value is ${mode}`;
    },
    recencyExplained: "largest gaps are most overdue",
    recencyObserved: "records since each value last appeared",
    seasonalityExplained: "record counts bucketed by month",
    seasonalityObserved(first: string, last: string): string {
        return `${first} to ${last}`;
    },
    temperatureExplained: "positive deviation runs hot",
    temperatureObserved: "recent-window frequency vs baseline",
    uniformDeparts: "departs from uniform",
    uniformExplained(p: string, verdict: string): string {
        return `p=${p}: ${verdict}`;
    },
    uniformObserved(chiSquare: string, dof: string): string {
        return `chi-square ${chiSquare} on ${dof} dof`;
    },
    uniformUniform: "consistent with a uniform null",
} as const;

export const VECTOR_STRINGS = {
    anomalyExplained(count: string): string {
        return `${count} beyond an independence null`;
    },
    anomalyObserved: "z-scored extreme values",
    autocorBeyond: "beyond chance",
    autocorExplained(verdict: string, p: string): string {
        return `${verdict} vs an independence null (p=${p})`;
    },
    autocorObserved: "first-lag autocorrelation",
    autocorWithin: "within chance",
    distributionExplained(min: string, max: string): string {
        return `range ${min} to ${max}`;
    },
    distributionObserved(mean: string, sd: string): string {
        return `mean ${mean}, sd ${sd}`;
    },
} as const;

export const SEQUENCE_STRINGS = {
    predictionExplained(accuracy: string): string {
        return `Markov next-state prediction is right ${accuracy} of the time on held-out history`;
    },
    predictionObserved(last: string, next: string): string {
        return `after ${last}, the next value is most likely ${next}`;
    },
    runsExplained: "distribution of consecutive-repeat run lengths",
    runsObserved(mean: string, longest: string): string {
        return `mean run ${mean}, longest ${longest}`;
    },
    transitionsExplained(verdict: string, p: string): string {
        return `sequence ${verdict} vs an independence null (p=${p})`;
    },
    transitionsHasMemory: "has memory",
    transitionsMemoryless: "is memoryless",
    transitionsObserved(ratio: string): string {
        return `change ratio ${ratio}`;
    },
} as const;

export const GRID_STRINGS = {
    densityExplained(cell: string, count: string): string {
        return `densest cell ${cell} (${count})`;
    },
    densityObserved(points: string, cells: string): string {
        return `${points} points over ${cells} cells`;
    },
} as const;

export const TREE_STRINGS = {
    compositionExplained: "most frequent keys and leaf value types",
    compositionObserved(keys: string, leaves: string): string {
        return `${keys} distinct keys over ${leaves} leaves`;
    },
    structureExplained(shapes: string, records: string): string {
        return `${shapes} distinct shapes over ${records} records`;
    },
    structureObserved(depth: string, branching: string): string {
        return `depth ${depth}, branching ${branching}`;
    },
} as const;

export const GRAPH_STRINGS = {
    combinatoricsExplained(rate: string): string {
        return `repeat rate ${rate}`;
    },
    combinatoricsObserved(sets: string): string {
        return `${sets} distinct member-sets`;
    },
    compositionExplained(ratio: string): string {
        return `high-half ratio ${ratio}`;
    },
    compositionObserved(ratio: string): string {
        return `odd ratio ${ratio}`;
    },
    cooccurrenceExplained: "most frequent co-occurring pairs",
    cooccurrenceObserved(members: string, degree: string): string {
        return `${members} members, mean degree ${degree}`;
    },
    liftExplained: "lift above the independence baseline is over-represented",
    liftObserved: "co-occurrence vs an independence null",
    membersDepart: "depart from uniform",
    membersUniform: "consistent with uniform",
    orderedExplained(symmetry: string): string {
        return `symmetry ${symmetry}`;
    },
    orderedObserved(adjacency: string): string {
        return `adjacency ${adjacency}`;
    },
    positionalExplained: "recurring consecutive-position patterns",
    positionalObserved: "modal value at each list position",
    uniformityExplained(verdict: string): string {
        return `members ${verdict}`;
    },
    uniformityObserved(chiSquare: string, dof: string): string {
        return `chi-square ${chiSquare} on ${dof} dof`;
    },
} as const;

export const NULL_MODEL_LABELS = {
    autocorrelation: "autocorrelation-independence",
    memberUniformity: "member-uniformity",
    transition: "transition-independence",
    uniformity: "uniformity",
} as const;

export const PREDICTION_METHODS = { markov: "held-out Markov", mode: "held-out mode" } as const;