taguchi
Version:
A TypeScript package for implementing Taguchi Method design of experiments
59 lines (58 loc) • 1.62 kB
TypeScript
export type Factor = {
name: string;
levels: any[];
};
export type ExperimentResult = {
factors: Record<string, any>;
result: number;
};
export type OrthogonalArrayType = 'L4' | 'L8' | 'L9' | 'L16' | 'L18';
export declare enum SNRatioType {
LARGER_IS_BETTER = "LARGER_IS_BETTER",
SMALLER_IS_BETTER = "SMALLER_IS_BETTER",
NOMINAL_IS_BEST = "NOMINAL_IS_BEST"
}
export interface TaguchiConfig {
type: OrthogonalArrayType;
factors: Record<string, any[]>;
snRatioType: SNRatioType;
targetValue?: number;
poolingThreshold?: number;
}
export type AnalysisResult = {
optimalLevels: Record<string, number>;
snRatios: Record<string, number[]>;
mainEffects: Record<string, number[]>;
contributions: Record<string, number>;
variance: Record<string, {
ss: number;
df: number;
ms: number;
f: number;
contribution: number;
confidenceInterval?: [number, number];
isPooled?: boolean;
}>;
error?: {
ss: number;
df: number;
ms: number;
pooledFactors: string[];
};
};
export declare class Taguchi {
private factors;
private orthogonalArray;
private snRatioType;
private targetValue?;
private poolingThreshold;
private error?;
constructor(config: TaguchiConfig);
private validateArrayType;
generateExperiments(): Array<Record<string, any>>;
private calculateSNRatio;
private calculateConfidenceInterval;
private calculateMainEffects;
private calculateANOVA;
analyzeResults(results: ExperimentResult[]): AnalysisResult;
}