java计算方差、标准差(均方差)

java计算标准差思路

 1  //方差s^2=[(x1-x)^2 +...(xn-x)^2]/n 或者s^2=[(x1-x)^2 +...(xn-x)^2]/(n-1)
 2     public static double Variance(double[] x) {
 3         int m=x.length;
 4         double sum=0;
 5         for(int i=0;i<m;i++){//求和
 6             sum+=x[i];
 7         }
 8         double dAve=sum/m;//求平均值
 9         double dVar=0;
10         for(int i=0;i<m;i++){//求方差
11             dVar+=(x[i]-dAve)*(x[i]-dAve);
12         }
13         return dVar/m;
14     }
15
16     //标准差σ=sqrt(s^2)
17     public static double StandardDiviation(double[] x) {
18         int m=x.length;
19         double sum=0;
20         for(int i=0;i<m;i++){//求和
21             sum+=x[i];
22         }
23         double dAve=sum/m;//求平均值
24         double dVar=0;
25         for(int i=0;i<m;i++){//求方差
26             dVar+=(x[i]-dAve)*(x[i]-dAve);
27         }
28                 //reture Math.sqrt(dVar/(m-1));
29         return Math.sqrt(dVar/m);
30     }
 1 //BigDecimal 的sqrt方法
 2   private static BigDecimal sqrt(BigDecimal num) {
 3         if (num.compareTo(BigDecimal.ZERO) < 0) {
 4             return BigDecimal.ZERO;
 5         }
 6
 7         BigDecimal x = num.divide(new BigDecimal("2"), MathContext.DECIMAL128);
 8         while (x.subtract(x = sqrtIteration(x, num)).abs().compareTo(new BigDecimal("0.0000000000000000000001")) > 0) ;
 9         return x;
10     }
11
12     private static BigDecimal sqrtIteration(BigDecimal x, BigDecimal n) {
13         return x.add(n.divide(x, MathContext.DECIMAL128)).divide(new BigDecimal("2"), MathContext.DECIMAL128);
14     }

原文地址:https://www.cnblogs.com/lpp-xjj/p/11417408.html

时间: 2024-10-09 08:53:29

java计算方差、标准差(均方差)的相关文章

2.13 描述性统计(平均数,中位数,中数,数据的离散度(极差,平均绝对偏差,方差标准差))

统计分析包括描述统计和推断统计两个部分. 对已有的数据整理,计算数据指标,平均数,中位数,中数,数据的离散度(极差,平均绝对偏差,方差标准差)是最常用的技术手段,也是最容易的. # hanbb # come on!!! import tushare as ts import matplotlib.pyplot as plt # 股票数据获取 data_zglt = ts.get_hist_data('600050',start='2015-06-23',end='2017-11-16') dat

Java 计算中英文长度的若干种方法

在项目开发中经常碰到到输入字符的校验,特别是中英文混合在一起的校验.而为了满足校验的需求,有时需要计算出中英文的长度. 本文将通过几种常用的方法实现长度的计算: <span style="font-size:18px;">import java.io.UnsupportedEncodingException; /** * 中英文校验的处理 * @author a123demi * */ public class EnChValidate { public static vo

用Java计算某个日期100天后的日期

用Java计算日期时间,首先考虑到时间类,Java中提供的和时间日期相关的类里,有一个Calendar类,可以获取某个时间日期. 计算某个日期100天后的日期,思路如下: 1.先设定时间,例如2017年1月1日: 2.在给定日期的天数上增加100: 具体代码如下: 1 /* 2 * 1.先给定一个时间,例如2017年1月1日 3 */ 4 Calendar cld = Calendar.getInstance(); 5 cld.set(Calendar.YEAR, 2017); 6 cld.se

java计算两日期间隔小时或分钟

public static void main(String[] args) {        try {            long min = dateDiff("2014-05-27 13:30:00","2014-05-27 13:00:00","yyyy-MM-dd HH:mm:ss");            System.out.println("---------相隔分钟数: "+min);        

python.numpy.std()计算矩阵标准差

1 >>> a = np.array([[1, 2], [3, 4]]) 2 >>> np.std(a) # 计算全局标准差 3 1.1180339887498949 4 >>> np.std(a, axis=0) # axis=0计算每一列的标准差 5 array([ 1., 1.]) 6 >>> np.std(a, axis=1) # 计算每一行的标准差 7 array([ 0.5, 0.5]) 原文地址:https://www.

【转】Java计算文件的hash值

原文地址:http://blog.csdn.net/qq_25646191/article/details/78863110 如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件hash又叫文件签名,文件中哪怕一个bit位被改变了,文件hash就会不同. 比较常用的文件hash算法有MD5和SHA-1.我用的是MD5算法,java中,计算MD5可以用MessageDigest这个类. 下面是代码: [java] view plain copy package com.test;

Java 计算n对应的二进制位上有几个1,分别在什么位置

Java计算n的二进制位上有几个1,分别在什么位置 public List<Integer> getBinOneCount(int n){ List<Integer> ar = new ArrayList<>(); int index=0; while(n>0){ int x=n&1<<index; if(x!=0){ ar.add(index+1); n=n-(1<<index); } index++; } return ar;

C语言之文件操作07——读取文件数据并计算均值方差标准差

//文件 /* =============================================================== 题目:从文本文件"high.txt"中取出运动员的身高数据,并计算平均值,方差和标准差! =============================================================== */ #include<stdio.h> #include <math.h> #define hh pr

使用oracle来计算方差及标准差

/* Formatted on 5/24/2012 4:15:58 PM (QP5 v5.149.1003.31008) */ SELECT deptno,       ename,                     --st_name || ' ' || last_name employee_name,       hiredate,      sal,        STDDEV (sal) OVER (PARTITION BY deptno ORDER BY hiredate) AS