19477 20

[其他] MATLAB怎么得到多元线性回归系数t检验的p值 [推广有奖]

  • 0关注
  • 1粉丝

博士生

72%

还不是VIP/贵宾

-

威望
0
论坛币
15930 个
通用积分
5.1423
学术水平
0 点
热心指数
3 点
信用等级
0 点
经验
13675 点
帖子
111
精华
0
在线时间
501 小时
注册时间
2014-10-5
最后登录
2023-5-22

1000论坛币



MATLAB怎么得到多元线性回归系数t检验的p值

最佳答案

ievans 查看完整内容

如果可以,请支付一下论坛币,我收问卷急需论坛币,谢谢
关键词:线性回归系数 多元线性回归 多元线性 线性回归 回归系数
沙发
ievans 发表于 2018-12-19 22:22:41 |只看作者 |坛友微信交流群
这个杀手还算冷 发表于 2018-12-20 22:38
谢谢
如果可以,请支付一下论坛币,我收问卷急需论坛币,谢谢

使用道具

MATLAB不自带 ,要自己弄个函数来得到这个是教程
https://blog.csdn.net/fobdddf/article/details/9834849

使用道具

板凳
DrMoney 发表于 2018-12-20 00:41:03 |只看作者 |坛友微信交流群
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值。

使用道具

报纸
DrMoney 发表于 2018-12-20 00:42:09 |只看作者 |坛友微信交流群
进行多元线性回归统计数F, 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=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 测验。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 50 + 5 + 5 + 5 热心帮助其他会员

总评分: 论坛币 + 50  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

经管之家APP1998 发表于 2018-12-20 00:12
MATLAB不自带 ,要自己弄个函数来得到这个是教程
https://blog.csdn.net/fobdddf/article/details/9834849 ...
为什么得到的t统计量跟spss结果不一样呢?

使用道具

7
ievans 发表于 2018-12-20 18:28:54 |只看作者 |坛友微信交流群
可以自己算,p = 2*[1-pnorm(abs(t))], pnorm是标准正态分布的累计概率密度函数(这是R中的函数,matlab可能不是这样的),abs是取绝对值函数
已有 1 人评分论坛币 收起 理由
giresse + 20 精彩帖子

总评分: 论坛币 + 20   查看全部评分

使用道具

8
ievans 发表于 2018-12-20 18:31:10 |只看作者 |坛友微信交流群
你好,我打个广告,如果你是高校学生,请帮忙填的问卷,地址是:https://bbs.pinggu.org/thread-6821161-1-1.html,50论坛币一份,谢谢

使用道具

9
ievans 发表于 2018-12-20 18:33:59 |只看作者 |坛友微信交流群
追加,matlab里正态分布函数累计概率密度函数是normcdf, 所以,p = 2 * (1 - normcdf(abs(t), 0, 1))
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 50 + 5 + 5 + 5 热心帮助其他会员

总评分: 论坛币 + 50  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

ievans 发表于 2018-12-20 18:33
追加,matlab里正态分布函数累计概率密度函数是normcdf, 所以,p = 2 * (1 - normcdf(abs(t), 0, 1))
为什么跟Excel计算的p值有差异啊

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 13:14