高斯估计python和matlab

高斯估计 我也忘了具体是啥了

import numpy as np
import math
NDATA=3000
MU=[1,2]
COV=[[0.25,0],[0,0.64]]
SIGMA=[0.5,0.8]
#data=np.random.multivariate_normal(MU,SIGMA,NDATA)
#print(data)
E=np.zeros((NDATA,1,2))
DATA=np.zeros((NDATA,1,2))
COV_R=np.zeros((NDATA,2,2))
MU_R=0
#print(DATA)
for i in range(NDATA):
  DATA[i] = np.random.multivariate_normal(MU, COV)
for i in range(NDATA):
 MU_R=MU_R+DATA[i,0]
MU_R=MU_R/NDATA    #抽取值
for i in range(NDATA):
  #print(DATA[i])
  E[i]=DATA[i]-MU_R #E[i]为第i个样本的偏差 [X-MU,Y-MU]
  #print(E[i])
for i in range(NDATA):
 #print(E[i])
 COV_R[i]=E[i]*E[i].T
 #print(COV_R[i])
COV_1=0
COV_2=0
for i in range(NDATA):  #均值用mean() 然我没看明白
 COV_1=COV_R[i][0][0]+COV_1
 #print(COV_R[i][0][0])
 COV_2=COV_R[i][1][1]+COV_2
COV_1=math.sqrt(COV_1/NDATA)
COV_2=math.sqrt(COV_2/NDATA)
print(MU_R)
print(COV_1)
print(COV_2)

下面是老师给的matlab版,我相当于复写吧,拿python写了一遍。

% 本示例用于最大似然估计的教学示例
% 描述:1)生成过程:根据给定参数的正态分布生成二维数据点样本
% ···2)估计过程:根据最大似然估计算法估计参数值
% 作者:王家宝

% 设置随机数种子,使程序可重复 10次产生的随机数相同
rng(10);

% 生成过程
NDATA = 10; % 数据点数目
MU = [1,2]'; % 分布均值 '代表转置
COV = [0.5,0;0,0.8]; % 协方差:假设各维度相互独立
SIGMA = diag(COV); % 方差:假设各维度相互独立 提取主对角线
DATA = zeros(2,NDATA); %DATA为2*NDATA的零矩阵
for k = 1 : NDATA
    % 依次生成数据
    DATA(:,k) = normrnd(MU,SIGMA);%生成服从正态分布的随机数
end
disp('均值:');
disp(MU);
% disp('协方差:');
% disp(COV);
disp('方差:');
disp(SIGMA);

scatter(DATA(1,:),DATA(2,:)); % 绘制样本点 第一行为横轴 第二行为纵轴
box on; %右边上边有边框了
axis equal;%坐标轴单位相同

% 估计过程
MU_EST = mean(DATA,2); % 计算均值 计算每行均值 MU_EST为估计均值 DATA为数据
DATA_DIF = bsxfun(@minus,DATA,MU_EST); %相减为数据与均值的差值
COV_SQUARE = zeros(2,2,NDATA);%2*2*NDATDA的矩阵
for k = 1 : NDATA
    % 计算每个样本的协方差
    COV_SQUARE(:,:,k) = DATA_DIF(:,k)*DATA_DIF(:,k)';
end
COV_SQUARE_EST = mean(COV_SQUARE,3);%对NDATA个样本取均值 c11:E(xi-MUx)^2 c22:E(yi-MUy)^2
SIGMA_SQUARE_EST = diag(COV_SQUARE_EST);%取对角线
disp('估计均值:');
disp(MU_EST);
% disp('估计协方差:');
% disp(sqrt(COV_SQUARE_EST));
disp('估计方差:');
disp(sqrt(SIGMA_SQUARE_EST));

% 注:系统自带的参数估计,假设数据各维度相互独立
[mu,s] = normfit(DATA');
发布了2 篇原创文章 · 获赞 0 · 访问量 41

猜你喜欢

转载自blog.csdn.net/comea23/article/details/104826091
今日推荐