From 326fa6610e9fefd5bd130a9a1906fe0a98cdeba1 Mon Sep 17 00:00:00 2001
From: Danilo Ferreira de Lima <danilo.enoque.ferreira.de.lima@xfel.de>
Date: Fri, 17 Feb 2023 14:50:27 +0100
Subject: [PATCH] Using Z-value for the consistency check.

---
 pes_to_spec/__init__.py |  2 +-
 pes_to_spec/model.py    | 15 ++++++++-------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/pes_to_spec/__init__.py b/pes_to_spec/__init__.py
index 1547ba6..d155d94 100644
--- a/pes_to_spec/__init__.py
+++ b/pes_to_spec/__init__.py
@@ -2,4 +2,4 @@
 Estimate high-resolution photon spectrometer data from low-resolution non-invasive measurements.
 """
 
-VERSION = "0.0.4"
+VERSION = "0.0.5"
diff --git a/pes_to_spec/model.py b/pes_to_spec/model.py
index af76147..ba514a8 100644
--- a/pes_to_spec/model.py
+++ b/pes_to_spec/model.py
@@ -772,11 +772,12 @@ class Model(TransformerMixin, BaseEstimator):
                 for ch in channels}
         chi2 = {ch: np.sum(deviation[ch]**2, axis=1, keepdims=True)
                 for ch in channels}
-        cutoff = {ch: scipy.stats.chi2.ppf(0.05, df=deviation[ch].shape[1] - 1)
+        chi2_mu = {ch: scipy.stats.chi2.mean(ndof[ch])
+                   for ch in channels}
+        chi2_sigma = {ch: scipy.stats.chi2.std(ndof[ch])
+                      for ch in channels}
+        return {ch: (chi2[ch] - chi2_mu[ch])/chi2_sigma[ch]
                   for ch in channels}
-        ts = {ch: (chi2[ch] - cutoff[ch])/ndof[ch]
-              for ch in channels}
-        return ts
 
         # checking channel relevance
         #pca_model = self.x_model['pca']
@@ -812,9 +813,9 @@ class Model(TransformerMixin, BaseEstimator):
         deviation = (low_pca - self.x_pca_mean)/self.x_pca_std
         ndof = float(deviation.shape[1] - 1)
         chi2 = np.sum(deviation**2, axis=1, keepdims=True)
-        cutoff = scipy.stats.chi2.ppf(0.05, df=deviation.shape[1] - 1)
-        ts = (chi2 - cutoff)/ndof
-        return ts
+        chi2_mu = scipy.stats.chi2.mean(ndof)
+        chi2_sigma = scipy.stats.chi2.std(ndof)
+        return (chi2 - chi2_mu)/chi2_sigma
         
         #low_pca_rec = pca_model.inverse_transform(low_pca)
         #low_pca_unc = self.x_model['unc'].uncertainty()
-- 
GitLab