怎样在Excel或者Matlab中进行dw检验?非常急啊!急切盼望好心人能够作答!!!

怎样在Excel或者Matlab中进行dw检验?非常急啊!急切盼望好心人能够作答!!!,第1张

DW检验用于检验随机郑嫌误差项具有一阶自回归形式的序列相关问题,也是就自相关检验

D-W= ∑(Et-Et-1)^2/∑Et^2,Et是第t期的残差,Et-1是第t-1期的残差,∑是对t从第2期到第t期求和,^2表示闭裤平方.

在D-W小于等于2时,D-W检验法则规定:

如D-W>d U,认为ei无自相关;

有自相关.

如4-D-W<dL,认为ei存在负自相关;

如dL<4-D-W<dU,不能确定是否<span style="color: rgb(51, 51, 51)font-family: "&amp">

有自相关.例如:数据x,y导入matlab可以求出残差,时间序列为【1:1:20】,再利用Excel就可以求出DW,结合上面的喊态手DW检验判断ei是否具有自相关性。如果没有就是普通的线性回归,如果有,重新建立新的模型。

x =

1.0e+02 *

1.273000000000000

1.300000000000000

1.327000000000000

1.294000000000000

1.350000000000000

1.371000000000000

1.412000000000000

1.428000000000000

1.455000000000000

1.453000000000000

1.483000000000000

1.466000000000000

1.502000000000000

1.531000000000000

1.573000000000000

1.607000000000000

1.642000000000000

1.656000000000000

1.687000000000000

1.717000000000000

>>y

y =

20.960000000000001

21.399999999999999

21.960000000000001

21.520000000000000

22.390000000000001

22.760000000000002

23.480000000000000

23.660000000000000

24.100000000000001

24.010000000000002

24.539999999999999

24.300000000000001

25.000000000000000

25.640000000000001

26.359999999999999

26.980000000000000

27.520000000000000

27.780000000000001

28.239999999999998

28.780000000000001

>>k=polyfit(x,y,1)

>>A=k(1)

>>B=k(2)

>>scatter(x,y,'-')

>>hold on

>>A

A =

0.176290106553353

>>B

B =

-1.457589881004317

>>y1=A*x+B

y1

20.984140683237555

21.460123970931608

21.936107258625661

21.354349906999598

22.341574503698375

22.711783727460418

23.434573164329166

23.716637334814532

24.192620622508585

24.157362601197917

24.686232920857975

24.386539739717271

25.021184123309343

25.532425432314071

26.272843879838156

26.872230242119553

27.489245615056291

27.736051764230986

28.282551094546381

28.811421414206439

>>x

x =

1.0e+02 *

1.273000000000000

1.300000000000000

1.327000000000000

1.294000000000000

1.350000000000000

1.371000000000000

1.412000000000000

1.428000000000000

1.455000000000000

1.453000000000000

1.483000000000000

1.466000000000000

1.502000000000000

1.531000000000000

1.573000000000000

1.607000000000000

1.642000000000000

1.656000000000000

1.687000000000000

1.717000000000000

>>y

y =

20.960000000000001

21.399999999999999

21.960000000000001

21.520000000000000

22.390000000000001

22.760000000000002

23.480000000000000

23.660000000000000

24.100000000000001

24.010000000000002

24.539999999999999

24.300000000000001

25.000000000000000

25.640000000000001

26.359999999999999

26.980000000000000

27.520000000000000

27.780000000000001

28.239999999999998

28.780000000000001

>>x=[ones(20,1),x]

x =

1.0e+02 *

0.010000000000000 1.273000000000000

0.010000000000000 1.300000000000000

0.010000000000000 1.327000000000000

0.010000000000000 1.294000000000000

0.010000000000000 1.350000000000000

0.010000000000000 1.371000000000000

0.010000000000000 1.412000000000000

0.010000000000000 1.428000000000000

0.010000000000000 1.455000000000000

