用matlab做一元线性回归,求大神帮忙解释一下这个命令。

如题所述

X和Y就是你要拟合的数据,上面的是MATLAB工具箱中的regress命令,为[b,bint,r,rint,stats]=regress(y,x,alpha).你这里alpha是缺省的此时默认是0.05  输出b为β的估计值,bint为b的置信区间,r为残差向量,rint为r的置信区间,stats为回归模型的检验统计量,有四个值,第一个是回归方程的决定系数R的平方(R是相关系数),第二个是F的统计量值,第三个是F统计量对应的概率值p,第4个是剩余的方差s的平方。追问

第三行是做什么的?

追答

ones(9,1)是产生一个9行一列的矩阵,整个语句的意思将产生的全一矩阵与x进行拼接

追问

X=[4218 2834 3318 2331 1638 1277 1621 2452]'
Y=[25079 16701 24093 8692 4299 6484 6079 12197]'
X=[ones(8,1), X]
[b,bint,r,rint,stats]= regress(Y,X)
为什么我算出来stats太小。。是这组数据没有线性关系吗。。大神可否帮我试一下。。

追答

这是我画的散点图,基本上看不到有线性关系

追问

额。。。为什么我觉得挺好的。。大神可不可以让我看下运行结果。。我用1 2 3 4 5 和2 4 6 8 10两组数据stats为什么还是很小。。。

追答

其实你仅仅要拟合出一条直线可以用cftool这个工具

追问

谢谢啦,我后来用eviews了,算出来r有九点多,我觉得可能是哪里出问题了,还是谢谢啦

追答

你是指可靠性程度90%多?

温馨提示:答案为网友推荐,仅供参考
相似回答