C# 及excel中【总体方差】、【样本方差】的计算公式

830 阅读1分钟

一、数学公式

72ead2455814ddee3db9feef3a528905.png

二、C#中的数学包

using MathNet.Numerics.Statistics;

三、【总体方差】和【样本方差】的计算

using System;
using System.Linq;
 
var myList = new List<float> {1,3,4,5,6,7};
 
display("要计算的数据");
display(myList);
 
var pv = myList.PopulationVariance();
var sv = myList.Variance();
display($"MathNet的总体方差:{pv}");
display($"MathNet的样本方差:{sv}");
 
//总体方差
Func<List<float>, float> ZongTiFangCha = (myList) => 
{
    var average = myList.Average();
    return myList.Select(x => (x - average) * (x - average)).Sum() / myList.Count();
};
 
//样本方差
Func<List<float>, float> YangBenFangCha = (myList) =>
{
    var average = myList.Average();
    return myList.Select(x => (x - average) * (x - average)).Sum() / (myList.Count()-1);
};
 
var pv2 = ZongTiFangCha(myList);
var sv2 = YangBenFangCha(myList);
 
display($"自定义的总体方差:{pv2}");
display($"自定义的样本方差:{sv2}");

 结算结果:

 

四、excel中的计算公式

 

五、结论