-
python加权最小二乘_Eviews关于加权最小二乘法(WLS)中权重W的问题
2020-12-03 17:51:20Eviews关于加权最小二乘法(WLS)中权重W的问题使用Eviews7,多元线性模型中,怎么做进行加权最小二乘法啊?也就是WLS。权重W该怎么求呢?补充:我的变量数据有负数。请详细一点,好吗?解答:加权最小二乘法用于处理...Eviews关于加权最小二乘法(WLS)中权重W的问题
使用Eviews7,多元线性模型中,怎么做进行加权最小二乘法啊?也就是WLS。权重W该怎么求呢?补充:我的变量数据有负数。请详细一点,好吗?
解答:加权最小二乘法用于处理异方差,对所得结果中的 标准差/(根号下h)=1,所得:1/(根号下h)即为权重W
不是很明白,我的变量的数据值有负数,不能直接用1/sqr(x).你能说的详细一点吗?
怎么求WLS中的权重W ?
权重就是1/sqr(x),标准差不可能是负数。
变量X中有负数呀,就无法取根号了,也就是说 sqr(X)是不存在了。我的权重已经取了 W=1/resid^2 了
权重取标准差的倒数,之前的意思不是变量X取根号的倒数为权重
首先,应用Park检验,令lin2=log(resid^2),然后用最小二乘法做lin2关于x的回归分析,即输入命令:ls lin2 c x。就可以得到lin2关于x的值,再反求出resid,权重w=resid的倒数。
我表示感谢你看过我的问题并认真指出了教材的页码。不过,我希望得到的回答是在Eviews中作WLS时权重W该如何表示。权重W的学术解释我已经看过了,你能帮我解答一下实际操作Eviews时怎么做吗?
解答:
第一步,检验是否有异方差。先对原回归模型做OLS估计,构造残差平方变量resid^2和因变量预测变量yhat及其平方变量yhat2。再将resid^2关于常数、yhat和yhat2作OLS回归,计算或查出该回归方程估计的F检验统计量值,进行F检验。如拒绝,则存在异方差,进行以下第二步;否则,不存在,不需作异方差纠正。
第二步,在上述检验存在异方差的情况下。具体地,对原回归模型做OLS估计,构造残差平方变量resid^2,再取对数得log(resid^2),将之关于原模型中的解释变量作OLS回归估计(含常数项),得其拟合值变量ghat,再取指数变换exp(ghat),用其倒数1/exp(ghat)作权重,对原模型进行加权最小二乘估计,即将原模型OLS估计中的最小二乘目标函数的一般项乘以1/exp(ghat),或者将原回归模型两端的变量同时除以exp(ghat)的开方再作估计。
上述步骤用eviews是可以做出来的
喜欢 (3)or分享 (0)
-
最小二乘法多元线性回归_多元线性回归,异方差怎么处理?加权最小二乘法
2021-01-15 05:36:32为了解决这个问题,我们采用加权最小二乘法(WLS)的方法来估计模型参数,即在模型拟合时,根据数据变异程度的大小赋予不用的权重,对于变异程度较小,测量更准确的数据赋予较大的权重,对于变异程度较大,测量不稳定...01 研究问题
在构建多重线性回归模型时,需要满足4个条件:因变量与自变量之间存在线性关系(Line),各观测值之间相互独立(Independence),残差近似正态分布(Normality),残差的方差齐(Equal variance),即LINE原则。如果不满足方差齐性时,应该如何解决?
首先如何判断残差的方差齐?即残差的大小不随预测值水平的变化而变化,通常在分析残差的时候,可以通过绘制普通残差或者标准化残差与预测值的散点图进行判断。若残差方差齐,则如下图中a的情况,不论预测值的大小,残差都具有相同的分布,其不随预测值的变化而变化。而如果残差不齐,则如下图b所示,残差的分布随着变量的取值的增大而呈现扩散趋势。
02 方法说明
在多重线性回归中,我们采用的是普通最小二乘法(OLS)估计参数,对模型中每个观测点是同等看待的。但是在有些研究问题中,例如调查某种疾病的发病率,以地区为观测单位,地区的人数越多,得到的发病率就越稳定,因变量的变异程度就越小,而地区人数越少,得到的发病率就越大。在这种情况下,因变量的变异程度会随着自身数值或者其他变量的变化而变化,从而不满足残差方差齐性的条件。
为了解决这个问题,我们采用加权最小二乘法(WLS)的方法来估计模型参数,即在模型拟合时,根据数据变异程度的大小赋予不用的权重,对于变异程度较小,测量更准确的数据赋予较大的权重,对于变异程度较大,测量不稳定的数据则赋予较小的权重,从而使加权后回归直线的残差平方和最小,确保模型有更好的预测价值。
03 加载数据
某研究人员研究PM2.5浓度与癌症发病率之间的关联性,以地区为观测单位,收集40个地区的癌症发病率,PM2.5年平均浓度,人口数量(万),地区来源(农村=0,城市=1)等信息。(数据为模拟数据)
04 方差齐检验
dt <- read.csv('data.csv',stringsAsFactors=F) fit <- lm(dt$Cancer~.,data=dt) #构建多元线性回归 #图形可视化展示 plot(rstandard(fit)~fitted(fit),xlab='y_fit',ylab = 'y.rst',main='fit') #采用car包中ncvTest()检验 car::ncvTest(fit) ##p = 0.025278
由上图左一可看出,标准化残差的变异程度会随着预测值的增大而增大,呈现扩散趋势,表明残差不满足方差齐性的假设。同时,我们采用函数来检验方差是否恒定,结果P值<0.05,表明不满足方差不变的假设。因此需要优化模型。
05 构建加权最小二乘法模型
AIC_ <- c();ID <- c() for(i in seq(0,5,0.5)){ fit.w <- lm(Cancer~.,weights = 1/Population^i,data = dt) AIC_ <- c(AIC_,AIC(fit.w));ID <- c(ID,i)} i <- ID[which.min(AIC_)] ##i =2.5 fit.w <- lm(Cancer~PM2.5+Population+District,weights = 1/Population^i,data = dt) #做残差图 plot(rstandard(fit.w)~fitted(fit.w),xlab='y_fit',ylab = 'y.rst',main='fit.w') car::ncvTest(fit.w) #p = 0.70338 AIC(fit,fit.w) ##426.61;413.84
根据专业知识和经验判断,Population可能是导致残差不满足方差齐性的重要因素,因此需要对该变量进行加权。由于残差随着预测值增大而增大,因此作一个for循环,幂指数i从0到5,步长为0.5,用来定义weights参数中权重变量的指数,一共构建11个方程,根据AIC选择最优的拟合指数。
结果显示幂指数为2.5的时候AIC值最小,以此指数构建的模型残差图如上图右一所示,残差不随预测值的变化而变化,且函数检验的方差P>0.05,说明残差满足方差齐性的检验。同时,对比两个模型的AIC值,可发现校正后的模型AIC值变小,说明该模型优于原模型。
06 模型结果
本例模型结果显示PM2.5平均浓度、不同地区来源(District)和不同人口数量对癌症的发病率的影响都有统计学显著性(P<0.05),其偏回归系数较普通最小二乘法更为稳健。
#Coefficients: # Estimate Std. Error t value Pr(>|t|) #(Intercept) -501.2529 151.2624 -3.314 0.00211 ** #PM2.5 4.5189 1.4006 3.226 0.00267 ** #Population 1.1607 0.1983 5.854 1.09e-06 *** #District 30.5269 11.9389 2.557 0.01492 * # #Residual standard error: 0.1334 on 36 degrees of freedom #Multiple R-squared: 0.7889, Adjusted R-squared: 0.7714 #F-statistic: 44.86 on 3 and 36 DF, p-value: 3.018e-12
文章在公粽号:易学统计
文章里的干货更多哟
欢迎交流,欢迎提问
-
多元线性回归:梯度下降法与最小二乘法;归一化与局部加权;简单对比
2020-06-11 22:18:11简单的归一化与局部加权、部分Python代码机器学习(4)
在一元线性回归的梯度下降法和最小二乘法中介绍了二者的原理以及公式推导的过程。
在处理多元问题时,这两种方法的原理依旧不会有变化,只是在训练模型时添加了矩阵的计算。
梯度下降法
程序实现
首先来回顾一下E的计算公式(公式1.1.1)
多元线性回归的梯度下降程序原理和一元线性回归没有区别,在设定好学习率a后就可以代入训练集计算:
训练集和初始化的K是形似如图的矩阵:
先初始化一些变量:err = np.sum(X*K - Y) #误差 e = 10e-8 #我们允许的两次E差值的最大值 m = len(Y) #样本点数 a = 0.001 #初始化学习率,可能不适合这一组数据 E = 0 #本次E E0 = 0 #上次E A=[0.,0.,0.] #存储当前导数值
计算E
E = err**2/2/m
求导
for i in range(len(K)): A[i] = np.sum(err * X[:,i] ) / m
再梯度下降
for i in range(len(K)): K[i] -= a*A[i]
然后判断 abs(E-E0) 是否 < e,是则break
否则E0 = E #记录本次E的值 E = 0 #重置E
然后再循环,直到 abs(E-E0) < e
如果为了方便,我们可以把上式堆到while True语句里。
(其实a应该写成alpha,而K应该写成theta,其实都是一个东西)我们也可以把它们写成函数,然后封装到一起,就不详细写了。在这里主要想介绍接下来的知识点:归一化
归一化有两种基本的方式,分别是线性函数归一化和0均值归一化:线性函数归一化
(公式1.2.1)
Xmax 和 Xmin分别是这一组中的最大和最小值,X是未归一化的旧数据,X‘是归一化以后的新数据。0均值标准化
(公式1.2.2)
μ是样本数据的均值,σ是样本数据的标准差。两种归一化的区别
由于在我的专业中涉及控制、信号等问题较多,对我个人而言,归一化十分重要。刚刚介绍的两种归一化是各有适用场景的。
二者的直接区别如图:
- 线性函数归一化的显著特征就是:等比例缩放。
比如,有28个[0, 4095]区间的数据,在归一化以后,这28个数据依旧保持原有的倍数;
或者在图像处理时,由RGB图像转化为灰度图像以后,每个像素点的灰度都是在[0, 255]区间里,并且各个数据依旧保持原有的比例。我们并不希望归一化以后的各数据之间的比例发生改变,防止控制器造成错误的判断,这时,我们就需要用到类似线性函数归一化这样的方法处理数据。
- 而0均值归一化,往往适用于需要去量纲化、距离度量、降维等情况。
什么叫去量纲化呢?简单地说就是把各个数据之间单位的差别给去掉。
常见的距离度量有欧氏距离、曼哈顿距离等等。
降维就是把一些复杂的高维的数据转化成低维度,便于我们计算、可视化等等。
(这三条说得很浅,在这里只是简略地提一下)
比如:
现有训练集:
x1=[1 2 8 4 6](阳台数)
x2=[9856, 8759, 7653, 9472, 8991](使用面积)
y=[430.608, 389.087, 375.079, 430.896, 421.413](房子价格)
(这是与实际不符的数据,仅举反例用)
最后算出来的θ应是[1.2, 5.6, 0.043]。(b、k1、k2)。若我们没有使用归一化,由于单位的不统一,程序在计算的时候很容易就会溢出:
不想溢出的话,又要经过非常多次的运算:
当我们需要对这样的训练集进行线性拟合时,若不归一化,程序在梯度下降的时候效率会非常低,最终结果可能也不是很好。此时我们就需要类似0均值归一化这种能够去量纲的归一化方法,来保证梯度下降的效率。两种方式各有优劣,在归一化数据的时候需要我们自己根据实际情况选择方法。
最小二乘法
计算公式
(公式2.1.1)
公式来源在已经在上一期的末尾讲过了,虽然上一期是用的一元线性回归解释,不过其原理是一样的。程序实现
(列向量)
K = (X.T * X).I * X.T * Y
实现原理虽然很简单,但是只适合线性的数据拟合,在面对非线性的数据,或者样本点不够多时计算出的结果往往会发生欠拟合现象。
为了解决欠拟合的问题,我们可以给某些点增加一点权重,人为引入偏差,从而减小整体的均方误差。比如接下来将介绍的“局部加权”
局部加权
先放公式,随后解释:(公式2.2.1)
与前文的公式相比多了一个W对角矩阵,权重矩阵。
求权重最常用的公式如图:(公式2.2.2)
到后面我们就会知道,这是高斯核对应的权重。其中,x是我们要加权的点;xi是其他样本点,x和xi越接近,w(i,i)越大。
k是我们自己选定的参数,k越小,x点附近被用于训练回归模型的点越少。例:
若我们要给样本的第一个数据加权,即X[0]m = len(Y) w = np.eye(m) #创建对角矩阵 k = 0.1 #这个值仅举例用 for i in range(m): X_X = X[0] - X[i,:] w[i,i] = exp(X_X * X_X.T / (-2.0*k**2))
如此我们便完成了单个点的加权,然后再代入公式2.2.1计算出K:
即.K = (X.T * w * X).I * X.T * w * Y
然后再计算出,由这个经过加权后的点预测的值:
Y[0] = K*X[0]
但这仅仅是一个点的加权,而且想这么写程序很麻烦,我们可以把其他的点也分别加权:
- 我们先把刚刚的单个点程序写为函数:
def One_Point(Xtest,X,Y,k):# Xtest是我们要加权的样本点 # 略 return K*Xtest
- 然后就可以不断调用它,从而给其他点加权后再预测值
for i in range(m): Y[i] = One_Point(X[i],X,Y,0.1)
用局部加权方法,可以适当地解决一些欠拟合的问题。
简单地对比
最小二乘法 梯度下降法 公式计算 迭代计算 无学习率 有学习率 不需归一化 需要归一化 与起点无关 与起点有关 全局最小 局部最小 最小二乘法的优点就是可以由公式直接得到线性回归方程,但是计算过于复杂。
当样本点和特征值过多时,比如有100 000个样本点,10 000个特征值的时候,用最小二乘法就会对计算机造成很大的负担,耗费很长时间。此时我们就应该用梯度下降法。
有时XTX并没有逆矩阵,面对这样或者其他的复杂情况时,梯度下降法往往是更好的选择。
-
稳健估计、M估计、最小二乘法
2019-09-06 11:14:44本文先介绍基于最小二乘法的多元线性回归理论,再引出基于M估计的加权最小二乘估计。 关键词:稳健估计,M估计,最小二乘法,加权,极限学习机 4、结尾 文章的最后就要提极限学习机了,黄广斌提出的极限...摘要:稳健估计是在粗差不可避免的情况下,选择适当的估计方法使未知量估计尽可能减免粗差的影响,得出正常模式下的最佳估计。本文先介绍基于最小二乘法的多元线性回归理论,再引出基于M估计的加权最小二乘估计。
关键词:稳健估计,M估计,最小二乘法,加权,极限学习机
4、结尾
文章的最后就要提极限学习机了,黄广斌提出的极限学习机的原理虽说是单隐层前馈神经网络,说白了就是以最小二乘为基础的,所以说最小二乘估计的思想必须牢牢掌握。
参考文献:
[1]胡义函, 张小刚, 陈华, and 李晶辉: ‘一种基于鲁棒估计的极限学习机方法’, 计算机应用研究, 2012, 29, (8), pp. 2926-2930 -
稳健估计/M估计/最小二乘法
2019-06-11 21:05:24本文先介绍基于最小二乘法的多元线性回归理论,再引出基于M估计的加权最小二乘估计。 关键词:稳健估计,M估计,最小二乘法,加权,极限学习机 4、结尾 文章的最后就要提极限学习机了,黄广斌提出的极限... -
第四章-第十章习题答案.ppt
2020-08-20 08:12:05第四章 ~ 第十章 第四章 4.1 试举例说明产生异方差的原因 第四章 4.2 异方差带来的后果有哪些 第四章 4.3 简述用加权最小二乘法消除一元线性回归中异方差性的思想与方法 第四章 4.4简述用加权最小二乘法消除多元线性... -
“同工同酬”问题的研究报告
2010-05-17 23:10:41利用逐步线性回归进行多元数据分析,用Eviews软件进行线性拟合,并用加权最小二乘法对得到的模型进行优化 -
论文研究-基于多元变量Taylor级数展开模型的定位算法.pdf
2019-07-22 18:46:16在对该模型求解过程中,首先利用三边测距法得到未知传感器的初始位置,再采用加权最小二乘法计算其最优值作为未知传感器的估计位置。为评价该算法的性能,推导了定位结果的Cramer-Rao下界(CRLB)。仿真测试了不同... -
《计量经济学》学习笔记之放宽基本假定的模型
2020-03-23 13:05:03加权最小二乘法2.异方差稳健标准误法4.2序列相关性二、实际经济问题中的序列相关性三、序列相关性的后果四、序列相关性的检验五、序列相关的补救六、虚假序列相关问题4.3多重共线性一、多重共线性二、实际经济问题中... -
02-04 线性回归
2020-02-25 19:14:01文章目录线性回归线性回归学习目标线性回归引入线性回归详解线性模型一元线性回归一元线性回归的目标函数均方误差最小化——最小二乘法多元线性回归均方误差最小化——最小二乘法均方误差最小化——牛顿法均方误差... -
多元线性回归matlab代码例题_机器学习之整体线性回归系列总结+代码示例复现(一元线性回归/多元线性回归/岭...
2021-01-02 03:06:41线性回归系列汇总一元线性回归部分笔记关于最小二乘法的再解析概括地说,线性模型就是对输入的特征(样本)加权求和,再加上一个所谓的偏置项(也称截距项,或者噪声)的常数,对此加以预测残差平方和(RSS):等同于SSE... -
基于时变模型辨识的高速列车复合故障诊断
2021-01-12 20:51:28然后,借助模糊聚类算法辨识故障特征值集合,利用模糊加权最小二乘法在线估计故障幅值并进行参数收敛性分析.最后,设计故障分离机制以刻画不同故障模式的报警等级并给出稳定性分析.基于CRH5G型高速列车实际运行数据的... -
matlab一元线性回归分析_机器学习之整体线性回归系列总结+代码示例复现(一元线性回归/多元线性回归/岭回归...
2020-11-26 10:27:35线性回归系列汇总一元线性回归部分笔记关于最小二乘法的再解析概括地说,线性模型就是对输入的特征(样本)加权求和,再加上一个所谓的偏置项(也称截距项,或者噪声)的常数,对此加以预测残差平方和(RSS):等同于SSE... -
北京中科信软spss培训时间序列分析
2013-03-21 08:53:104.加权最小二乘法、两阶段最小二乘法的原理、操作和结果阅读 5.最优尺度回归的功能和操作 6.练习及答疑 第九讲 spss编程操作 1.程序编辑窗口操作入门; 2.使用粘贴命令自动生成SPSS程序; 3基本语句; 4.... -
sklearn0.19中文文档
2018-10-30 15:03:211.1.1. 普通最小二乘法 1.1.1.1. 普通最小二乘法复杂度 1.1.2. 岭回归 1.1.2.1. 岭回归的复杂度 1.1.2.2. 设置正则化参数:广义交叉验证 1.1.3. Lasso 1.1.3.1. 设置正则化参数 1.1.3.1.1. 使用交叉验证 1.1.3.1.2. ...
-
原生Ajax
-
智能停车场云平台(附vue+SpringBoot前后端项目源码)
-
02. Ubuntu终端操作与Shell命令
-
SecureCRT 连接 GNS3/Linux 的安全精密工具
-
使用差分进化快速检测人类
-
Keil.STM32F1xx_DFP.2.3.0.1.rar
-
vscode使用教程.xmind
-
脉冲激光强化点阵光斑强度分布反求算法
-
wifi P2P 自己总结的文档
-
Unity ILRuntime框架设计
-
歌声合成从入门到精通
-
电商PC前后端分离项目Spring Boot后台实战第一期
-
linux网络驱动.zip
-
DHCP 动态主机配置服务(在Linux环境下,配置单网段或跨网段提)
-
vue解决控制http的referer有无
-
字符char拓展
-
名创优品营收同比下降18%:利润水平好转,增长和质量难平衡
-
C. Maximum width Codeforces Round #704 (Div. 2)
-
RapidScada从入门到精通
-
白话:java从入门到实战