身体指标化验数据为四元数据,即指标x=(脂蛋白x1,甘油三脂x2,a蛋白x3,b蛋白x4),一系列病人的身体化验数据构成了四元总体。
问题1:检验数据是否服从正态分布。
分析:P-P图或者Q-Q图,如果数据均匀分布在y=x直线两侧,则认为服从正态分布
代码如下:
%导入数据,命名为y矩阵,n行4列,n是病人数,4代码四元数据 p=4;%四元数据 s=cov(y); bar=mean(y); D=[]; pt=[]; for i=1:20 %tmp=[x(i,1),x(i,2),x(i,3),x(i,4)]'; D(i)=(y(i,:)-bar)*inv(s)*(y(i,:)-bar)'; %pt=(i-0.5)/20; %chi(i)=chi2inv(pt,p); end D=sort(D); %%%%%%%%pp图%%%%%%%%%%% pt=((1:20)-0.5)/20; H=chi2cdf(D,p) plot(pt,H,'o'); hold on i=0:0.05:1; plot(i,i) title('P-P图') %%%%%%%%%%%%%%qq图%%%%%% figure chi=[]; chi=chi2inv(pt,p);%卡方分布函数的逆函数 plot(D,chi,'o'); hold on i=0:12; plot(i,i),title('Q-Q图')问题2:假设病人分为三组,分别为20-35岁女性、20-25岁男性,35-50岁男性,检验这三组指标有无显著性差异
(key:三个总体均值的比较,原假设是没有显著差异)
代码如下:
%三组指标均值的比较,有无显著差异,60*4的矩阵x,1-20行是总体1,21-40行是总体2,41-60行是总体3 n=60;%共60个病人数据 bar=mean(x)'; T=(n-1)*cov(x); y1=x(1:20,:);y2=x(21:40,:);y3=x(41:60,:);%三个分总体 a1=(20-1)*cov(y1); a2=(20-1)*cov(y2); a3=(20-1)*cov(y3); A=a1+a2+a3; gama=det(A)/det(T); f=(54/4)*(1-sqrt(gama))/sqrt(gama) k=3; pval=1-fcdf(f,2*p,2*(n-p+1-k)) if pval<0.05 disp('拒绝原假设,有显著差异') else disp('接受原假设') end问题3:比较三个组的协方差矩阵有无显著差异
分析:原假设是没有显著差异
代码如下:
y1=x(1:20,:);y2=x(21:40,:);y3=x(41:60,:);%三个分总体 p=4;k=3;n=60;%p代表四元总体,k表示三个总体 s1=cov(y1);s2=cov(y2);s3=cov(y3); d=(2*p^2+3*p-1)*(k-1)/(6*(p+1)*(n-k)); f=(1/2)*(p+1)*(k-1)*p; part1=(n-k)*log(det(A./(n-k))); S=[log(det(s1)),log(det(s2)),log(det(s3))]; part2=sum(19*S); M=part1-part2 kesai=(1-d)*M; p_val=1-chi2cdf(kesai,f) if p_val<0.05 disp('拒绝原假设') else disp('接受原假设') end
问题4:比较总体1和2之间的指标有无差异
根据问题2得,总体1和2之间的协方差没有差异,所以选择F统计量
代码如下:
y1=x(1:20,:);y2=x(21:40,:);y3=x(41:60,:);%三个分总体 %检验y1,y2 n=20;m=20;p=4; bar1=mean(y1)';bar2=mean(y2)'; A1=cov(y1)*19;A2=cov(y2)*19; D2=(n+m-2)*(bar1-bar2)'*inv(A1+A2)*(bar1-bar2); T2=n*m*D2/(n+m); F=(n+m-p-1)*T2/((n+m-2)*p);%F统计量 p=1-fcdf(F,p,n+m-p-1);%p值 if p_val<0.05 disp('拒绝原假设,有显著差异') else disp('接受原假设,无差异') end