0.010000000000000 1.453000000000000

0.010000000000000 1.483000000000000

0.010000000000000 1.466000000000000

0.010000000000000 1.502000000000000

0.010000000000000 1.531000000000000

0.010000000000000 1.573000000000000

0.010000000000000 1.607000000000000

0.010000000000000 1.642000000000000

0.010000000000000 1.656000000000000

0.010000000000000 1.687000000000000

0.010000000000000 1.717000000000000

>>[b,bint,r,rint,stats]=regress(y,x,0.05)

b =

-1.457589881004317

0.176290106553353

bint =

-1.915783961023543 -0.999395800985091

0.173199098501920 0.179381114604787

r =

-0.024140683237555

-0.060123970931610

0.023892741374340

0.165650093000401

0.048425496301626

0.048216272539584

0.045426835670835

-0.056637334814532

-0.092620622508583

-0.147362601197916

-0.146232920857976

-0.086539739717271

-0.021184123309343

0.107574567685930

0.087156120161843

0.107769757880448

0.030754384943709

0.043948235769015

-0.042551094546383

-0.031421414206438

rint =

-0.197380214591832 0.149098848116723

-0.234089240235379 0.113841298372159

-0.154875657364706 0.202661140113385

0.011358385565306 0.319941800435497

-0.130852274009141 0.227703266612392

-0.132455310112963 0.228887855192131

-0.137385784544954 0.228239455886624

-0.239133423038235 0.125858753409171

-0.271758881008546 0.086517635991379

-0.316600686646691 0.021875484250859

-0.315878102151843 0.023412260435891

-0.266571280710952 0.093491801276411

-0.206112831653057 0.163744585034371

-0.068631104926293 0.283780240298153

-0.090160666136194 0.264472906459881

-0.064278724936611 0.279818240697506

-0.146265745654130 0.207774515541547

-0.130937032188002 0.218833503726033

-0.213963196628595 0.128861007535830

-0.199398817443354 0.136555989030478

stats =

1.0e+04 *

Columns 1 through 2

0.000099874786001 1.435738949226265

Columns 3 through 4

0.000000000000000 0.000000767910880

一致性检验能不能通过和RI矩阵有关系的,你这个检验要求更严格一些所以通过不了。我这有推荐的RI矩阵,你可以用逗册我的这个函数试试,应该没问题。或者你自己更改一下RI矩阵。山枣宏不过不能改的太大,如果要求太松了,检验就没有意义了。

function A=myjudge()

disp('输岩宏入要判定的矩阵')

A=input('A=')

disp('特征值为:')

[V,D]=eig(A)

D1=diag(D)

D1=D1.'

disp('对应的特征向量为:')

V

disp('最大特征值为:')

m=max(D(:))

[n,z]=size(A)

CI=(m-n)/(n-1)

RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51]

ri=RI(n)

CR=CI/ri

disp('是否通过一致性检验?')

if(CR>0.1)

    disp('not pass')

else

        disp('pass')

        [r,c]=find(m==D)

        v=V(:,c)

        disp('权向量为')

        B=v./sum(v)

    

end

end

怎样用matlab进行列联表检验

1、相关系数就用命令corrcoef

min(min(corrcoef(x1, x2))) 就滚昌是x1,x2之间的相关系数。

比如

t = (1:0.1:100)'

w = 2*pi

x1=sin(w*t)+randn(size(t))

x2=cos(w*t)+randn(size(t))

x3=sin(w*t)+randn(size(t))

x1_x2 = min(min(corrcoef(x1, x2)))

x1_x3 = min(min(corrcoef(x1, x3)))

2、用corrcoef函拦备清数

设a1,b1,c1,d1 ,a2,b2,c2,d2 分别为f(x)和g(x)的系简前数

x=[a1,b1,c1,d1]

y=[a2,b2,c2,d2]

z=corrcoef(x,y)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12545458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存