matlab t检验多元回归 t检验

MATLAB怎么做多元线性回归,并对偏回归系数做t检验,并求出p值?
我试了matlab自带的regress,但是里面没有t检验,只有F检验。自带的ttest,是对一个变量进行t检验,应该不能对多元线性回归的系数做检验,请大牛指点一下!谢谢!
同问啊,不知道怎么求p值 搜到一个网页可以做t检验:查看: 15195|回复: 13|关注: 0
怎么对多元线性回归模型的回归系数β做t检验和F检验?
[h,p,ci]=ttest(x,m)
对β做单参数检验的时候,这里面的x和m分别是什么呢?
还有F检验要怎么做?
菜鸟求教,谢谢大家了^_^
关注者: 26
进行多元线性回归统计数F, t 测验的小程序:
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=b.*b./diag(C);%求算偏回归平方和,其中第一行是a与0差异的偏平方和,
F=Up/MSe,%F测验,其中第一行为a与0差异的F值,
sb=sqrt(MSe*diag(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 测验。
[ 本帖最后由 stats01 于
17:11 编辑 ]
回复 2# stats01 的帖子
是必须要写程序吗?直接用ttest函数不行吗?
关注者: 26
这是matlab一个小的缺陷,它的regress命令未能提供对各回归统计数进行测验的结果。原则上,在进行t测验后,应对不显著的自变数项进行逐个剔除,以使多元线性方程比较简洁。
若用我以上的小程序,运行测验比较简单和方便。但若进行逐个剔除的逐步回归,还需增加循环。
回复 4# stats01 的帖子
我知道了,谢谢啦:)
学习,学习!
stats01 发表于
进行多元线性回归统计数F, t 测验的小程序:
x=rand(50,10);y=rand(50,1); % example
是通过看r^2的值来判断拟合程度吗?怎么判断?谢谢
关注者: 26
当然是r^2(决定系数)越大(接近于1),它们之间的关系越密切,拟合的效果越好。当然,对于复杂的多变数非线性关系的分析,统计上应以离回归方差(MSe)最小为佳。MSe=RSS/(n-k-1), RSS为离回归平方和,n为观察值组数,k为模型的效应项数(不包括常数项)。
stats01 发表于
当然是r^2(决定系数)越大(接近于1),它们之间的关系越密切,拟合的效果越好。当然,对于复杂的多变数非线 ...
最后一行程序“R2=(SSy-RSS)/SSy”,是R2吗?还是R方?
stats01 发表于
当然是r^2(决定系数)越大(接近于1),它们之间的关系越密切,拟合的效果越好。当然,对于复杂的多变数非线 ...
最后是只看r^2的值就可以判断了吗
站长推荐 /1
Powered bymatlab&回归分析
%在实际生活中,某种现象的发生与某种结果的得出往往与其他某个或某些因素有关,但这种关系又不是确定的,只是从数据上可以看出有“有关”的趋势。
%回归分析就是用来研究具有这种特征的变量之间的相关关系的。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%
%%线性回归
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%假设因变量与自变量之间为线性关系,用一定的线性回归模型来拟合因变量和自变量的数据,并通过确定模型参数来得到回归方程;
%当自变量只有一个时,称为一元线性回归;当自变量有多个时,称为多元线性回归。
%1.一元线性回归
%(1)回归模型与参数的确定:
%回归模型:y=b0+b1x
%y为因变量,x为自变量,b0,b1为待定参数(b0称为常数项,b1称为回归系数)。
%通常采用最小二乘法来确定上面两个待定参数,即要求观测值与利用上面回归模型得到的拟合值之间差值的平方和最小。差值平方和达到最小时的模型参数便作为待定参数的最终取值,代入模型,便可确定回归模型。
%(2)回归系数的显著性检验
%给定以上模型和实测数据以后,总可以得到待定参数的拟合值,但由此确定的回归方程式不一定有意义。因此,需要对得到的回归系数做显著性检验,即检验回归系数是否为0。如果为0,则说明因变量与自变量无关,回归方程无意义。
%回归系数的显著性检验有多种方法:F检验法、t检验法和相关系数检验法。
%F检验法:为了对回归方程做显著性检验,首先将观测量和拟合值差值的平方和(SS)分解为回归平方和(SSR)和残差平方和(SSE),F=SSR/(SSE/(n-2));当F值大于一定的临界值时,拒绝原假设,认为因变量与自变量之间是相关的。
%相关系数检验法:R=SUM((Xi-averageX)*(Yi-averageY))/sum(Xi-averageX)^2*sum(Yi-averageY)^2
R为相关系数,当相关系数的绝对值大于一定的临界值时,拒绝原假设。
%(3)回归系数的区间估计
%由最小二乘法得到的是回归系数的点估计(称为最小二乘估计),实际问题中常要求给出回归系数的置信区间。
%(4)预测
%经检验回归系数为显著的以后,便可利用回归方程式做预测。只要输入自变量的一个取值,便可获得一个因变量的估计值。当给定预测精度时就可获得回归系数的预测区间。
%(5)假设的检验
%进行线性回归时,有4个基本假定,即因变量与自变量之间线性关系的假定、残差的独立性假设、残差的方差齐性假定和残差正态分布的假定。
%1)线性诊断:
%2)残差的独立性诊断:
%残差变量用Durbin-Watson检验法进行诊断。
DW=SUM(ei-e(i-1))^2/SUM(ei^2), ei为当前点的残差,ei-1为前一点的残差,n为数据组数。
%当︱DW-2︱过大时拒绝原假设,认为相邻两点的残差之间是相关的。当DW&2,认为相邻两点的残差为正相关,DW&2,负相关;只有当DW≈2时,认为相邻两点的残差之间是相互独立的。
%3)残差的方差齐性诊断:
%这可以通过生成和分析标准化预测值-学生化残差散点图来实现。当图中各点分布没有明显的规律性,即残差的分布不随预测值的变化而增大或减小时,认为残差是方差齐性的。当然也可以通过保存残差对保存变量做方差齐性诊断。
%4)残差的正态性诊断:
%可通过直方图和P-P正态概率图来实现。
%%%%%%%%%%%%%
%%多元线性回归
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%回归模型 y=bo+b1xi1+b2xi2+...bnxin, i=1,2,...,n
%方法大致同一元线性回归,根据多元回归时自变量选择的不同,多元回归可以有多种不同的计算方法:
%(1)全回归法
%进行全回归时,所有的自变量进入回归方程,使用这种方法,一般具有较高的回归系数,但一些对因变量没有显著性影响的自变量也可能进入回归方程。
%(2)向前法
%该方法比较所有自变量与因变量的偏相关系数,然后选择最大的一个做回归系数显著性检验,决定其是否进入回归方程。缺点是某自变量选入方程后,就一直留在方程中,不再剔除。“只进不出法”
%(3)向后法
%该法首先计算包含所有变量的回归方程,然后用偏F检验逐个剔除对因变量无显著性影响的自变量,知道每一个自变量在偏F检验下都有显著性结果为止。得到的结果比全回归简洁,但缺点是,即变量在向后消元过程中如果被剔除,它将永远不会在方程中重新出现。然而一个被剔除的变量很可能在其它变量被剔除后又对因变量有显著性影响。
%(4)逐步回归法*
%是对向前法的改进。它首先对偏相关系数最大的变量做回归系数显著性检验,以决定该变量是否进入方程。然后对方程中每个变量作为最后选入方程的变量求出偏F值,对偏F值最小的那个变量做偏F检验,决定它是否留在回归方程中。重复此过程,直到没有变量被引进和剔除为止。
%%有关函数介绍
%1.用rcoplot函数绘残差个案排序图。
rcoplot(r,rint)
%在回归分析得到的残差处显示一个置信区间的误差条图,图中的残差按案例号排序。r,rint是regress函数的输出参数。
%所有的误差条通过零线时,表示数据中没有异常值。
%2.用regress函数进行多元线性回归。
b=regress(y,X)
%返回X处y的最小二乘拟合值。该函数求解线性模型:y=Xβ+ε
ε~N(0,(σ^2)I);
%y为n*1的矢量,X为n*p的矩阵,β为p*1的参数矢量,ε为n*1的随机干扰矢量。
[b,bint,r,rint,stats]=regress(y,X)
%b: 返回β的估计
(为自变量的系数矢量)
%bint: 返回β的95%置信区间
(p*2矢量)
(为对应个案系数的残差,每个变量有多少个数据就得出多少个残差)
%rint: 返回每一个残差的95%置信区间(n*2矢量)
%stats: 包含R^2统计量,回归的F值和p值。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%假如b的输出结果为[b1;b2;b3;b4];故全回归的回归结果为y=b1X1+b2X2+b3X3+b4X4
%R^2=0.9860,说明模型拟合程度相当高。
%显著性概率p=0.0001,小于0.05,故拒绝零假设,认为回归方程中至少有一个变量的系数不为零,回归方程有意义。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[b,bint,r,rint,stats]=regress(y,X,alpha)
%给出bint和rint的100(1-alpha)%置信区间,alpha=0.2时,给出80%置信区间。
%3.用leverage函数生成回归的中心化杠杆值。
h=leverage(DATA)
%找到DATA矩阵中每一行的中心化杠杆值。
h=leverage(DATA,'model')
%使用指定的模型类型:
%'linear'——包括常数项和线性项;
%'interaction'——包括常数项、线性项和交互项;
%'quadratic'——交互项加上二次项;
%'purequadratic'——包括常数项、线性项和二次项。
%中心化杠杆值用于衡量指定观测量由于其在输入空间中的位置所产生的对回归的影响。
%4.用regstats函数进行线性模型的回归诊断。
regstats(responses,data,model)
%进行多元回归模型拟合,因变量为responses矢量,自变量的值在data矩阵中。该函数创建一个图形用户界面,其中提供了一组用指定变量名将诊断统计量保存到基本工作空间的核选框。model控制模型的阶数。model的选项如下:
%'linear'——包括常数项和线性项;(默认选项)
%'interaction'——包括常数项、线性项和交互项;
%'quadratic'——交互项加上平方项;
%'purequadratic'——包括常数项、线性项和平方项。
stats=regstats(responses,DATA,model,whichstats)
%创建一个输出结构stats,它包含whichstats中列出的统计量。使用本语法不会打开图形用户界面。whichstats可以是一个类似‘leverage’的单一名称,或者类似{'leverage''standres''studres'}的名称单元数组。
%whickstats的合法名称包括:
%'Q'——QR分解得到的Q矩阵(酉矩阵);
%'R'——QR分解得到的R矩阵(三角阵);
%'beta'——回归系数;
%'covb'——回归系数的协方差;
%'yhat'——响应数据的拟合值;
%'r'——残差;(residuals)
%'mse'——均方误差;
%'leverage'——中心化杠杆值;
%'hatmat'——Hat(投影)矩阵;
%'s2_i'——剔除第i个变量以后得到的协方差;
%'beta_i'——剔除第i个变量以后得到的相关系数;
%'standres'——标准化残差;
%'studres'——学生化残差;(student rediduals)
%'dfbetas'——回归系数(β)的变化;
%'dffit'——拟合值的变化;
%'dffits'——拟合数据的比例变化;
%'covratio'——协方差的变化;
%'cookd'——Cook距离;
%'all'——创建上面所有的统计量。
stats=regstats(responses,DATA,'linear','Q')
stats=regstats(responses,DATA,'interaction',{'R''r''cookd'})
stats=regstats(responses,DATA,'quadratic','all')
%5.用stepwise函数进行逐步回归,它使用交互环境进行分析。
stepwise(X,y)
%显示一个交互工具来创建回归模型,用X矩阵的列给定的自变量子集预测矢量y。最初模型中没有自变量,但可以单击自变量来将它们引入到模型或从模型中剔除。
%对于模型中的每个自变量,交互工具用蓝色填充圆表示自变量的最小二乘系数。对于不在模型中的每个自变量,交互工具用绘一个红色填充圆,表示将该自变量添加到模型中时自变量的系数。图中的水平条形表示90%置信区间(彩色)和95%置信区间(黑色)
stepwise(X,y,inmodel,penter,premove)
%指定模型的初始状态和要使用的置信区间。inmodel为长度为X中列数的逻辑矢量,或者为值从1变到X中的列数的索引矢量。inmodel指定包含在初始模型中的自变量,默认时不包含X中的列。pender指定引入自变量的最大p值,默认时为0.05。premove指定剔除自变量的最小p值,默认值为0.10。
%'Stepwise Regression'分析图
%左上部的图形中,对于y轴上的每一项,图中用点表示回归(最小二乘)系数,用水平条表示置信区间。
%蓝色的点表示模型中的项,红色的点表示该项不在模型中。
%右侧有一个表,列出了对应项的回归系数、t统计量和p值。
%不在模型中的项对应的系数是将该项添加到当前模型中以后得到的系数。
%图形下方显示了几个统计量:
%Intercept——常熟项的估计值;
%RMSE——当前模型均方差的平方根;
%R的平方——模型解释的响应变异性的大小;
%调整的R平方——根据残差自由度进行调整以后的R平方统计量;
%F——回归的总F统计量
%P——有关的显著性概率。
%单击图中的条形或表项,可以转换对象项的状态。模型的改变结果与条形的颜色有关。单击蓝色条形,剔除对应项,条形变为红色;单击红色条形,引入对应项,条形变为蓝色。
%选择'Next Step'下面显示的建议步,该步建议的操作时引入统计上最显著的项,或剔除最不显著的项。单击‘Next
Step’按钮,按建议进行操作。
%最终选择较高的回归系数和较小的均方差且变量个数较少的模型为最适合模型。
%默认时,模型中没有引入任何变量,与全回归不同的时,逐步回归的模型中包含常数项。一般用下式计算常熟项:mean(y)-mean(X(:,in))*beta(in)
%假如beta的输出结果为[b0;b1;b2;b3;b4];故引入全部变量的逐步回归的回归结果为y=b1X1+b2X2+b3X3+b4X4+b0
%引入变量X1,X2 :y=b1X1+b2X2+b0
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。苹果/安卓/wp
苹果/安卓/wp
积分 312, 距离下一级还需 138 积分
权限: 自定义头衔, 签名中使用图片
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡下一级可获得
道具: 抢沙发
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
上火签到天数: 33 天连续签到: 16 天[LV.5]常住居民I
我试了matlab自带的regress,但是里面没有t检验,只有F检验。
自带的ttest,是对一个变量进行t检验,应该不能对多元线性回归的系数做检验,请大牛指点一下!谢谢!
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
1.多元线性回归
在Matlab统计工具箱中使用命令regress()实现多元线性回归,调用格式为
b=regress(y,x)
[b,bint,r,rint,statsl = regess(y,x,alpha)
其中因变量数据向量y和自变量数据矩阵x按以下排列方式输入
对一元线性回归,取k=1即可。alpha为显著性水平(缺省时设定为0.05),输出向量b,bint为回归系数估计值和它们的置信区间,r,rint为残差及其置信区间,stats是用于检验回归模型的统 ...
本帖被以下文库推荐
& |主题: 2345, 订阅: 19
& |主题: 2305, 订阅: 4
1.多元线性回归
& & 在Matlab统计工具箱中使用命令regress()实现多元线性回归,调用格式为
& & b=regress(y,x)
& & [b,bint,r,rint,statsl = regess(y,x,alpha)
& & 其中因变量数据向量y和自变量数据矩阵x按以下排列方式输入
& & 对一元线性回归,取k=1即可。alpha为显著性水平(缺省时设定为0.05),输出向量b,bint为回归系数估计值和它们的置信区间,r,rint为残差及其置信区间,stats是用于检验回归模型的统计量,有四个数值,第一个是R2,其中R是相关系数,第二个是F统计量值,第三个是与统计量F对应的概率P,第四个是 an estimate of the error variance(一个错误的方差估计)。
stats参数解释如下:
R2表示方差解释率,R2越接近1说明数据拟合程度越好。
F统计量用于检验模型是否通过检验。通过查F分布表,如果F&F分布表中对应的值,则通过检验。
P为F 统计量对应的概率,越接近0越好,当P&α时拒绝H0,回归模型成立!!!
第4个参数不知何用
& & 画出残差及其置信区间,用命令rcoplot(r,rint)
2.非线性回归
& & 非线性回归可由命令nlinfit来实现,调用格式为
& & [beta,r,j] = nlinfit(x,y,'model’,beta0)
& & 其中,输人数据x,y分别为n×m矩阵和n维列向量,对一元非线性回归,x为n维列向量model是事先用 m-文件定义的非线性函数,beta0是回归系数的初值, beta是估计出的回归系数,r是残差,j是Jacobian矩阵,它们是估计预测误差需要的数据。
预测和预测误差估计用命令
[y,delta] = nlpredci(’model’,x,beta,r,j)
3.逐步回归
& & 逐步回归的命令是stepwise,它提供了一个交互式画面,通过此工具可以自由地选择变量,进行统计分析。调用格式为:
& & stepwise(x,y,inmodel,alpha)
& & 其中x是自变量数据,y是因变量数据,分别为n×m和n×l矩阵,inmodel是矩阵的列数指标(缺省时为全部自变量),alpha,为显著性水平(缺省时为0.5)
& & 结果产生三个图形窗口,在stepwise plot窗口,虚线表示该变量的拟合系数与0无显著差异,实线表示有显著差异,红色线表示从模型中移去的变量;绿色线表明存在模型中的变量,点击一条会改变其状态。在stepwise Table窗口中列出一个统计表,包括回归系数及其置信区间,以及模型的统计量剩余标准差(RMSE),相关系数 (R-square),F值和P值。
根据规定进行奖励
总评分:&经验 + 12&
论坛币 + 82&
member_net 发表于
1.多元线性回归
& & 在Matlab统计工具箱中使用命令regress()实现多元线性回归,调用格式为
& & b=regres ...亲 所答非所问哦
用eviews也可以做呀,干嘛非要MATLAB做
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
为做大做强论坛,本站接受风险投资商咨询,请联系(010-)
邮箱:service@pinggu.org
合作咨询电话:(010)
广告合作电话:(刘老师)
投诉电话:(010)
不良信息处理电话:(010)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师查看: 1719|回复: 7|关注: 0
matlab中的t检验显示的p值精确到多少位?
目前在做t检验,由于差异性太过明显,p值有些达到了5.3E-271这么小的值。但更捉急的是,有些更显著,直接显示为0了,不知道如何确定我计算的p值应该是小数点后多少位了。请大侠指点一下
关注者: 84
如果你的数据类型是双精度(double),那么计算过程中应该有15位有效数字
如果是15位的有效数字,那么得出的p值为5.3E-271怎么解释?
都小数点后200多位了,不解。
如果你的数据类型是双精度(double),那么计算过程中应该有15位有效数字
如果是15位的有效数字,那么得出的p值为5.3E-271怎么解释?
都小数点后200多位了,不解。
关注者: 84
如果是15位的有效数字,那么得出的p值为5.3E-271怎么解释?
都小数点后200多位了,不解。 ...
有效数字和小数点后位数不是一个概念
http://zh.wikipedia.org/wiki/%E6%9C%89%E6%95%88%E6%95%B0%E5%AD%97
有效数字和小数点后位数不是一个概念
http://zh.wikipedia.org/wiki/%E6%9C%89%E6%95%88%E6%95%B0%E5%AD% ...
谢谢斑竹热心回答:lol
不过如果检验得出的p值为0,这个还是没法解释啊。不管有效数字多少位,总有一个数字吧(就算是小数点后1000位全是0,p值也得有15位有效数字啊)。
我就不知道这个0是怎么理解了。
关注者: 84
|此回复为最佳答案
谢谢斑竹热心回答
不过如果检验得出的p值为0,这个还是没法解释啊。不管有效数字多少位,总有一个数 ...
双精度表示的数值是有范围的,绝对值最小为:
realmin('double')
双精度表示的数值是有范围的,绝对值最小为:
realmin('double')
斑竹太牛了,我把它转化为数字是:2.。
站长推荐 /1
Powered by

我要回帖

更多关于 matlab regress t检验 的文章

 

随机推荐