计算样本数据的方差, 标准方差与协方差

简介: 计算样本数据的方差, 标准方差与协方差在图像处理中有时候会涉及计算图像像素数据的方差,标准方差与协方差等统计学属性作为中间数据。因此知道什么是方差、标准方差、协方差很重要。 二:代码实现Java代码实现计算数据的方差,标准方差、协方差package com.

计算样本数据的方差, 标准方差与协方差

在图像处理中有时候会涉及计算图像像素数据的方差,标准方差与协方差等统计学属性作为中间数据。因此知道什么是方差、标准方差、协方差很重要。
这里写图片描述
这里写图片描述

二:代码实现

Java代码实现计算数据的方差,标准方差、协方差

package com.gloomyfish.image.gmm;

public class CalculateVariance {

    public double mean(double[] data) {
        double sum = 0;
        int len = data.length;
        for(int i=0; i<len; i++) {
            sum += data[i];
        }
        return sum / len;
    }

    public double variance(double[] data) {
        double mean = mean(data);
        double sum = 0;
        int len = data.length;
        double delta = 0;
        for(int i=0; i<len; i++) {
            delta = data[i] - mean;
            sum += (delta*delta);
        }
        return sum / len;
    }

    public double sd(double[] data) {
        return Math.sqrt(variance(data));
    }

    public double covariance(double[] X, double[] Y) {
        double mx = mean(X);
        double my = mean(Y);
        // 理论上应该通过插值保证长度一致
        int len = X.length == Y.length ? X.length : Math.min(X.length, Y.length);
        double sum = 0;
        for(int i=0; i<len; i++) {
            sum += ((X[i]-mx)*(Y[i]-my));
        }
        return sum / len;
    }

    public static void main(String[] args) {
        int len = 20;
        double[] X = new double[len];
        double[] Y = new double[len];
        for(int i=0; i<len; i++) {
            X[i] = Math.random()*100;
            Y[i] = Math.random()*100;
        }
        CalculateVariance cv = new CalculateVariance();
        System.out.println("X Mean: " + cv.mean(X));
        System.out.println("Y Mean: " + cv.mean(Y));
        System.out.println();

        System.out.println("X Variance: " + cv.variance(X));
        System.out.println("Y Variance: " + cv.variance(Y));
        System.out.println();

        System.out.println("X Standard Deviation: " + cv.sd(X));
        System.out.println("Y Standard Deviation: " + cv.sd(Y));
        System.out.println();

        System.out.println("XY Covariance: " + cv.covariance(X, Y));
        System.out.println();
    }

}

三:意义表述

协方差可以分析样本数据之间的线性相关性,协方差为正数时候,一般情况表示相关,协方差为负数的时候则表示不相关,常见的相关性计算就是基于协方差实现。在图像的直方图数据比较中是常规的手段之一。OpenCV与ImageJ中均有代码实现。

目录
相关文章
|
6月前
|
大数据
stata具有异方差误差的区间回归
stata具有异方差误差的区间回归
|
6月前
|
数据可视化
R平方/相关性取决于预测变量的方差
R平方/相关性取决于预测变量的方差
|
6月前
|
数据可视化
R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法
R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法
|
6月前
R语言异方差回归模型建模:用误差方差解释异方差
R语言异方差回归模型建模:用误差方差解释异方差
|
6月前
|
数据采集
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
|
6月前
|
机器学习/深度学习 算法 数据挖掘
K-均值算法
K-均值算法是发现给定数据集的k个簇的算法。簇个数k是用户给定的,每一个簇通过其簇中所有点的中心点来描述 工作流程: 首选选取样本中k个样本作为每个簇的簇中心 然后对每一个样本与每个簇之间的关系,来分配到每一个簇中 然后更新每个簇的均值
56 1
|
数据挖掘
19 误差分布曲线的建立 - 高斯导出误差正态分布
19 误差分布曲线的建立 - 高斯导出误差正态分布
62 0
(二)随机变量的数字特征:探索概率分布的关键指标
(二)随机变量的数字特征:探索概率分布的关键指标
协方差与相关系数(标准协方差)
协方差与相关系数(标准协方差)
多变的夏普率二---正态分布约束下的样本的标准差是无偏估计?
多变的夏普率二---正态分布约束下的样本的标准差是无偏估计?
77 0
多变的夏普率二---正态分布约束下的样本的标准差是无偏估计?