C#基础_C#计算样本标准差和总体标准差
2024-09-05 17:15:32
首先我们先了解样本标准差和总体标准差:
样本标准差=方差的算术平方根=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());//总体标准差
}
计算结果:
最新文章
- repeater控件如何隐藏列?
- ArcGIS API for Silverlight 使用GeometryService求解线与线的交点
- LINUX 配置IP
- ANTLR4权威参考手册
- npm常用命令->;nodejs
- 记录asp.net网站停止运行原因的代码
- dojox.grid.EnhancedGrid 和 dojox.grid.DataGrid 的继承关系
- jquery取元素值
- android 显示特殊符号
- 机器学习算法实现(R&;Python code)
- winXP JDK由1.8改为1.6
- iOS多线程的七大对象理解
- Hadoop-2.8.0 开发环境搭建(Mac)
- 高斯消元 &; 线性基【学习笔记】
- 笔记本电脑连wifi然后通过有线网口做桥接
- ZOJ 3228 Searching the String(AC自动机)
- 指定Gpu range系列函数
- idea jetty 配置
- CSS学习笔记-01-2D转换模块
- unfolding maps支持中文