matlab验证残差r是否服从均值为0的正态分布

古语有云:数模天下,学到就是王道。当我们已经可以使用最小二乘法进行拟合后,计算出残差后,我们可以用t检验进行观察残差是否服从正态分布。因此本博文以最小二乘法拟合为基础,然后寻找残差对残差进行检验。

例子:已知数据x,y如下,建立y与x之间的函数关系,并检验残差r是否服从均值为0的正态分布

>> x= [2 3 4 5 7 8 11 14 15 16 18 19];
>> y=[106.42 108.2 109.58 110 109.93 110.49 110.59 110.6 110.9 110.76 111 111.2];

实验步骤

学习过数学建模的同学应该了解,看出这种先画出散点图,然后猜测曲线的参数表达式,求出最佳参数,得到y与x之间的函数关系,计算出残差,检验残差是否服从均值为0的正态分布。
因此转化为matlab代码步骤如下:

  • 数据输入
  • 作散点图
  • 线性最小二乘拟合
  • 绘制拟合直线
  • 计算出残差
  • 用t检验来检验残差是否服从正态分布
  • 正态分布拟合的检验

实验代码

>> x= [2 3 4 5 7 8 11 14 15 16 18 19];
>> y=[106.42 108.2 109.58 110 109.93 110.49 110.59 110.6 110.9 110.76 111 111.2];
>> plot(x,y,'*')
>> A=polyfit(x,y,1)

A =

    0.1804  108.1387


>> plot(x,y,'*',x,polyval(A,x),'r')

>> cl = y-polyval(A,x);

>> [h1,sig,ci]=ttest(cl,0,0.05)

h1 =

     0


sig =

     1


ci =

   -0.5307    0.5307

>> [h2,P,Jbstat,CV] = lillietest(cl,0.05)

h2 =

     0


P =

    0.1980


Jbstat =

    0.1995


CV =

    0.2420

>> 

实验结果分析

在这里插入图片描述

>> [h1,sig,ci]=ttest(cl,0,0.05)
h1 =
     0
sig =
     1
ci =
   -0.5307    0.5307
>> [h2,P,Jbstat,CV] = lillietest(cl,0.05)
h2 =
     0
P =
    0.1980
Jbstat =
    0.1995
CV =
    0.2420
A =

    0.1804  108.1387
>> 

大家看代码区里的A也就是文字上方,看见0.1804和108.1387,这是它的线性拟合结果,不管是t检验的ttest还是lillietest检验的结果,都接受残差cl服从均值为0的正态分布的假设。从h1=0和h2=0看出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值