Add Satterthwaite and Kenward-Roger fixed-effect tests

This commit is contained in:
2026-08-13 07:02:10 +08:00
parent 76dd8b1379
commit 8557daecac
14 changed files with 1330 additions and 20 deletions

View File

@@ -0,0 +1,27 @@
#pragma once
#include "spectra_reml/types.hpp"
#include <vector>
namespace spectra::reml {
struct FixedEffectHypothesis {
// Rows are restrictions and columns correspond to beta in design order.
ColMajorMatrix contrast;
// Empty means a zero right-hand side.
std::vector<double> rhs;
};
// Computes coefficient-wise tests and any supplied general linear hypotheses
// at an already fitted REML solution. Inputs must use the same (possibly GRM-
// rotated) coordinate system and phenotype scale as the supplied fit.
[[nodiscard]] FixedEffectInferenceResult infer_fixed_effects_spectral(
const std::vector<double>& y_star, const ColMajorMatrix& x_star,
const std::vector<double>& eigenvalues, const RemlResult& fit,
FixedEffectTestMethod method,
const std::vector<FixedEffectHypothesis>& hypotheses = {},
double rank_tolerance_relative = 1e-10,
double covariance_floor_relative = 1e-12);
} // namespace spectra::reml