概率论与数理统计学习:数字特征(二)——知识总结与C语言实现案例
创始人
2024-04-02 13:24:46
0

hello,大家好

这里是第11期概率论与数理统计的学习,我将用这篇博客去总结知识点和用C语言实现简单例题的过程。

本期知识点:方差

  1. 方差的定义
  2. 方差的性质
  3. 几种常用随机变量的方差

在这里插入图片描述

💦 知识总结

☁️ 方差的定义

方差刻画了随机变量取值在其中心位置附近的分散程度,即随机变量取值与平均值的偏离程度

设随机变量XXX的期望为E(X)E(X)E(X),为了刻画偏离程度的大小,用E[∣X−E(X)∣]E[|X-E(X)|]E[∣X−E(X)∣]作为描述XXX取值分散程度的数字特征,称之为XXX的平均绝对差

但由于在数学上绝对值的处理很不方便,因此常用[X−E(X)]2[X-E(X)]^2[X−E(X)]2的平均值度量XXX与E(X)E(X)E(X)的偏离程度,这个平均值就是方差

🌱 定义:设XXX为一随机变量,如果E{∣X−E(X)]2}E\{|X-E(X)]^2\}E{∣X−E(X)]2}存在,则称之为XXX的方差,记为Var(X)Var(X)Var(X),有时也记为D(X)D(X)D(X)。即Var(X)=E{[X−E(X)]2}Var(X)=E\{[X-E(X)]^2\}Var(X)=E{[X−E(X)]2}
并称Var(X)\sqrt{Var(X)}Var(X)​为XXX的标准差

再将上式做一个变换,可得Var(X)=E(X2)−[E(X)]2Var(X)=E(X^2)-[E(X)]^2Var(X)=E(X2)−[E(X)]2

☁️ 方差的性质

  1. ccc为常数,则Var(c)=0Var(c)=0Var(c)=0
    Var(X+c)=Var(X)Var(X+c)=Var(X)Var(X+c)=Var(X)

  2. 设kkk为常数,则Var(kX)=k2Var(X)Var(kX)=k^2Var(X)Var(kX)=k2Var(X)

  3. XXX与YYY相互独立,则
    Var(X+‾Y)=Var(X)+Var(Y)Var(X\underline +Y)=Var(X)+Var(Y)Var(X+​Y)=Var(X)+Var(Y)

  4. 设随机变量XXX的期望和方差分别为E(X)E(X)E(X)和Var(X)Var(X)Var(X),则Y=X−E(X)Var(X)Y=\frac{X-E(X)}{\sqrt{Var(X)}}Y=Var(X)​X−E(X)​的期望和方差为E(Y)=0,Var(Y)=1E(Y)=0,Var(Y)=1E(Y)=0,Var(Y)=1
    这里称YYY为XXX的标准化的随机变量
    即:
    X~~~~~~~~~~~~~X             X~N(μ,σ2)N(\mu,\sigma^2)N(μ,σ2)
    Y=X−μσ~Y=\frac{X-\mu}{\sigma} Y=σX−μ​~N(0,1)N(0,1)N(0,1)

☁️ 几种常用随机变量的方差

  1. 两点分布

设XXX服从参数为ppp的两点分布,有E(X)=pE(X)=pE(X)=p,则
Var(X)=p(1−p)Var(X)=p(1-p)Var(X)=p(1−p)

  1. 二项分布

设XXX~B(n,p)B(n,p)B(n,p),X=X1+X2+...+XnX=X_{1}+X_{2}+...+X_{n}X=X1​+X2​+...+Xn​,则
Var(X)=Var(X1)+Var(X2)+...+Var(Xn)=np(1−p)Var(X)=Var(X_{1})+Var(X_{2})+...+Var(X_{n})=np(1-p)Var(X)=Var(X1​)+Var(X2​)+...+Var(Xn​)=np(1−p)

  1. 泊松分布

设XXX~P(λ)P(\lambda)P(λ),则
Var(X)=λVar(X)=\lambdaVar(X)=λ

  1. 均匀分布

设XXX~U[a,b]U[a,b]U[a,b],则
Var(X)=(b−a)212Var(X)=\frac{(b-a)^2}{12}Var(X)=12(b−a)2​

  1. 指数分布

设XXX服从参数为λ\lambdaλ的指数分布,则
Var(X)=1λ2Var(X)=\frac{1}{\lambda^2}Var(X)=λ21​

  1. 正态分布

设XXX~N(μ,σ2)N(\mu,\sigma^2)N(μ,σ2),则
Var(X)=σ2Var(X)=\sigma^2Var(X)=σ2

💦 C语言实现案例

  1. 设离散型随机变量XXX的概率分布是P{X=0}=0.2,P{X=1}=0.5,P{X=2}=0.3P\{X=0\}=0.2,P\{X=1\}=0.5,P\{X=2\}=0.3P{X=0}=0.2,P{X=1}=0.5,P{X=2}=0.3,求Var(X)Var(X)Var(X)。

题目分析:因为是离散型的,所以直接按照公式来即可。

