利用MATLAB绘制置信区域

本文介绍了如何使用MATLAB的自编函数ConfidenceRegion来绘制一维、二维和三维的置信区域,包括置信区间、置信椭圆和置信椭球。通过实例展示了在正态分布和经验分布下绘制95%置信水平的区域,并提供了详细的代码解释。
摘要由CSDN通过智能技术生成

<MATLAB小技巧之二十四:利用MATLAB绘制置信区域>

 

***************************************

统计中经常会遇到求置信区间、置信区域(如置信椭圆、置信椭球)等,有时候需要把置信区域画出来,这样看起看更为直观,下面结合具体案例介绍调用自编函数ConfidenceRegion绘制置信区域。

 

【例1】绘制置信区间。产生一元正态分布随机数向量,绘制样本数据的95%置信区间。

 
x = normrnd(10,4,100,1);
subplot(1,2,1)
ConfidenceRegion(x)
subplot(1,2,2)
ConfidenceRegion(x,'exp')

效果图如下图所示: 
 

【例2】绘制置信椭圆。产生二元正态分布随机数矩阵,绘制样本数据的95%置信椭圆区域。

 x = mvnrnd([1;2],[1 4;4 25],100);
subplot(1,2,1)
ConfidenceRegion(x)
subplot(1,2,2)
ConfidenceRegion(x,'exp')

果图如下图所示: 
 

【例3】绘制置信椭球。产生三元正态分布随机数矩阵,绘制样本数据的95%置信椭球区域。 
x = mvnrnd([1;2;3],[3 0 0;0 5 -1;0 -1 1],100);
subplot(1,2,1)
ConfidenceRegion(x)
subplot(1,2,2)
ConfidenceRegion(x,'exp')

效果图如下图所示: 
  

自编函数ConfidenceRegion程序代码如下:

 
function ConfidenceRegion(xdat,alpha,distribution)
%   绘制置信区域(区间、椭圆区域或椭球区域)
%   ConfidenceRegion(xdat,alpha,distribution)
%   xdat:样本观测值矩阵,p*N 或 N*p的矩阵,p = 1,2 或 3
%   alpha:显著性水平,标量,取值介于[0,1],默认值为0.05
%   distribution:字符串('norm'或'experie

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于MATLAB置信带,我们可以使用MATLAB中的tinv函数和fill函数来绘制置信区域。 假设我们有一组数据x和y,我们想要在95%的置信水平上绘制置信区域。我们可以按照以下步骤操作: 1. 计算样本均值和标准差: ``` mean_x = mean(x); mean_y = mean(y); std_y = std(y); ``` 2. 计算置信水平对应的t值: ``` n = length(y); alpha = 0.05; t = tinv(1-alpha/2, n-1); ``` 3. 计算置信区间的上下界: ``` lower = mean_y - t * std_y / sqrt(n); upper = mean_y + t * std_y / sqrt(n); ``` 4. 绘制置信区域: ``` fill([min(x), max(x), max(x), min(x)], [lower, lower, upper, upper], 'b', 'FaceAlpha', 0.2, 'EdgeColor', 'none'); ``` 这里我们使用fill函数来绘制置信区域,其中第一个参数是x坐标的四个端点,第二个参数是y坐标的四个端点,第三个参数是填充颜色,第四个参数是填充透明度,最后一个参数是边框颜色。 完整代码如下: ``` % 生成数据 x = 1:10; y = [1.2, 1.5, 1.3, 1.6, 1.4, 1.7, 1.5, 1.8, 1.6, 1.9]; % 计算样本均值和标准差 mean_x = mean(x); mean_y = mean(y); std_y = std(y); % 计算置信水平对应的t值 n = length(y); alpha = 0.05; t = tinv(1-alpha/2, n-1); % 计算置信区间的上下界 lower = mean_y - t * std_y / sqrt(n); upper = mean_y + t * std_y / sqrt(n); % 绘制置信区域 figure; plot(x, y, 'o'); hold on; fill([min(x), max(x), max(x), min(x)], [lower, lower, upper, upper], 'b', 'FaceAlpha', 0.2, 'EdgeColor', 'none'); ``` 运行上述代码后,将会得到一张带有置信区域的散点图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值