首页 > 编程知识 正文

多元线性回归多重共线性,matlab plot函数

时间:2023-05-04 08:59:03 阅读:161988 作者:4059

前几天,她对我说。 有人在百度上一直在追我的回答,我说了三次我的回答错了。 当时非常惊讶,马上找到了那个回答的问题,看那个人是怎么说的。 最终发现他说的是多重共线性和非线性回归问题。 他认为多个自变量不能直接回归,存在共线性问题,需要因子分析(或主成分分析)。 非线性回归是不能转换为线性回归的方法,这里详细说明这两个问题是怎么回事(据我的理解)。 很多人害怕这个多重共线性问题,发现听到非线性回归,头会变得更大。

(1)多重共线性问题

我们知道,进行多元回归时,特别是进行经济指标回归时,许多变量有共同的趋势相关,无法得到希望的回归模型。 这里常用的有三种方法,每种方法都有不同的目的。 让我们分别看看。

第一种是最贴近方便的——逐步回归法。

逐步回归法根据自变量与因变量之间的相关大小,逐个选择自变量为方法,每次选择一个自变量进行检查。 最终保留在模型中的自变量对因变量最为明显,排除的自变量与因变量无显著线性相关,与其他自变量具有共线性关系。 逐步回归法多元回归分析通常不能有过多的自变量。 通常在十几个以下。 而且,你的数据量只要是变量个数的3倍以上就可以了,否则,建立的回归模型误差很大。 例如,假设有10个变量,并且只有15组数据。 然后进行拟合并回归,得到有9个自变量的系数。 虽然能得到,但是精度不高。 该方法不仅可以找到变量影响显著的几个自变量,而且可以得到准确的预测模型进行预测。 这非常重要。 另一方面,逐步回归中只有几个自变量进入方程,有时只有一两个,我们非常失望。 这是因为大多数参数都是共线性的,并且已经被移除了。 此时,可以用第二种方法进行回归。

二是用因子分析(或主成分分析)回归。

该方法也被广泛使用,可以很好地解决自变量之间的多重共线性。 首先在因子分析中将具有共线性的几个自变量归结为一个因子,对因子分析得到的几个因子和因变量进行回归分析,这里的因子之间没有明显的线性相关性,不能说是共线性的问题。 用这种方法可以得到哪些因子与因变量有显著相关,哪些因子无显著相关,并根据因子中变量对因子的负荷,了解哪些变量对因变量影响的大小关系。 用这个方法只能得到这些信息。 第一,不是得到准确、可预测的回归模型。 在第二种方法中,在有显著影响的因子中,不知道各变量是否对因变量有显著影响。 例如,在因子分析中得到3个因子,使用这3个因子和因变量进行回归分析时,第一和第二因子对因变量有显著影响,但第一因子由4个变量构成,第二因子由3个变量构成,这里这7个变量对因变量有显著影响第三,虽然无法得到各变量对因子的准确影响大小关系,但逐步回归可以直观地看到自变量前系数的大小,判断自变量对因子的影响大小。

三是岭回归。

逐步回归可能会导致某些参数进入方程,但可能会导致参数影响的方向不正确。 例如,第一产业的产值对国民收入有正面效果,方程式的系数可能为负。 这样的结果肯定是由于共线性导致了拟合的失真。 这样的结果只能根据自己的经验来判断。 通常,我们在判断影响因素时,不仅想知道各因素对因变量的真正影响关系,还想知道正确的影响大小,即各自变量的系数大小。 这时,我们可以通过岭回归的方法。

岭回归是在自变量信息矩阵的主对角线元中人为加入非负因子k,使回归系数估计略有偏差,有可能明显提高估计稳定性的一种回归分析方法,是最小二乘法的补充,岭回归可以修复病态矩阵,达到较好的效果。 SPSS不提供脊回归的模块,可以直接点击使用,只需编程即可实现。 当然也可以用SAS、Matlab来实现。 进行岭回归时,需要多次调试,选择合适的k值,才能得到比较满意的方程,目前该方法的应用越来越普遍。 早在07年,我的一位老师还以为这个方法是他的看家能力,但现在很多人都知道这个方法。 而且,使用了越来越多的方法,得到的结果也非常合理。