#include 
#include 
#include 
typedef struct
{int X;float p;
}Variate;// The algorithm of variance ——离散型随机变量方差的算法
float D(Variate *b,int pos)
{float sum1 = 0,sum2 = 0;for(int i = 0 ; i < pos ; i++){sum1 += b[i].p * b[i].X;sum2 += pow(b[i].X,2) * b[i].p;}return sum2 - pow(sum1,2);
}int main()
{printf("-----------------------------Read-in datas-------------------------------------\n");	// 读入数据// Use pos to judge the number of the datas ——用pos表示数据的个数(一个结构体代表一个数据)int pos = 0;// Use sign to be the condition of the circle ——用sign作为循环判断的条件int sign = 1;// It can be regarded as head pointer ——可以把var当作一个头指针Variate* var = NULL;// And view a as the pointer to move ——把a看作用来移动的指针Variate* a = NULL;while(sign == 1){// Allocate spaces dynamically ——动态分配内存空间var = (Variate *) realloc (var,sizeof(Variate));a = var;// The pointer is moving ——这个指针在移动a += pos;printf("Please input the value of X:");						// 请输入X的值scanf("%d",&a->X);printf("Please input the probability of the X:");			// 请输入X的概率scanf("%f",&a->p);pos++;printf("\n");printf("Do you want to end up reading in?If so input 0,else input 1------------:"); // 你是否想结束读入数据?若是,输入0,不是则输入1scanf("%d",&sign);}printf("-----------------------------Stop reading--------------------------------------\n");		// 停止读取printf("The probability distrubution is :\n");					// 概率分布为:for(int i = 0 ; i < pos ; i++){printf("P{X=%d}=%.2f\n",var[i].X,var[i].p);}float result = D(var,pos);printf("-------------------------------------------------------------------------------\n");printf("\n");printf("Var(X)=%.2f",result);return 0;
}

在这里插入图片描述
代码分析:虽然这个题目十分简单,但是我们可以用代码将做题的这个过程丰富起来。写这个代码的时候的主要难度就在于指针的问题,因为动态分配内存空间时,var指针是一直不变的,始终指向分配的第一块内存空间,所以我们需要另设一个指针a来移动,实现对每个分配的空间的赋值。所以需要注意的就是指针与指针之间的关系。

  1. 一台设备由三个部件构成,在设备运转中各部件需要调整的概率分别为0.01,0.02,0.03,设各部件的状态相互独立,用XXX表示同时需要调整的部件数,求E(X)E(X)E(X)和Var(X)Var(X)Var(X)。

题目分析:由各部件的状态相互独立可以知道,E(X)=E(X1)+E(X2)+E(X3)E(X)=E(X_{1})+E(X_{2})+E(X_{3})E(X)=E(X1​)+E(X2​)+E(X3​),Var(X)=Var(X1)+Var(X2)+Var(X3)Var(X)=Var(X_{1})+Var(X_{2})+Var(X_{3})Var(X)=Var(X1​)+Var(X2​)+Var(X3​)。进而每个部件只有两种情况,所以每个部件符合一次实验的二项分布,即X1X_{1}X1​~B(1,0.01)...B(1,0.01)...B(1,0.01)...

#include 
#include 
#include 
typedef struct
{int X[2];				// Each X has two values ——每个X有两个值float p[2];				// Each X corresponds to a probability ——每个X对应于一个概率
}Data;// The algorithm of Expectation and Variance ——期望和方差的算法
// Here I calculate them through the cognitions ——这里我用概念法计算的
void D(Data* d,int len)
{float sum1 = 0,sum2 = 0;for(int i = 0 ; i < len ; i++){for(int j = 0 ; j < 2 ; j++){float a = d[i].X[j] * d[i].p[j];sum1 += a;sum2 += pow(d[i].X[j],2) * d[i].p[j];sum2 -= pow(a,2);}}printf("E(X)=%.2f\n",sum1);printf("Var(X)=%.4f\n",sum2);
}int main()
{Data* d = NULL;Data* a = NULL;int len;printf("Please input the number of the units(which is regarded as the variate 'X'):");			// 请输入部件的数量(X的数量)scanf("%d",&len);printf("Each unit(Each X) has two values :0,1\n");												// 每个X有两个值d = (Data *) malloc (sizeof(Data) * len);// Initiate X ——初始化Xfor(int i = 0 ; i < len ; i++){d[i].X[0] = 0;d[i].X[1] = 1;}printf("\n");printf("Now we need to input the values of the probability of each condition of each X:\n");	// 现在我们需要输入每个X的每个值对应的概率for(int i = 0 ; i < len ; i++){// Xi=1的概率printf("Input P{X%d=1}=",i + 1);scanf("%f",&d[i].p[1]);// Xi=0的概率d[i].p[0] = 1 - d[i].p[1];}printf("\n");for(int i = 0 ; i < len ; i++){printf("P{X%d=%d}=%.2f\n",i + 1,d[i].X[0],d[i].p[0]);printf("P{X%d=%d}=%.2f\n",i + 1,d[i].X[1],d[i].p[1]);printf("\n");}D(d,len);return 0;
}

在这里插入图片描述
代码分析:主要是一个数据存储的问题,你可以用数组,也可以用结构体来实现。然后其它方面跟上面的代码差不多,然后就是具体算法需要仔细跟数学算式比对,用代码一步一步地去实现每一个步骤。

这一期的学习就到这里了,咱们下期再见~~
在这里插入图片描述

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...