《R语言与回归分析.doc》由会员分享,可在线阅读,更多相关《R语言与回归分析.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-作者xxxx-日期xxxxR语言与回归分析【精品文档】R语言与回归分析回归模型是计量里最基础也最常见的模型之一。究其原因,我想是因为在实际问题中我们并不知道总体分布如何,而且只有一组数据,那么试着对数据作回归分析将会是一个不错的选择。一、简单线性回归 简单的线性回归涉及到两个变量:一个是解释变量,通常称为x;另一个是被解释变量,通常称为y。回归会用常见的最小二乘算法拟合线性模型:yi = 0 + 1xi +i其中0和1是回归系数,i表示误差。在R中,你可以通过函数lm()去计算他。Lm()用法如下:lm(formula, data, subset, weights, na.action,me
2、thod = qr, model = TRUE, x = FALSE, y = FALSE, qr = TRUE,singular.ok = TRUE, contrasts = NULL, offset, .) 参数是formula模型公式,例如y x。公式中波浪号()左侧的是响应变量,右侧是预测变量。函数会估计回归系数0和1,分别以截距(intercept)和x的系数表示。 有三种方式可以实现最小二乘法的简单线性回归,假设数据wage1(可以通过names函数查看数据框各项名称)(1)lm(wage1$wage wage1$educ + wage1$exper)(2)lm (wage edu
3、c + exper, data= wage1)(3)attach(wage1) lm(wageeduc+exper)#不要忘记处理完后用detach()解出关联 我们以数据wage1为例,可以看到工资与教育水平的线性关系:运行下列代码:library(foreign)Alm(wageeduc,data=A)Call:lm(formula = wage educ, data = A)Coefficients:(Intercept) educ 当然得到这些数据是不够的,我们必须要有足够的证据去证明我们所做的回归的合理性。那么如何获取回归的信息呢? 尝试运行以下代码:result|t|)(Inter
4、cept) -0.904850.68497 -1.3210.187educ 0.54136 0.0532510.167 2e-16 *-Signif.codes: 0 * 0.001 * 0.01 * 0.05. 0.1 1Residual standarderror: 3.378 on 524 degrees of freedom 解读上述结果,我们不难看出,单从判决系数R-squared上看,回归结果是不理想的,但是,从p值来看,我们还是可以得到回归系数是很显著地(注意,这里的P lm(y u + v+ w) 显然,多元线性回归是简单的线性回归的扩展。可以有多个预测变量,还是用OLS计算多
5、项式的系数。三变量的回归等同于这个线性模型:yi = 0 + 1ui +2vi + 3wi + i 在R中,简单线性回归和多元线性回归都是用lm函数。只要在模型公式的右侧增加变量即可。输出中会有拟合的模型的系数:result1summary(result1)Call:lm(formula = wage educ + exper + tenure, data = A)Residuals: Min1Q Median 3QMax -866.29 -249.23 -51.07189.62 2190.01 Coefficients: Estimate Std.Error t value Pr(|t|)(
6、Intercept) -276.240106.702 -2.589 0.009778 *educ 74.415 6.28711.836 plot(wageeduc,data=A)A$logwageresult1summary(result1)Call:lm(formula =logwage educ + exper + tenure, data = A)Residuals: Min1Q Median3Q Max Coefficients: Estimate Std. Error t value Pr(|t|)(Intercept) 0.2843600.104190 2.729 0.00656*
7、educ 0.092029 0.00733012.555 2e-16 *exper 0.004121 0.0017232.391 0.01714 *tenure 0.0220670.003094 7.133 3.29e-12 *-Signif.codes: 0 * 0.001 * 0.01 * 0.05. 0.1 1Residual standarderror: 0.4409 on 522 degrees of freedom 看得出,平稳化后的数据线性性是更加好的。 下面我们来提取回归分析的各项统计数据: 一些统计量和参数都被存储在lm或者summary中output -summary (r
8、esult1)SSR- deviance(result1)残差平方和;(另一种方法:RSquared - output$r.squared)LL-logLik(result1) #对数似然统计量DegreesOfFreedom-result1$df #自由度Yhat- result1$fitted.values#拟合值向量Resid- result1$residualss-output$sigma #误差标准差的估计值(假设同方差)CovMatrix -s2*output$cov #系数的方差协方差矩阵(与vcov(result1)同)ANOVA-anova(result1)effects(result1)#计算正交效应向量(Vector of orthogonal effects )三、检查结果 通过图形我们可以以一种十分直观的办法检测我们的拟合效果:plot(result1) 通过扩展包car中的函数来检测异常值与主要影响因子。代码如下:library(car)outlierTest(result1)influence.measures(result1) 在R中,线性回归分析变得无比简单,一个lm函数就摆平了一切。但拟合数据还仅仅是万里长征第一步。最终决定成败的是拟合的模型是否能真正地派上用场。这样对结果的检测与分析就显得尤为重要。【精品文档】