精华内容
下载资源
问答
  • yantubbs-平均值标准差、变异系数的计算
  • MatLab 求平均值,方差,标准差

    万次阅读 2019-12-10 18:03:15
    MatLab在科学计算中,具有很强大的功能,常用的计算方法是计算一组数据的平均数,标准差,方差。 1.计算一个数组的平均值 使用 mean() 函数 示例1: 输入:a = [ 1 2 3;4 5 6] 输入:mean(a) 输出:[ 2.5,3.5,...

    概述

    MatLab在科学计算中,具有很强大的功能,常用的计算方法是计算一组数据的平均数,标准差,方差。

    1.计算一个数组的平均值

    使用 mean() 函数
    示例1:

    输入:a = [ 1 2 3;4 5 6]
    输入:mean(a)
    输出:[ 2.5,3.5,4.5]
    

    解析:默认是先求得每一列的的和,然后对每一个列求平均值

    示例2:
    输入:mean(mean(a))
    解析:此时所输出的就是整个数组的平均值,需要加以注意

    2.计算一个数组的方差

    示例:

    输入:var(a) % a 采用上面的示例
    输出:[4.5,4.5,4.5]
    解析:依然是求得每一列的方差
    解决方法:将矩阵转换为列向量
    输入:a = [1;2;3;4;5;6]
    输入:var(a)
    输出:[3.500]
    

    3.计算一个数组的标准差

    和计算方差一样,将数组转换为列向量,使用std(a),进行求解

    输入:a = [1;2;3;4;5;6]
    输入:std(a)
    输出:[1.8708]
    
    展开全文
  • 从两组的 n、均值和标准差计算合并的 n、均值和标准差(要计算为N个组(N> 2),请重复N-1次) [npool,meanpool,stdpool] = pooledmeanstd(n1,mean1,std1,n2,mean2,std2) 基于...
  • opencv计算图像的平均值标准差

    千次阅读 2017-09-09 21:12:58
    将Mat类型转为IplImage类型并计算它的均值和标准差,其中frame为Mat类型。IplImage ipl; ipl = IplImage(frame); CvScalar mean, std_dev; cvAvgSdv(&ipl, &mean, &std_dev...cout 该图像的平均值为:" [0] 标准差为:"

    将Mat类型转为IplImage类型并计算它的均值和标准差,其中frame为Mat类型。

    IplImage ipl;
    ipl = IplImage(frame);
    CvScalar mean, std_dev;
    cvAvgSdv(&ipl, &mean, &std_dev);
    cout << "该图像的平均值为:" << mean.val[0] << "\t标准差为:" << std_dev.val[0] << endl;
    展开全文
  • 算法 A 求稳健平均值和稳健标准差

    千次阅读 2021-06-05 22:38:00
    稳健性是估计算法的特点,而不是其产生的估计值的特点,因此严格来说,称由此算法计算平均值标准差是稳健的是不确切的。然而,为避免使用繁琐的术语,“稳健均值”和“稳健标准差”应理解为利用稳健算法计算的...

    文章目录


    本文主要参考 ISO 13528 的附件 C 的 3 条款。

    算法原理

    应用此算法计算得到数据平均值和标准差的稳健值。稳健性是估计算法的特点,而不是其产生的估计值的特点,因此严格来说,称由此算法计算的平均值和标准差是稳健的是不确切的。然而,为避免使用繁琐的术语,“稳健均值”和“稳健标准差”应理解为利用稳健算法计算的总体均值和总体标准差的均值估计。

    设数据为 x i , i ∈ ( 1 , 2 , ⋯   , n ) x_i, i\in(1,2,\cdots,n) xi,i(1,2,,n),记稳健平均值为 x ∗ , s ∗ x^*, s^* x,s,首先是计算初始值:
    x ∗ = med ⁡ x i s ∗ = 1.483 × med ⁡ ∣ x i − x ∗ ∣ \begin{array}{c} x^{*}=\operatorname{med} x_{i} \\ s^{*}=1.483 \times \operatorname{med}\left|x_{i}-x^{*}\right| \end{array} x=medxis=1.483×medxix
    对每个 x i x_i xi,有:
    x i ∗ = { x ∗ − δ ,  若  x i < x ∗ − δ x ∗ + δ ,  若  x i > x ∗ + δ x i ,  其他  x_{i}^{*}=\left\{\begin{array}{cc} x^{*}-\delta, & \text { 若 } x_{i}<x^{*}-\delta \\ x^{*}+\delta, & \text { 若 } x_{i}>x^{*}+\delta \\ x_{i}, & \text { 其他 } \end{array}\right. xi=xδ,x+δ,xi,  xi<xδ  xi>x+δ 其他 
    其中: δ = 1.5 s ∗ \delta=1.5 s^{*} δ=1.5s,再次计算:
    x ∗ = ∑ x i ∗ / p s ∗ = 1.134 ∑ ( x i ∗ − x ∗ ) 2 / ( p − 1 ) \begin{array}{c} x^{*}=\sum x_{\mathrm{i}}^{*} / p \\ s^{*}=1.134 \sqrt{\sum\left(x_{\mathrm{i}}^{*}-x^{*}\right)^{2} /(p-1)} \end{array} x=xi/ps=1.134(xix)2/(p1)

    重复:
    x i ∗ = { x ∗ − δ ,  若  x i < x ∗ − δ x ∗ + δ ,  若  x i > x ∗ + δ x i ,  其他  x_{i}^{*}=\left\{\begin{array}{cc} x^{*}-\delta, & \text { 若 } x_{i}<x^{*}-\delta \\ x^{*}+\delta, & \text { 若 } x_{i}>x^{*}+\delta \\ x_{i}, & \text { 其他 } \end{array}\right. xi=xδ,x+δ,xi,  xi<xδ  xi>x+δ 其他 

    直到 s ∗ s^* s 的 第三位有效数字和 x ∗ x^* x 的对应数字在连续两次迭代中不变。

    代码

    # -*- coding: utf-8 -*-
    import pandas as pd
    import numpy as np
    
    def location_corresponding(x_str, s_str):
        '''
        s 的第三位有效数字,以及对应 x 的相应的数字
        '''
        digit_location = s_str.find('.') 
        if digit_location >= 3:
            # 如果小数点在字符串的第 4 位或大于第四位,也即数字至少在 100 以上
            # 此时第三位有效数字,肯定在小数点前。
            significant_num = s_str[2]
            # 有效位数于小数点的相对位置
            # 0 代表在小数点前, 3-1 是指从小数点前数起的位数
            # sig_loc 的第一位表示有效数字在小数点前,还是后
            # 第二位代表有效数字在小数点的“距离”
            str_len = len(s_str[:digit_location])
            sig_loc = (0, str_len-3-1)
            
        elif s_str[0] == '0':
            # 若整数部分是0,则有效数字的位置在小数点后
            # 刨除整数和小数点部分
            s_without_int = s_str[digit_location:]
            # 若小数点后有 0,则不将 0 计入有效数字位
            if '.0' in s_without_int:
                digit_location += 1
                while '.00' in s_without_int:
                    # 若小数点后有多个0,也不计入
                    s_without_int = s_without_int.replace('.00', '.0')
                    digit_location += 1
            try:
                # 若位数不够,如 0.0,则有效数字为 0、
                significant_num = s_str[digit_location+3]
            except:
                significant_num = '0'
            # 1 表示有效数字在小数点后
            sig_loc = (1, 3)
            
        elif digit_location == -1 and len(s_str) >= 3:
            # 若只有整数,没有小数部分,且整数部分大于 100,即有超过三位数
            # 则直接取第三位
            str_len = len(s_str)
            sig_loc = (0, str_len-3)
            significant_num = s_str[2]
        elif digit_location == -1 and len(s_str) < 3:
            # 若小于 100,则有效数字为0
            significant_num = '0'
        else:
            # 若整数部分小于 2 位,且整数部分大于 0
            sig_loc = (1, 3-digit_location)
            significant_num = s_str[sig_loc[1]+digit_location]
        
        # x 对应的数字 
        x_digit_location = x_str.find('.') 
        if sig_loc[0] == 0:
            if x_digit_location == -1 and len(x_str) >= 3:
                x_significant_num = x_str[2]
            elif x_digit_location == -1 and len(x_str) < 3:
                x_significant_num = '0'
            else:
                x_significant_num = x_str[x_digit_location-sig_loc[1]]
                print(sig_loc[1])
                print('前')
        else:
            try:
                x_significant_num = x_str[x_digit_location+sig_loc[1]]
            except:
                x_significant_num = '0'
                
        return x_significant_num, significant_num
    
    def coverage_critiria(x_list, s_list):
        '''
        收敛准则
        其中 s_list 是一个长度为 3 的 list, 包含当前迭代的 s* 和之前两个迭代的 s*
        其中 x_list 也一样
        
        难点在于:如何找出 s 的第三位有效数字,对应 x 的数位呢?
                这里的解决办法是:找出 s 三位有效数字,在小数点的位置,从而应用于 x 中
        '''
    
        s_numbers = []
        x_numbers = []
        for i in range(3):
            # 连续两位不变,故需要进行 3 此迭代。
            s = s_list[i]
            # s 的字符串
            s_str = str(s)
    
            x = x_list[i]
            # x 的字符串
            x_str = str(x) 
            # 找出 s* 的第三位有效数字,和 x* 对应的数字。
            x_sig_num, s_sig_num = location_corresponding(x_str, s_str)
            s_numbers.append(s_sig_num)
            x_numbers.append(x_sig_num)
        
        # 稳健标准差的第三位有效数字,连续两次不变,且稳健平均值的对应数字亦连续两次不变,则判断为收敛
        # 函数返回 True。否则返回 False
        s_equal_flag = (s_numbers[0] == s_numbers[1]) and (s_numbers[0] == s_numbers[2])
        x_equal_flag = (x_numbers[0] == x_numbers[1]) \
                            and (x_numbers[0] == x_numbers[2])
        
        if s_equal_flag and x_equal_flag:
            return True
        else:
            return False
        
    def perform_algorithm_A(x):
        '''
        x 是一个向量
        '''
        if type(x) is list:
            x = np.array(x)
        
        # 稳健平均和稳健标准差初始值
        x_star = np.median(x)
        x_diff = np.absolute(x-x_star)
        s_star = 1.483*np.median(x_diff)
        
        # 上界和下界的初始值
        delta = 1.5*s_star
        higher_bound = x_star + delta
        lower_bound =  x_star - delta
        
        x_list = []
        s_list = []
        while True:
            x_tmp = np.copy(x)
            x_tmp[x_tmp>higher_bound] = higher_bound
            x_tmp[x_tmp<lower_bound] = lower_bound
            x_star = np.mean(x_tmp)
            s_star = 1.134*np.std(x_tmp)
            
            x_list.append(x_star)
            s_list.append(s_star)
            
            if len(x_list) == 4:
                x_list.pop(0)
                s_list.pop(0)
                # 达到收敛条件
                if coverage_critiria(x_list, s_list):
                    return x_tmp, x_list[2], s_list[2], higher_bound, lower_bound
                    
    
            # 计算上下界
            delta = 1.5*s_star
            higher_bound = x_star + delta
            lower_bound =  x_star - delta
            
        
    if __name__ == '__main__':
        x = [927,952,977,995,915,962,966,950,969,949,961,940,1002,956,960,943]
        x, x_star, s_star, higher_bound, lower_bound = perform_algorithm_A(x)
        print('算法 A 收敛后,数据变为: ', x)
        print('稳健平均值: ', x_star)
        print('稳健标准差: ', s_star)
    
    

    运行结果如下:
    在这里插入图片描述

    展开全文
  • 用numpy函数可实现快速计算 n [23]: import numpy as np In [24]: data = [1, 2, 3] In [25]: np.mean(data) Out[25]: 2.0 In [26]: np.sum(data) Out[26]: 6 In [27]: np.max(data) Out[27]: 3 ...

    用numpy函数可实现快速计算

    n [23]: import numpy as np
    
    In [24]: data = [1, 2, 3]
    
    In [25]: np.mean(data)
    Out[25]: 2.0
    
    In [26]: np.sum(data)
    Out[26]: 6
    
    In [27]: np.max(data)
    Out[27]: 3
    
    In [28]: np.min(data)
    Out[28]: 1
    
    In [29]: np.std(data)
    Out[29]: 0.81649658092772603
    In [32]: data = np.array([1, 2, 3])
    
    In [33]: data.min()
    Out[33]: 1
    
    In [34]: data.max()
    Out[34]: 3
    
    In [35]: data.std()
    Out[35]: 0.81649658092772603
    
    In [36]: data.mean()
    Out[36]: 2.0

     

    转载于:https://www.cnblogs.com/Zhu-Xueming/p/8650497.html

    展开全文
  • 标准差计算

    2014-07-23 12:47:04
    标准差计算工具是一款界面简单、体积小巧的标准差计算器,顾名思义,它的主要功能就是帮助用户快速地计算出...在使用标准差计算工具的时候,你需要先计算出算术平均值,然后算单次测量的标准差,最后再算平均值标准差
  • 平均值标准差,方差,协方差,期望,均方误差

    万次阅读 多人点赞 2018-10-12 17:04:55
    平均值标准差,方差,协方差都属于统计数学;期望属于概率数学。 统计数学 1)平均值标准差,方差 统计学里最基本的概念就是样本的均值、方差、标准差。首先,我们给定一个含有n个样本的集合,下面给出这些...
  • from math import sqrt def getNum ( ) : nums = [ ] iNumStr = input ( "输入数字(回车退出):" ..."平均值:{},方差:{:.2},中位数:{}." . format ( m , dev ( n , m ) , median ( n ) ) )
  • 使用numpy计算平均值,中值,方差,标准差 import numpy as np dataset = np.random.rand(10,12) # 输出前两行 dataset[0:2] # 平均值 # 输出第三行的平均值 np.mean(dataset[2]) # 输出最后一行的平均值 np.mean...
  • import java.util.Scanner;... 总和、平均值标准差。 作者:巍巍妹纸 日期:2019年4月11日 / public class OnedimensionalArray { public static void main(String[] args){ //声...
  • public class 计算成绩 { ... * 计算成绩的最大,最小值,平均分和标准差 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[5]; System...
  • ClassWork02.java 1 package lesson05;...4 * 编程计算一维数组的最大值、最小值、总和、平均值标准差 5 */ 6 7 8 public class ClassWork02 { 9 public static void main(String[] args) { 10 int[]...
  • 计算C语言中的求和、标准差、方差和标准差等,需要加上头文件:#include <math.h> #include<stdio.h> #include "math.h" double sum = 0;//求和 double array[4] = {1.2,2.1,3.1,4.1}; int length...
  • //平均值 for (int a = 0; a ; a++) { ava+=i[a]; } ava/=i.length;//方差 float diff = 0; for (int a = 0; a ; a++) { diff+=(i[a]-ava)*(i[a]-ava); } double number = Math.sqrt(diff); number/=i....
  • 计算数据的平均值、方差和标准差

    千次阅读 2013-07-28 15:15:40
    //计算数据的平均值、方差和标准差 #include #include using namespace std; class MeanVar { private:  int i, n;  double xbar, var, std_dev;  double *x; public:  MeanVar()  {  xbar = ...
  • sql函数平均值 总数 最小值 最大值 总和 标准差
  • // 计算标准差 // 所有数减去其平均值的平方和,再除以数组个数(或个数减一,即变异数)再把所得值开根号 let stdDev = Math.sqrt(numbers.map(n=> (n-avg) * (n-avg)).reduce(sum) / len); return { max, ...
  • 平均值 平均值的概念很简单:所有数据之和除以数据点的个数,以此表示数据集的平均大小;其数学定义为 方差、标准差 方差这一概念的目的是为了表示数据集中数据点的离散程度;其数学定义为: 标准差与方差一样,...
  • 如图,论文中,一般都会给出平均值标准差。 大家在写科技论文的时候,通常用excel来整理数据,那如何用excel快速实现“平均值±标准差”。 要Tina说,这很简单! 记住下面这个公式即可。 ROUND(AVERAGE(B2:Bx),4...
  • 相关性 线性相关 数据在一条直线附近波动,则变量间是线性相关 ...标准差表示了所有数据与平均值的平均距离,表示了数据的散度,如果标准差小,表示数据集中在平均值附近,如果标准差大则表示数据离标准...
  • 之前已经推送了关于标准差(SD)、平均值的标准误差(SEM)的介绍文章,今天将重点介绍一下标准差(SD)和平均值的标准误差(SEM)之间...标准偏差(SD)与平均值标准误差(SEM)之间很容易混淆。主要区别在于: ...
  • 移动标准差以及移动平均值(movstd、movmean) 最近在工作中遇到这样一个问题: 有一个序列长度为 nnn 的序列 T=[t0,t1,…,tn−1]T=[t_0, t_1, \dots, t_{n-1}]T=[t0​,t1​,…,tn−1​],给定一个窗大小 m(m<=n)m ...
  • printf("请输入第一组标准差,第二组标准差,第一组均值,第二组均值,样本量,以空格间隔\n"); for (int i = 0; i ; i++) { scanf("%lf", &inp[i]); } r = compute_d(inp[0], inp[1], inp[2], inp[3], (int)inp[4])...
  • 一、用pandas 计算标准差平均值 用到的是sklearn 的 mean_和var_属性 import pandas as pd from sklearn import preprocessing csv_data = pd.read_csv('mycsv.csv') # 计算原始数据每行和每列的均值和方差,...
  • 标准差和标准误差、平均值

    万次阅读 2018-12-24 22:34:15
    SS用于表示离均差的平方和 ...标准差均为:sqrt(方差) 标准误差:sqrt(SS/n/(n-1)),也就是说,对于样本,excel需要用STDEV.S计算无偏估计作为方差,或者直接用SPSS描述,标准误差再次基础上需要除以:sqrt(n)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,775
精华内容 43,510
关键字:

平均值的标准差如何计算