t
测验的小程序:
clear,clc
x=rand(50,10);y=rand(50,1);
%
example
[n,k]=size(x);
X=[ones(n,1),x];%构建结构阵X,
A=X'X;
%求算信息阵A,
C=inv(A);
%求算信息阵的逆阵,
b=X\y,
%
求算回归统计数向量,其中第一行为回归截距a,
RSS=y'y-b'X'y,
%求算离回归平方和,
MSe=RSS/(n-k-1),%求算离回归方差,
Up=bb/diag(C);%求算偏回归平方和,其中第一行是a与0差异的偏平方和,
F=Up/MSe,%F测验,其中第一行为a与0差异的F值,
sb=sqrt(MSediag(C));
%求算回归统计数标准误,
t=b/sb,
%
回归统计数的
t
测验,其中第一行为a与0差异的t测验值。
[t,
t^2,
F],%验证t^2=F
SSy=var(y)(n-1)
R2=(SSy-RSS)/SSy
顺便说一下,你的ttest(x,m)的
t
测验指的是单个样本(平均数)与
m
之间差异显著性的
t
测验,而非多元线性回归系数的
t
测验。相关系数的计算公式应该知道吧
向量X和Y的相关系数=Sigma(xi-xp)(yi-yp)/sqrt(Sigma(xi-xp)^2)sqrt(Sigma(yi-yp)^2)
xp、yp代表平均值
=(nSigma(xiyi)-Sigma(xi)Sigma(yi))/(sqrt(nSigma(xi^2)-(Sigma(xi))^2)sqrt(nSigma(yi^2)-(Sigma(yi))^2))
利用一个循环,分别求出每2个向量的相关系数
向量自身的是自相关系数,这样就形成矩阵了
计算方法如下:
假设协方差矩阵为c
第i行与第j行的相关系数为:
r(i,j)=c(i,j)/sqrt(c(i,i)c(j,j))
若要求整个矩阵可用循环实现
[m,n]=size(c);
for i=1:m
for j=1:n
r(i,j)=c(i,j)/sqrt(c(i,i)c(j,j));
end
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
使用函数corrcoef即可求出,下面是一个例子:help corrcoef
x = randn(30,4); % Uncorrelated data
x(:,4) = sum(x,2); % Introduce correlation
[r,p] = corrcoef(x) % Compute sample correlation and p-values
[i,j] = find(p<005); % Find significant correlations
[i,j] % Display their (row,col) indices
r =
10000 -03566 01929 03457
-03566 10000 -01429 04461
01929 -01429 10000 05183
03457 04461 05183 10000
p =
10000 00531 03072 00613
00531 10000 04511 00135
03072 04511 10000 00033
00613 00135 00033 10000
ans =
4 2
4 3
2 4
3 41、第一步我们首先需要知道matlab中求相关系数用到的是corrcoef函数,在命令行窗口中输入“help
corrcoef”,可以看到corrcoef函数用法,
2、第二步在命令行窗口中输入a=[1
3
6
7
8
16],b=[2
4
7
9
15
19],创建两个矩阵,求两个矩阵的相关系数,
3、第三步输入corrcoef(a,b),按回车键,可以看到两个矩阵的相关系数是 09454
,呈高度相关,
4、第四步输入corrcoef(a),可以求a矩阵的相关系数,如果a矩阵是个多维矩阵,可以通过corrcoef(a(:,1),a(:,2))求每一列的相关系数,
5、第五步按回车键之后,可以a矩阵自身的相关系数为1,这里需要注意的是相关系数000-±03是微相关,±030-±050是实相关,±050-±080是显著相关,±080-±100是高度相关,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)