matlab卡方检验函数,求助,matlab中的卡方检验怎么弄

function [p, Q]= chi2test(x)

% Usage: [p, Q]= chi2test(x)

%

% The chi-squared test.

%

% Given a number of samples this function tests the hypothesis that the samples are

% independent. If Q > chi2(p, nu), the hypothesis is rejected.

%

% Each column represents a variables, each row a sample.

%

% If you find any errors, please let me know: .

%

% ARGUMENTS:

% x     Absolut numbers.

% p     The prob ability value, calculated from Q.

% Q     The resulting Q-value.

%

% EXAMPLE 1

% In region A, 324 of 556 cows were red, whereas in region B 98 of 260 were red.

% [p, Q]= chi2test([324, 556-324; 98, 260-98])

% p=

%    4.2073e-08

% Q=

%    30.0515

% With an error risk of about 4e-08, we can claim that the samples are independent.

%

% EXAMPLE 2

% Throw two different dices to see if they have the same probability of 1 (and 2, 3, 4, 5, 6).

% We don't check if they are symetrical, only if the both behave in the same way.

% [p,Q] = chi2test([15,10; 7,11; 9,7; 20,15; 26,21; 19,16])

% p=

%    0.8200

% Q =

%    2.2059

% The dices don't significantly behave differently. That is, they seem to behave in the same way.

%

% HISTORY:    v.1.0, first working version, 2007-08-30.

%

% COPYRIGHT:  (c) 2007 Peder Axensten. Use at own risk.

% KEYWORDS:   chi-squared test, chi-squared, chi2, test

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Check the arguments.

if(nargin ~= 1),                        error('One and only one argument required!');                                        end

if(ndims(x) ~= 2),                        error('The argument (x) must be a 2d matrix!');                                        end

if(any(size(x) == 1)),                error('The argument (x) must be a 2d matrix!');                                        end

if(any(~isreal(x))),                error('All values of the argument (x) must be real values!');        end

% Calculate Q = sum( (a-np*)^2/(np*(1-p*)) )

s=                size(x, 1);

r=                size(x, 2);

np=                sum(x, 2)/sum(sum(x)) * sum(x);                % p=sum(x, 2)/sum(sum(x)) and n=sum(x)

Q=                sum(sum((x-np).^2./(np)));

% Calculate cdf of chi-squared to Q. Degrees of freedom, v, is (r-1)*(s-1).

p=                1 - gammainc(Q/2, (r-1)*(s-1)/2);

end

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值