首页 > 编程知识 正文

计算方差和标准差平均值要取整数吗,方差和标准差如何计算

时间:2023-05-06 20:38:17 阅读:232963 作者:3706

import java.text.DecimalFormat;import java.util.Random;/** * 计算方差和标准差 * * 方差:方差是各个数据与平均数之差的平方的平均数 * * 标准差:各数据偏离平均数的距离(离均差)的平均数,它是离差平方和平均后的方根。用σ表示。 * 因此,标准差也是一种平均数 * 标准差是方差的算术平方根。 * * @author: zzz * @date: 2018-10-22 13:19 */public class VarianceAndStandardDiviation { //Double.MAX_VALUE;//Double类型的最大值,太大的double值,相乘会达到无穷大 private final static double dmax = 999; //Double类型的最小值 private final static double dmin = Double.MIN_VALUE; //假设求取100个doubl数的方差和标准差 private final static int n = 100; public static void main(String[] args) { Random random = new Random(); double[] x = new double[n]; //随机生成n个double数 for (int i = 0; i < n; i++) { x[i] = Double.valueOf(Math.floor(random.nextDouble() * (dmax - dmin))); System.out.println(x[i]); } //设置doubl字符串输出格式,不以科学计数法输出 DecimalFormat df = new DecimalFormat("#,##0.00");//格式化设置 //计算方差 double dV = Variance(x); System.out.println("方差=" + df.format(dV)); //计算标准差 double dS = StandardDiviation(x); System.out.println("标准差=" + df.format(dS)); } //方差s^2=[(x1-x)^2 +...(xn-x)^2]/n public static double Variance(double[] x) { int m = x.length; double sum = 0; //求和 for (int i = 0; i < m; i++) { sum += x[i]; } //求平均值 double dAve = sum / m; double dVar = 0; //求方差 for (int i = 0; i < m; i++) { dVar += (x[i] - dAve) * (x[i] - dAve); } return dVar / m; } //标准差σ=sqrt(s^2) public static double StandardDiviation(double[] x) { return Math.sqrt(Variance(x)); }}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。