C#基础_C#计算样本标准差和总体标准差

Posted 小嘛小儿郎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#基础_C#计算样本标准差和总体标准差相关的知识,希望对你有一定的参考价值。

首先我们先了解样本标准差和总体标准差:

样本标准差=方差的算术平方根=s=sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/(n-1))
总体标准差=σ=sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/n )

下面是简单的区别:

上面的数据是用Excel来计算的,方便对我们软件输出的数据做对比。

https://jingyan.baidu.com/article/17bd8e5275d85985aa2bb855.html

这个是excel里对标准差函数的使用方法

 

 

 
了解了基本概念,下面就是C#代码了,在窗体创建一个按钮来测试
        private void button4_Click(object sender, EventArgs e)
        
            float[] data = new float[]  290, 517, 850, 484, 856, 784, 666, 865, 445, 243 ;//不定长数组
            float 样本标准差, 总体标准差;
            STDEV(data,out 样本标准差,out 总体标准差);
            MessageBox.Show(样本标准差.ToString() + "," + 总体标准差.ToString());
        


        /// <summary>
        /// 样本标准差和总体标准差计算
        /// </summary>
        /// <param name="arrData">数据数组</param>
        /// <param name="std_dev">样本标准差</param>
        /// <param name="STDP">总体标准差</param>
        public void STDEV(float[] arrData,out float std_dev,out float STDP) //计算标准偏差
        
            float xSum = 0F;//样本总和
            float xAvg = 0F;//样本平均值
            float sSum = 0F;//方差的分子
            //float tmpStDev = 0F;
            int arrNum = arrData.Length;//得到样本数量,分母
            for (int i = 0; i < arrNum; i++)//循环计算得到样本总和
            
                xSum += arrData[i];
            
            xAvg = xSum / arrNum;//计算得到样本平均值
            for (int j = 0; j < arrNum; j++)//得到方差的分子
            
                sSum += ((arrData[j] - xAvg) * (arrData[j] - xAvg));
            
            std_dev = Convert.ToSingle(Math.Sqrt((sSum / (arrNum - 1))).ToString());//样本标准差

            STDP = Convert.ToSingle(Math.Sqrt((sSum / arrNum)).ToString());//总体标准差
        

计算结果:

 

 

以上是关于C#基础_C#计算样本标准差和总体标准差的主要内容,如果未能解决你的问题,请参考以下文章

方差、标准差、协方差、有啥区别?

如何根据随机分布数据计算 C++ 中的样本均值、标准差和方差,并与原始均值和 sigma 进行比较

如何求标准差的置信区间

平均数、中位数、众数、方差、标准差、极差要怎么计算

请计算数据组"10,7,10,8,10,10,7,6"的均值,中位数,众数,标准差和极差

为什么样本标准差要除以n-1?