期望

image.png

image.png

image.png
方差

image.png

image.png
- 手动计算方差
public class VarianceExample {
public static void main(String[] args) {
double[] data = {4, 7, 2, 9, 5};
// 计算均值
double mean = 0;
for (double num : data) {
mean += num;
}
mean /= data.length;
// 计算平方差的和
double sumSquaredDiff = 0;
for (double num : data) {
sumSquaredDiff += Math.pow(num - mean, 2);
}
// 计算方差
double variance = sumSquaredDiff / data.length; // 对于样本方差,使用 n-1
System.out.println("Variance: " + variance);
}
}
- 使用 Apache Commons Math 库
Apache Commons Math 库提供了现成的工具来计算方差:
import org.apache.commons.math3.stat.descriptive.moment.Variance;
public class VarianceExample {
public static void main(String[] args) {
double[] data = {4, 7, 2, 9, 5};
Variance variance = new Variance();
double result = variance.evaluate(data);
System.out.println("Variance: " + result);
}
}
总结
- 方差 是衡量数据分布离散程度的度量,它表示数据点偏离均值的程度。
- 方差与 标准差 密切相关,标准差是方差的平方根。
- 在实际应用中,方差常用于衡量数据的波动性,而标准差由于具有与原始数据相同的单位,通常比方差更直观。
标准差

image.png

image.png
public class StandardDeviation {
public static void main(String[] args) {
// 示例数据
double[] data = {5, 7, 3, 9, 10};
// 计算均值
double mean = 0;
for (double num : data) {
mean += num;
}
mean /= data.length;
// 计算平方差的和
double sumSquaredDiff = 0;
for (double num : data) {
sumSquaredDiff += Math.pow(num - mean, 2);
}
// 计算标准差
double standardDeviation = Math.sqrt(sumSquaredDiff / data.length); // 对于样本标准差,使用 n-1
System.out.println("Standard Deviation: " + standardDeviation);
}
}
使用 Apache Commons Math 库
如果你使用的是 Apache Commons Math 库,可以更简便地计算标准差:
import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation;
public class StandardDeviationExample {
public static void main(String[] args) {
double[] data = {5, 7, 3, 9, 10};
StandardDeviation stdDev = new StandardDeviation();
double result = stdDev.evaluate(data);
System.out.println("Standard Deviation: " + result);
}
}