java - z 分数和 Java 中的 p 值(生存函数)

标签 java scipy p-value apache-commons-math

以下代码的 java 等效项是什么?

import scipy
from scipy.stats import zscore
zlist = [9967,11281,10752,10576,2366,11882,11798,]
z = zscore(zlist)
for e in z:
    print e,scipy.stats.norm.sf(abs(e))

最佳答案

答案是:

private void run() {
    double[] values = {9967,11281,10752,10576,2366,11882,11798};
    double variance = StatUtils.populationVariance(values);
    double sd = Math.sqrt(variance);
    double mean = StatUtils.mean(values);
    NormalDistribution nd = new NormalDistribution();
    for ( double value: values ) {
        double stdscore = (value-mean)/sd;
        double sf = 1.0 - nd.cumulativeProbability(Math.abs(stdscore));
        System.out.println("" + stdscore + " " + sf);
    }
}

这是使用 The Apache Commons Mathematics Library

编辑:或者,甚至更好:

import java.util.function.BiConsumer;

import org.apache.commons.math3.distribution.NormalDistribution;
import org.apache.commons.math3.distribution.RealDistribution;
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;

public class ZScore {
    public static void main(String[] args) {
        ZScore program = new ZScore();
        double[] values = {9967,11281,10752,10576,2366,11882,11798};
        program.computeZScoreAndSurvivalFunctions(
            new DescriptiveStatistics(values), 
            new NormalDistribution(), 
            (zscore, sf)->System.out.println(""+zscore+" "+sf)
        );
    }

    private void computeZScoreAndSurvivalFunctions(
        DescriptiveStatistics ds, 
        RealDistribution dist, 
        BiConsumer<Double, Double> consumer
    ) {
        double variance = ds.getPopulationVariance();
        double sd = Math.sqrt(variance);
        double mean = ds.getMean();
        for ( int index = 0; index < ds.getN(); ++index) {
            double zscore = (ds.getElement(index)-mean)/sd;
            double sf = 1.0 - dist.cumulativeProbability(Math.abs(zscore));
            consumer.accept(zscore, sf);
        }
    }
}

关于java - z 分数和 Java 中的 p 值(生存函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51772174/

相关文章:

java - 在另一个实例变量中使用 Autowiring 参数

java - Apache commons 中的 FileUtils 出现问题

java - JDBI org.skife.jdbi.v2.exceptions.UnableToCreateStatementException : Exception while binding

python - 开源 Enthought Python 替代方案

Java 8 DatePicker 和可编辑的 ComboBox 行为在 8u51 和 8u60 之间发生变化

python - 使用 ValueError : A 2-dimensional array must be passed 定义复数列表中的最短对

r - 使用 t.test 时出错 - 'x' 观察值不够

r - 按显着性 P 值对变量进行子集化

c# - C# 中是否有任何函数返回与卡方拟合优度检验相关的 p 值?

python - scipy 相当于 matlab 的 `mle` 函数是什么?