matlab 散点图 线性回归图_回归系数(斜率)与相关系数有什么关系?

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 12:24   1873   0

461f2a5c57af506b7925b1a69da51037.png

一句话总结:两者描述的是不同的度量指标。

一、简述线性模型以及matlab的用法。

线性回归对一个因变量(即响应变量)y与一个或多个自变量(即预测变量)x1,...,xn之间的关系进行建模。简单线性回归使用以下关系方程,仅考虑一个自变量:

其中

是截距,
是回归系数,也就是线性模型的斜率。

斜率描述的是什么?

斜率,即回归系数:1个单位的x引起多少个单位的y变化。

但是请注意,斜率的大小会随着变量xy所用的单位而变化。

考虑一组观察量,有n个(x,y)对。

可以化成 A = X·B,注意此时X为已知量(观测值),B就是线性模型中需要根据观测值确定的量。

matlab 计算线性回归的方法:

1、针对

matlab可以 A/X这种方式根据最小二乘原理计算出B

2、针对多项式

使用 polyfit 函数,我们的例子采用这种方法。

3、使用cftool拟合工具箱

二、实例

一切的起源:散点图。

试验数据来自matlab自带的accidents数据 :表示美国每个州的交通事故。

load accidents
x = hwydata(:,14); %Population of states
y = hwydata(:,4); %Accidents per state
format long
p = polyfit(x,y,1); % 1 代表线性拟合
yCalc1 = polyval(p, x);
scatter(x,y)
hold on
plot(x,yCalc1)
xlabel('Population of state')
ylabel('Fatal traffic accidents per state')
title('Linear Regression Relation Between Accidents & Population')
grid on

生成的结果图如下:

2b55e23f340d43fe1395db16cdeba014.png

拟合多项式的系数和截距为:

p =

   1.0e+02 *

   0.000001256394274   1.427120171726538

三、相关系数

先给出一个相关系数很小的例子。

x = 1:100;
y = reshape(rand(10), 1, 100);

format long
p = polyfit(x,y,1); % 1 代表线性拟合
yCalc1 = polyval(p, x);
scatter(x,y)
hold on
plot(x,yCalc1)
xlabel('x')
ylabel('y')
title('均匀分布')
grid on

c14d9d48bf3846ccf9e6fe1579c2da0b.png

拟合多项式的系数和截距为:

p =

  -0.000439481770944   0.531551291067788

比较上述两个拟合系数,发现它们两个是同一量级大小的回归系数。但是观察两幅图,明显感觉到第一个例子中的数据点更聚集在回归线周围,而第二个例子中的数据点几乎和回归线没啥关系。

所以这里就引出了相关系数的概念。

相关系数:变量之间关系的可靠程度。范围在-1~1之间,给你变量x的值,你对判断出变量y的值的一种可靠程度度量。它是描述数据点是否聚集在回归线周围的一种度量。

我们通常使用相关系数的平方用来计算,相关系数^2的计算方法如下:

其中

表示观测值
y的平均数,
表示根据线性模型预测的
y值。

使用这个公式我们算出第一个例子中的回归系数的平方为:

>> Rsq1 = 1 - sum((y - yCalc1).^2)/sum((y - mean(y)).^2)

Rsq1 =

   0.838210531103428

第二个例子中的回归系数的平方为:

>> Rsq2 = 1 - sum((y - yCalc1).^2)/sum((y - mean(y)).^2)

Rsq2 =

   0.001818794039398

啊哈,确实如此!

四、小总

千万不能根据直线的倾斜程度(斜率)判断相关系数。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP