2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 数学期望 方差 矩(moments) 倾斜度(skewness)及峰度(kurtosis)的理解及c/c++实现

数学期望 方差 矩(moments) 倾斜度(skewness)及峰度(kurtosis)的理解及c/c++实现

时间:2024-07-07 15:37:38

相关推荐

数学期望 方差 矩(moments) 倾斜度(skewness)及峰度(kurtosis)的理解及c/c++实现

在概率论中期望,方差等是基础知识点,下面简单介绍一下个人所理解的几点及实现过程,如有错误之处请指出,仅供学习参考。

转载请注明出处。

1.分布函数

2.概率密度函数

直意为对分布函数的求导,数学公式如下,

3.数学期望

式1表示为离散的,2为连续。

4.矩(moments)

5.方差与矩的关系

方差主要表示随机变量围绕中心值的散布程度。

6.倾斜度(skewness)

表示随机变量与中心分布的不对称程度,向右倾斜,值为正,向左值为负。

7.峰度(kurtosis)

随机变量在均值附近的相对平坦程度或峰值程度,以正态分布为界,峰度值为0,如比正态分布陡,峰度值大于0,否则小于0.

代码实现如下:

仅供参考学习。

#include<iostream>using namespace std;int main(){//自定义一个数集,用数组a存储int a[10] = {1,2,2,6,8,8,2,15,20,8};int b[10];int count;double exp = 0.0;//期望double sum1 = 0.0, sum2 = 0.0;double y=0.0;//中心矩for (int i = 0; i < 10;i++){b[i] = -1;}for (int i = 0; i < 10;i++){count = 1;for (int j = i + 1; j < 10; j++){if (a[i] == a[j]){b[j] = 0;count++;}}if (b[i] != 0){b[i] = count;}}//输出每个数出现的次数for (int i = 0; i < 10;i++){if (b[i] != 0){//cout << a[i] <<" "<< b[i] << endl;//期望exp += a[i] * (b[i] / 10.0);}}printf("期望exp=%.2f\n",exp);//传统方法:方差for (int i = 0; i < 10;i++){sum1 += (a[i] - exp)*(a[i] - exp);}double var1 = sum1 / 10.0;printf("方差var1=%.2f\n",var1);//非传统方法:方差for (int i = 0; i < 10;i++){sum2 += (a[i] * a[i])*(b[i] / 10.0);}double var2 = sum2 - (exp*exp);printf("方差var2=%.2f\n", var2);//倾斜度//求中心矩yfor (int i = 0; i < 10;i++){y += ((a[i] - exp)*(a[i] - exp)*(a[i] - exp))*(b[i]/10.0);}double skew = y / (sqrt(var2)*var2);printf("倾斜度skew=%.2f\n",skew);//峰度for (int i = 0; i < 10; i++){y += ((a[i] - exp)*(a[i] - exp)*(a[i] - exp)*(a[i] - exp))*(b[i] / 10.0);}double kurt = (y / (var2*var2)) - 3;printf("峰度kurt=%.2f\n",kurt);system("pause");return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。