请教:加权标准差的计算公式如何计算

样本方差与样本标准差
&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 /
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.C 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 & index++)
deviation += (source[index] - avg) * (source[index] - avg);
以上在金融方面用得比较多.....
阅读(...) 评论()&&>>&&>>&&>>&正文
组合的标准差计算
15:42:41东奥会计在线字体:
  [小编“娜写年华”]东奥会计在线中级职称频道提供:本篇为2015年《财务管理》答疑精选:组合的标准差计算。
  【学员提问】
  组合的标准差计算两种证券之间的相关系数&1,证券组合报酬率的标准差就小于各证券报酬率标准差的加权平均数
  提问:上面这句话,您能举个例子吗?
  当相关系数=1时,各证券标准差之和的平均值,不就是投资组合的标准差吗?这个与各证券报酬率标准差的加权平均数有什么区别???请您举例说明,谢谢!
  【东奥老师回答】
  尊敬的学员,您好:
  1.比如我们投资A、B两个股票,标准差分别为0.10和0.14,分别投资50%,二者的相关系数是0.5,所以组合的标准差为[(0.5*0.10)2+(0.5*0.14)2+2*0.5*0.5*0.10*0.14*0.5]1/2=0.1044,而二者的加权平均数=0.1*0.5+0.14*0.5=0.12,0.,所以,两种证券之间的相关系数&1,证券组合报酬率的标准差就小于各证券报酬率标准差的加权平均数,这里是因为组合抵消了非系统风险而导致的。
  2. 当相关系数=1时,两项证券收益率的方差为σ2=w12σ12+w22σ22+2w1w2ρ1,2σ1σ2 ,σ2=w12σ12+w22σ22+2w1w2σ1σ2=(w1σ1+ w2σ2)2 ,σ= w1σ1+ w2σ2 ,也就是将2w1w2ρ1,2σ1σ2 抵消掉了。而各证券标准差之和的平均值,就是投资组合的标准差,由于相关系数为1,非系统风险是不能抵消的,所以这里只是一个特殊的情况。
  我们计算组合的平均标准差时是根据σ2=w12σ12+w22σ22+2w1w2ρ1,2σ1σ2 计算的,不是简单的加权平均的。
  再理解一下。
  祝您学习愉快!
  更多中级职称疑难问题,帮您解答!
  相关热荐:
责任编辑:娜写年华
上一个文章:
下一个文章:
中级职称导航
中级职称网课
招生方案科目价格 / 购买
中级会计实务4000元
财务管理4000元
中级经济法4000元
中级会计实务
财务管理1600元
中级经济法
中级会计实务600元
财务管理600元
中级经济法600元
中级会计实务400元
财务管理400元
中级经济法400元
名师编写权威专业
针对性强覆盖面广
解答详细质量可靠
一书在手轻松过关
&&官方微信
东奥会计在线
微信号:dongaocom
& Inc. All Rights Reserved
职称考试通
职称考试通
2016网课辅导热招
2015中级成绩查询
2015中级考后热点
微信关注东奥查看: 4364|回复: 7
[已解决]加权标准差
求高手给我看下这公式要怎么写
(8.2 KB, 下载次数: 12)
19:50 上传
点击文件名下载附件
已知ABC三列,求EF列的值 ,D列能省略再好(D列中间过程)
suye1010发布于
标准差
=IF(A2&&A1,SQRT(SUMPRODUCT(($B$2:$B$12-$E2)^2,$C$2:$C$12,N($A$2:$A$12=A2))/SUMPRODUCT($C$2:$C$12,N($A$2:$A$12=A2))),&&)& & & &
均值
=IF(A2&&A1,SUMPRODUCT($B$2:$B$12,$C$2:$C$12,N($A$2:$A$12=A2))/SUMPRODUCT($C$2:$C$12,N($A$2:$A$12=A2)),&&)
复制代码
标准偏差计算:=STDEV(D2:D12)复制代码平均值:=AVERAGE(D2:D12)复制代码
标准偏差:=STDEV(B2:B12)复制代码平均值=SUMPRODUCT(B2:B12,C2:C12)/SUM(C2:C12)复制代码
不是这样的&&
A和D是二个编号要分开计算的
数组公式,
均值:=IF(A2=A1,&&,SUM((A$2:A12=A2)*B$2:B12*C$2:C12)/SUMIF(A:A,A2,C:C))复制代码标准差:=IF(A2=A1,&&,SQRT(SUM((A$2:A12=A2)*(B$2:B12-F2)^2*C$2:C12)/SUMIF(A:A,A2,C:C)))复制代码
(9.48 KB, 下载次数: 5)
21:27 上传
点击文件名下载附件
&&&本楼为最佳答案&&&
标准差
=IF(A2&&A1,SQRT(SUMPRODUCT(($B$2:$B$12-$E2)^2,$C$2:$C$12,N($A$2:$A$12=A2))/SUMPRODUCT($C$2:$C$12,N($A$2:$A$12=A2))),&&)& & & &
均值
=IF(A2&&A1,SUMPRODUCT($B$2:$B$12,$C$2:$C$12,N($A$2:$A$12=A2))/SUMPRODUCT($C$2:$C$12,N($A$2:$A$12=A2)),&&)
复制代码
21:32 上传
点击文件名下载附件
8.69 KB, 下载次数: 20
谢谢大家的帮助了
|||Excel精英培训
Powered by查看: 5360|回复: 9
求高手编个自定义函数计算加权标准差(高手已解决)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
免费注册成为本站会员,享用更多功能,结识更多Office办公高手!
才可以下载或查看,没有帐号?
本帖最后由 x808x 于
16:06 编辑
Exce中有计算标准差的函数,但是加权标准差函数却找不到。
特别是如图所示的问题,这个s值是可以通过数组公式解决的,但是太长,也不好输入,高手有办法写个自定函数解决这个问题吗?
捕获_1~1.JPG (61.31 KB, 下载次数: 2)
20:08 上传
(19.16 KB, 下载次数: 13)
20:08 上传
点击文件名下载附件
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
嘉昆2011 发表于
这样理解对不对
e9不对,应是:=sum(d2:d6)/sum(c2:c6)
多用几次公式也是可以计算出s的,用数组公式一次就可以成功。只是想求高手写个自定义函数,这样就比较方便了,也不容易出错。
建议楼主把你的数组公式写一下,方便理解&
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
这样理解对不对
(19.96 KB, 下载次数: 9)
22:54 上传
点击文件名下载附件
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
x808x 发表于
e9不对,应是:=sum(d2:d6)/sum(c2:c6)
多用几次公式也是可以计算出s的,用数组公式一次就可以成功。只是 ...
建议楼主把你的数组公式写一下,方便理解
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
公式示例=GetCV(C2:C6,D2:D6)复制代码函数代码Function GetCV(PSerial, XSerial) As Double
& & Dim P& && && &&&As Variant
& & Dim OX& && && & As Variant
& & Dim S& && && &&&As Double
& & Dim arrP()& && &As Double
& & Dim arrX
& & Dim arrOX()& &&&As Double
& & Dim sP& && && & As Double
& & Dim sOX& && && &As Double
& & Dim sX& && && & As Double
& & Dim XBar& && &&&As Double
& & Dim i& && && &&&As Long
& & i = 0
& & For Each P In PSerial
& && &&&i = i + 1
& && &&&ReDim Preserve arrP(1 To i)
& && &&&arrP(i) = P
& & Next
& & i = 0
& & For Each OX In XSerial
& && &&&i = i + 1
& && &&&ReDim Preserve arrOX(1 To i)
& && &&&arrOX(i) = OX
& & Next
& & 'Calculate Sum of P and OX
& & sP = WorksheetFunction.Sum(arrP)
& & sOX = WorksheetFunction.Sum(arrOX)
& & 'Calculate Xi
& & arrX = arrOX
& & For i = LBound(arrX) To UBound(arrX)
& && &&&arrX(i) = XSerial(i) / PSerial(i)
& & Next
& & 'Calculate XBar
& & 'According to your formula XBar=SUM(OX)/SUM(P)
& & 'But The Formula you showed in Pic is different
& & XBar = sOX / sP
& & 'Calculate S
& & For i = LBound(arrX) To UBound(arrX)
& && &&&S = S + (arrP(i) / sP) * (arrX(i) - XBar) ^ 2
& & Next
& & S = S ^ 0.5
& & GetCV = S / XBar
End Function复制代码
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
本帖最后由 x808x 于
13:01 编辑
amulee 发表于
建议楼主把你的数组公式写一下,方便理解
这个s是可以用数组公式计算的:{=SQRT(SUM(($C$2:$C$6)/SUM($C2:$C6)*((D2:D6)/($C2:$C6)-SUM(D2:D6)/SUM($C$2:$C$6))^2))}
也就是说这个s能不能自定义个函数(加权差异系数)来计算。
在网上找了两个网页,e文,我是看不懂的。
(215 Bytes, 下载次数: 5)
13:00 上传
点击文件名下载附件
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
amulee 发表于
公式示例函数代码
真不错,很好!
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
amulee 发表于
公式示例函数代码
您好,再咨询下,在代码中能不能加一个判断,自动排除无数据的区域,只要在相关无数据的区域中填写,就会自动判断计算而不用重新设置计算区域。比如:有数据的区域是(C2:C6,D2:D6) , 在实际中可能写成GetCV(C2:C50,D2:D50),实际上(c7:c50,d7:d50)上没有数据,如果写成GetCV(C2:C50,D2:D50) 是会出现错误的。虽说只是增加一个判断,我看也挺麻烦的。
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
你在函数里面用Offset自己加吧
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 12, 距离下一级还需 38 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
本帖最后由 x808x 于
23:46 编辑
amulee 发表于
你在函数里面用Offset自己加吧
把自己弄糊涂了,学艺不精,英文又不通,还是帮助下吧。
学office,哪能不关注全网最大的Office类微博(新浪)
Excel技巧网的会员探讨问题仅代表其个人意见,与网站的立场无关。任何违反国家和地方相关法律法规的言论,本站有义务协助政府相关部门追究发言者的责任!
本站中非注明转载文章与案例的版权为作者与Excel技巧网共有。若非原文作者,本站之外任何单位或个人未经允许,不得将其用于商业用途。
若非原文作者,任何形式的非商业性转载必须获得Excel技巧网或作者允许,并注明作者和出处。
会员发表的帖子如涉及版权纠纷,须自行负责。详情请参考注册时的网站服务条款。
本站特聘法律顾问:沈学律师
Powered by

我要回帖

更多关于 加权标准差 的文章

 

随机推荐