算法--样本方差、样本标准差、方差、标准方差与加权平均

样本方差与样本标准差

 1、定义:样本中各数据与样本平均数的差的平方和的平均数叫做样本方差;样本方差的算术平方根叫做样本标准差。

      注:样本方差和样本标准差都是衡量一个样本波动大小的量,样本方差或样本标准差越大,样本数据的波动就越大。

标准差与标准方差

1、定义:方差是各个数据与平均数之差的平方和的平均数。在概率论和数理统计中,方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。标准差在概率统计中最常使用作为统计分布程度上的测量。标准差定义为方差的算术平方根,反映组内个体间的离散程度。

加权平均

1、定义:加权平均数(weighted average)是不同比重数据的平均数,就是把原始数据按照合理的比例来计算。

 

算法代码如下:

        public static double StandardDeviation(this IList<double> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            if (source.Count == 0)
            {
                return double.NaN;
            }

            double variance = source.Variance();

            return Math.Sqrt(variance);
        }

        public static double SampleStandardDeviation(this IList<double> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            if (source.Count == 0 || source.Count == 1)
            {
                return double.NaN;
            }

            double variance = source.SampleVariance();

            return Math.Sqrt(variance);
        }

        public static double Variance(this IList<double> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            if (source.Count == 0)
            {
                return double.NaN;
            }

            int count = source.Count();
            double deviation = CalculateDeviation(source, count);

            return deviation / count;
        }

        public static double SampleVariance(this IList<double> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source"); ;
            }

            if (source.Count == 0 || source.Count == 1)
            {
                return double.NaN;
            }

            int count = source.Count();
            double deviation = CalculateDeviation(source, count);

            return deviation / (count - 1);
        }

        public static double WeightedAverage(this IList<double> source, IList<double> factors)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            if (source.Count != factors.Count)
            {
                throw new ArgumentException("source count is not equal to factors count.");
            }

            if (source.Count == 0)
            {
                return double.NaN;
            }

            double sum = factors.Sum();

            if (sum == 0)
            {
                return double.NaN;
            }

            double weight = 0;

            for (int index = 0; index < factors.Count; index++)
            {
                weight += source[index] * (factors[index] / sum);
            }

            return weight;
        }

        private static double CalculateDeviation(IList<double> source, int count)
        {
            double avg = source.Average();
            double deviation = 0;

            for (int index = 0; index < count; index++)
            {
                deviation += (source[index] - avg) * (source[index] - avg);
            }

            return deviation;
        }


以上在金融方面用得比较多.....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资产组合的方差公式可以通过如下推导得到: 设有n种资产A1, A2, ..., An,并分别记为X1, X2, ..., Xn,它们的权重分别为w1, w2, ..., wn。资产的收益率则为r1, r2, ..., rn,其中E(Xi)为预期收益率,σi为标准差。 将资产组合的收益表示为一个线性加权和:R = w1X1 + w2X2 + ... + wnXn 其中,资产组合的方差为Var(R) = E[(R - E(R))^2] 根据线性运算的性质,我们可以展开方差公式,得到: Var(R) = E[(w1X1 + w2X2 + ... + wnXn - E(w1X1 + w2X2 + ... + wnXn))^2] 根据方差的定义,展开后化简可得: Var(R) = E[(w1(X1 - E(X1)) + w2(X2 - E(X2)) + ... + wn(Xn - E(Xn)))^2] 再次应用线性运算性质,可以将方差展开为每个资产的方差、协方差及其权重的乘积的和: Var(R) = w1^2 * Var(X1) + w2^2 * Var(X2) + ... + wn^2 * Var(Xn) + 2 * w1*w2 * Cov(X1, X2) + 2 * w1*w3 * Cov(X1, X3) + ... + 2 * w(n-1)*wn * Cov(X(n-1), Xn) 其中,Var(Xi)表示资产i的方差,Cov(Xi, Xj)表示资产i和资产j的协方差。 由此可见,资产组合的方差公式包含了每个资产的方差以及两两资产之间的协方差。这个公式的推导过程基于资产收益的线性组合和方差的定义,是建立在一些假设前提之上的,例如资产收益率之间的协方差是已知的。实际应用中,可以通过对资产历史数据的统计分析来估计方差和协方差的值,从而计算资产组合的方差,进而衡量和优化投资组合的风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值