R语言数据分析与挖掘(第四章):回归分析(1)——一元回归分析
- 2019 年 10 月 8 日
- 笔记
回归分析只涉及到两个变量的,称一元回归分析。一元回归的主要任务是从两个相关变量中的一个变量去估计另一个变量,被估计的变量,称因变量,可设为Y;估计出的变量,称自变量,设为X。回归分析就是要找出一个数学模型Y=f(X),使得从X估计Y可以用一个函数式去计算。当Y=f(X)的形式是一个直线方程时,称为一元线性回归。这个方程一般可表示为Y=A+BX。根据最小平方法或其他方法,可以从样本数据确定常数项A与回归系数B的值。A、B确定后,有一个X的观测值,就可得到一个Y的估计值。回归方程是否可靠,估计的误差有多大,都还应经过显著性检验和误差计算。有无显著的相关关系以及样本的大小等等,是影响回归方程可靠性的因素。R语言中的一元线性回归是用lm()函数实现的。
lm是用来满足线性模型。它可以用来进行回归,单地层分析,方差和协方差分析,这里介绍一元回归。
lm(formula, data, subset, weights, na.action, method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE, contrasts = NULL, offset, ...)
参数:formula
类对象"formula"(或一个可以强制这一类):将装有模型的一个象征性的描述。在“详细信息”型号规格的细节。
参数:data
一个可选的数据框,列表或环境(as.data.frame到一个数据框或对象强制转换)包含在模型中的变量。如果没有找到data,environment(formula),通常是从哪个lm被称为环境变量。
参数:subset
一个可选的向量指定要在装修过程中使用的观测的子集。
参数:weights
一个向量。指定用于回归的每个观测值的权重。如果非NULL,加权最小二乘配重使用weights(是,较大限度地减少sum(w*e^2)),否则普通最小二乘使用(默认)。
参数:na.action
一个函数,指定缺失值处理方式。若为NULL,使用函数na.omit()删除缺失值。
参数:method
要使用的方法;进行拟合,目前只有method = "qr"支持method = "model.frame"返回的模型框架(model = TRUE,见下文相同)。
参数:model, x, y, qr
逻辑值。如果TRUE返回合适的模型框架,模型矩阵,响应,QR分解的相应部件。
参数:singular.ok
逻辑值。指定奇异拟合是否报错,默认TRUE。
参数:contrasts
可选列表。模型中因子对应的列表,为模型中的每一个因子指定一种对照方式,默认值为NULL。
参数:offset
这可以被用来指定一个先验已知的组件包括在装修过程中的线性预测。这应该是NULL或数字矢量的长度相等的情况数目。一个或多个offset条款可以包括在公式代替,以及,如果超过指定使用它们的总和。
下面以iris数据集进行实战演示:
# 利用iris数据集中的变量Sepal.Length和Petal.Width做回归 # formula 指定的对象 > (lm1=lm(Sepal.Length~Petal.Width,data=iris)) Call: lm(formula = Sepal.Length ~ Petal.Width, data = iris) Coefficients: (Intercept) Petal.Width 4.7776 0.8886 # 4.7776 为变量Sepal.Length的数学期望 > summary(lm1) # 查看多个统计学指标 Call: lm(formula = Sepal.Length ~ Petal.Width, data = iris) Residuals: Min 1Q Median 3Q Max -1.38822 -0.29358 -0.04393 0.26429 1.34521 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 4.77763 0.07293 65.51 <2e-16 *** Petal.Width 0.88858 0.05137 17.30 <2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.478 on 148 degrees of freedom Multiple R-squared: 0.669, Adjusted R-squared: 0.6668 F-statistic: 299.2 on 1 and 148 DF, p-value: < 2.2e-16 # 在Coefficients选项中,对回归模型的参数进行显著性检验,重点看p值。 > par(mfrow=c(2,2)) > plot(lm1) > (lm1=lm(Sepal.Length~Petal.Width,data=iris[-c(123,132),])) Call: lm(formula = Sepal.Length ~ Petal.Width, data = iris[-c(123, 132), ]) Coefficients: (Intercept) Petal.Width 4.7890 0.8649 > summary(lm1) Call: lm(formula = Sepal.Length ~ Petal.Width, data = iris[-c(123, 132), ]) Residuals: Min 1Q Median 3Q Max -1.35927 -0.26939 -0.02953 0.26508 1.02722 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 4.78897 0.06992 68.49 <2e-16 *** Petal.Width 0.86488 0.04958 17.44 <2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.4578 on 146 degrees of freedom Multiple R-squared: 0.6758, Adjusted R-squared: 0.6735 F-statistic: 304.3 on 1 and 146 DF, p-value: < 2.2e-16
