diff --git a/pes_to_spec/__init__.py b/pes_to_spec/__init__.py index 1547ba67bf4e02c75fff046d2e5627d2481a5b38..d155d94123fbd7800c5e78b3d2a846a599a1b5af 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 af76147dd829aeb057889ccd39a8d16f1a45b394..ba514a836b5056b07a25aab8a6c77aa8346c64a1 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()