Download finite_stats.py from nur-dev/unionmind-predictive-representations: direct link, hf CLI and curl.
- Browser
- Download file 1.21 kB
-
https://huggingface.co/nur-dev/unionmind-predictive-representations/resolve/main/finite_stats.py
- Command line
-
hf download hf://nur-dev/unionmind-predictive-representations/finite_stats.py
-
curl -L -o finite_stats.py https://huggingface.co/nur-dev/unionmind-predictive-representations/resolve/main/finite_stats.py
1.21 kB
| """Finite reference distributions for verification, never model selection.""" | |
| import torch | |
| def inverse_empirical_cdf(values,probabilities): | |
| """Quantiles of a finite uniform law; no interpolation between support points.""" | |
| assert values.ndim==1 and probabilities.ndim==1 and len(values)>0 | |
| assert values.device.type=='cuda' and probabilities.device==values.device | |
| assert torch.all((probabilities>=0)&(probabilities<=1)) | |
| ordered=values.sort().values | |
| indices=torch.ceil(probabilities*len(values)).long().clamp(1,len(values))-1 | |
| return ordered[indices] | |
| def sign_flip_pvalues(daily_differences): | |
| """Enumerate the exact sign-symmetric null for independent paired days.""" | |
| assert daily_differences.ndim==1 and daily_differences.device.type=='cuda' | |
| n=len(daily_differences) | |
| code=torch.arange(2**n,device=daily_differences.device) | |
| bit=torch.arange(n,device=daily_differences.device) | |
| signs=(((code[:,None]>>bit)&1)*2-1).to(daily_differences.dtype) | |
| simulated=(signs*daily_differences).mean(1);observed=daily_differences.mean() | |
| one=(simulated>=observed-1e-12).double().mean() | |
| two=(simulated.abs()>=observed.abs()-1e-12).double().mean() | |
| return one,two | |