需要特别注意的是,多重共线性是说变量之间的线性关系,所以请不要和非线性混淆。 多组变量之间的两个极端关系是完全多重共线性关系和完全非线性关系。 也就是说,是完全平行的直线的关系和完全不规则曲线的关系。 当然还有解决多重共线性问题的方法。 例如,差分微分模型应用较少,我想应该会被非常专业的人才使用吧。 啊,反正我做不到这个方法。 接下来谈谈非线性回归。

)2)非线性回归问题。

非线性回归顾名思义是自变量和因变量呈平方、乘方等非线性关系,但大多数非线性方程都能转化为线性方程。 例如,我们通常已知的二次函数: y=a0 a1*x a2*x^2,在此可以变换为线性方程。 首先计算x^2得到x1,方程为y=a0 a1*x a2*x1

这里需要特别注意的是,我说的可以转换成线性的非线性方程是一元非线性方程,而不是多元非线性方程。 我们知道SPSS回归分析有另一个模块叫曲线估计。 其中提供的11个非线性模型都可以转换为线性模型。 另外,进行系数拟合时,通过变换为线性方程式进行拟合。 所以即使是相同的非线性方程式,也不需要在曲线推定中输入系数的初始值,在非线性电路中

归中却要输入。

将非线性方程转换成线性方程再进行拟合,不是因为我们不会做非线性拟合,而改成线性拟合我就会做了,主要原因不是因为这个。而是因为同样的非线性方程拟合比转换成的线性方程拟合误差更大一些,而且由于迭代次数的增多,计算时间会更长,由于我们平时计算的数据不是很多,这种感觉不是非常明显,但是当我们做实际问题的时候,特别是规划问题中,我们将非线性方程转换成线性方程时,计算速度会明显加快。还有一个原因是,做非线性回归的时候,我们要在拟合之前设置初始值,而初始值的选择直接影响后面系数的确定,你改变初始值,拟合出来的系数都会发生变化,这样也会增加非线性回归产生的误差,前面说的误差是计算上产生的误差,而这里是人为经验上产生的误差。因此在做非线性回归时,如果能转换成线性回归,一定转换成线性的来做。

说到那个人,他在留言中说,这样我没有考虑到转换之后自变量之间的多重共线性,不能这样做,还声嘶力竭的喊我误人子弟。这里我要详细说明是怎么回事,要不要考虑这里的多重共线的问题,如果他也能看到更好。一般我们做回归分析的时候,通常第一步看自变量和因变量之间的散点图,通过散点图我们大致判断两者之间存在怎么的关系,再来选择适当的模型。而通常我们不知道具体选择哪个模型,可以选择几个可能相似的模型比较一下,选择一个拟合效果最好的。这里比如说两个变量之间知道是非线性的,但是不知道是二次的、三次的还是四次及以上的关系(通常次方数越低越好),你可以同时考虑,然后根据拟合的结果来判断。如将方程设置为:y=a0+a1*x+a2*x^2+a3*x^3+a4*x^4,转换成线性方程就是:y=a0+a1*x+a2*x2+a3*x3+a4*x4,而这里需不需要考虑这四个自变量之间的共线性呢,上面说过,多重共线性指的是变量之间的线性关系,而这里的四个自变量他们是非线性的关系(x、x^2、x^3、x^4),即使他们的线性相关系数很高(这是因为二次或者三次曲线用直线拟合得到效果也不错,但是我们知道他们之间的确是非线性的关系,而不是线性关系),因此,我们可以他们的多重共线性,在拟合的时候,选择逐步回归法,也可以不考虑,选择直接进入法,两者得到的结果几乎一样,我亲自试验了。如果得到的结果的确有四次方的关系,那么x4自变量就会通过检验,我们可以通过检验来判断两个变量到底存在什么样的曲线关系。

这样还需要简单说下多元非线性回归,多元非线性回归也可以进行转换,但是转换完之后就必须要考虑变量之间的多重共线性了,因为我们不能明确的知道转换之后的自变量是否不存在线性的关系。上次有个人在百度里提问说,我有十几个自变量,想做非线性回归,我们一般不推荐这么多自变量做多元非线性回归,除非你发现十几个自变量都和因变量存在非线性的关系。因为多元非线性回归计算非常复杂,迭代次数非常庞大,而得到的结果也不尽如人意。

好了,这些都是根据我自己的理解和经验来写的,如果一不小心被统计sdgz或者老师看到,如发现说的不对的地方,请一定要在下面指正出来,非常感谢。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。