R语言统计分析——OLS回归1

参考资料:R语言实战【第2版】

        对于回归模型的拟合,R提供了强大而丰富的功能和选项。

回归类型用途
简单线性用一个量化的解释变量预测一个量化的响应变量
多项式用一个量化的解释变量预测一个量化的响应变量,模型的关系是n阶多项式
多层用拥有等级结构的数据预测一个响应变量(例如学校中教室里的学生)。也被称为分层模型、嵌套模型或混合模型
多元线性用两个或多个量化的解释变量预测一个量化的响应变量
多变量用一个或多个解释变量预测多个响应变量
Logistic用一个或多个解释变量预测一个类别型响应变量
泊松用一个或多个解释变量预测一个代表频数的响应变量
Cox比例风险用一个或多个解释变量预测一个事件(死亡、失败或旧病复发)发生的时间
时间序列对误差项相关的时间序列数据建模
非线性用一个或多个量化的解释变量预测一个量化的响应变量,不过模型是非线性的
非参数用一个或多个量化的解释变量预测一个量化的响应变量,模型的形式源自数据形式,不事先设定
稳健用一个或多个量化的解释变量预测一个量化的响应变量,能抵御强影响点的干扰

        OLS回归是通过预测变量的加权和来预测量化的因变量,其中权重是通过数据估计而得到的参数。OLS回归拟合模型的形式:

\hat{Y_i}=\hat{\beta_0}+\hat{\beta_1}X_{1i}+...+\hat{\beta_k}X_{ki}

其中,i=1...n,n为观测的数目,k为预测变量的数目。

\hat{Y_i}        第i次观测对应的因变量的预测值

X_{ji}        第i次观测对应的第j个预测变量值

\hat{\beta_0}        截距项

\hat{\beta_{j}}        预测变量j的回归系数

        我们的目标是通过减少响应变量的真实值和预测值的差值来获得模型参数(截距项和斜率)。具体而言,即使得残差平方和最小。

\sum^{n}_{i=1}(Y_i-\hat{Y_i})^2=\sum^{n}_{i=1}(Y_i-\hat{\beta_0}+\hat{\beta_1}X_{1i}+...+\hat{\beta_k}X_{ki})^2=\sum^{n}_{i=1}\varepsilon ^{2}_{i}

        为了能够恰当地解释OLS模型的系数,数据必须满足一下统计假设:

        正态性:对于固定的自变量值,因变量值呈正态分布。

        独立性:Yi值之间相互独立。

        线性:因变量与自变量之间为线性相关。

        同方差性:因变量的方差不随着自变量水平的不同而变化。

        如果违背了以上假设,我们的统计显著性检验结果和所得的置信区间就不精确了。注意,OLS回归还假定自变量是固定的且测量无误差,但在实践中通常都放松了这个假设。

1、用lm()拟合回归模型

        在R中,拟合线性模型最基本的函数就是lm(),格式为:

        myfit<-lm(formula,data)

其中,formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模型的数据。结果对象(本例是myfit)存储在一个列表中,包含了所拟合模型的大量信息。表达式(formula)形式如下:

        Y~X1+X2+...+Xk

~左边为响应变量(因变量),右边为各个预测变量(自变量),预测变量之间用+符号分隔。R表达式中常用的符号如下:

符号用途
~分隔符号,左边为响应变量,右边为解释变量
+分隔预测变量
:表示预测变量的交互项。如,要通过x、z以及x与z的交互预测y,表达式为y~x+z+x:z
*表示所有可能交互项的简洁方式。表达式y~x*z*w可展开为y~x+z+w+x:z+x:w+z:w+x:z:w
^表示交互项达到某个次数。表达式y~(x+z+w)^2可展开为y~x+z+w+x:z+x:w+z:w
.表示包含除因变量外地所有变量。若一个数据框值包含变量x、y、z和w,表达式y~.可展开为y~x+z+w
-减号,表示从等式中移除某个变量。表达式y~(x+z+w)^2-x:w可展开为y~x+z+w+x:z+z:w
-1删除截距项。表达式y~x-1表示拟合y在x上的回归,并强制直线通过原点
I()从算术的角度来解释括号中的元素。例如,y~x+(z+w)^2将展开为y~x+z+w+z:w。相反,代码y~x+I((z+w)^2)将展开为y~x+h,h是一个由z和w的平方和创建的新变量
function

可以在表达式中用的数学函数。例如,log(y)~x+z+w表示通过x、z、w来预测log(y)

        除了lm()函数,还有一些对做简单或多元回归分析有用的函数。拟合模型后,将这些函数应用于lm()返回的对象,可以得到更多额外的模型信息。如下:

函数用途
summary()展开拟合模型的详细结果
coefficients()列出拟合模型的模型参数(截距项和斜率)
confint()提供模型参数的置信区间(默认95%)
residuals()列出拟合模型的残差值
fitted()列出拟合模型的预测值
anova()生成一个你和模型的方差分析表,或者比较两个或更多个拟合模型的方差分析表
vcov()列出模型参数的协方差矩阵
AIC()输出赤池信息统计量
plot()生成评价拟合模型的诊断图
predict()用拟合模型对新的数据集预测响应变量值

在使用statsmodels进行OLS回归时,首先要调用statsmodels.regression.linear_model中的OLS函数来创建一个回归模型。然后,可以使用fit()方法对模型进行拟合,得到回归结果的摘要信息,这个摘要信息是由statsmodels.regression.linear_model.RegressionResultsWrapper类提供的。通过调用params属性,可以获取计算出的回归系数。此外,RegressionResultsWrapper类还提供了其他常用方法和属性,如summary()获取回归结果的摘要信息,t_test()进行t检验,F_test()进行F检验,bse获取回归系数的标准差,pvalues获取回归系数的p值等。Statsmodels是Python中一个强大的统计分析包,它提供了多种功能,包括回归分析、时间序列分析、假设检验等。虽然在计量的简便性上不及其他软件如Stata,但它与Python的其他任务(如NumPy、Pandas)结合紧密,可以提高工作效率。OLS(ordinary least square)是statsmodels中最常用的回归分析功能之一。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Statsmodels 统计包之 OLS 回归](https://blog.csdn.net/qq_17119267/article/details/79108333)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [【python计量】statsmodels进行OLS回归——以伍德里奇数据为例](https://blog.csdn.net/mfsdmlove/article/details/124213324)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值