多元正态分布及软件实现密度函数图像

正态分布密度函数及特征函数总结:

1.一元标准正态分布 N(0,1)
  • 密度函数: (2π)12ey22
  • 特征函数: et22
2.一元正态分布 N(μ,σ2) :
  • 密度函数: 12πσe(yμ)22σ2
  • 特征函数: eitμt2σ22
3.多元标准正态分布 Nq(0,Iq) :

(其中 Y=y1yq y1yqN(0,1) )

  • 密度函数: (2π)q2eyy2
  • 特征函数: ett2
4.多元正态分布 Np(μ,AA) :

(其中 YNq(0,Iq),X=AY+μNp(μ,AA),A:pq ,其中 AA 记为 )

  • 密度函数: (2π)q2||12e12(xμ)||1(xμ)
  • 特征函数: eitμtt2
例(二元正态图像的实现):

X=[X1X2]N2(μ,) , μ=[μ1μ2] , =[σ11σ21σ12σ22]=[σ12ρσ1σ2ρσ1σ2σ22]>0
* R实现:

#不相关情形
x=seq(-5,5,by=0.1) #生成一组数,从-5到5,间隔0.1#
y=x
x=1
x1=dnorm(x,0,1) #返回值为正态分布密度函数值#
z=outer(x1,x1)
persp(x,y,z,theta=30,phi = 10,expand = 0.8)

#相关情形
fn=function(x,y){
  sigma=matrix(c(1,0,0,1),c(2,2))
  mu=c(0,0)
  sSigma=solve(sigma)
  return(exp(-((x-mu[1])^2*sSigma[1,1]+2*(x-mu[1])*(y-mu[2])*sSigma[1,2]+(y-mu[2])^2*sSigma[2,2])/2)/(2*pi*det(sigma)^0.5))
}
a=4
x=seq(-a,a,0.1)
y=seq(-a,a,0.1)
#outer为每个点(x,y)得到对应的z即z[i,j]=fn(x[i],y[j]),类似matlab的meshgrid
z=outer(x,y,fn)
persp(x,y,z,theta=30)               

*matlab实现:

u=[0;0];%均值
v=[1,0;0,1];%协方差阵
x=-7:0.05:7;%x是-7到7的一组数,每次增加0.05
y=-7:0.05:7;
[X,Y]=meshgrid(x,y);%生成二维网格矩阵
s2x=v(1,1) %x的方差 矩阵v的(1,1)元
s2y=v(2,2) %y的方差 矩阵v的(2,2)元
sx=sqrt(s2x) %x的标准差
sy=sqrt(s2y) %y的标准差
Cov=v(1,2) %协方差
r=Cov/(sx*sy) %相关系数
a=1/(2*pi*sx*sy*sqrt(1-r^2));
b1=-1/(2*(1-r^2));
b2=((X-u(1))./sx).^2;
b3=((Y-u(2))./sy).^2;
b4=2*r.*(X-u(1)).*(Y-u(2))./(sx*sy)
Z=a*exp(b1*(b2+b3-b4));%也就是f(x1,x2)的表达式
mesh(X,Y,Z),title('密度函数图')
figure
contour(X,Y,Z),title('等高线图')  

你可能感兴趣的:(多元正态分布及软件实现密度函数图像)