R的统计分析——基于线性模型
授课内容
授课目的
学习如何应用R软件解决统计问题
1、统计模型、方法简介
2、应用实例
3、实验作业
统计模型的线性表示
很多统计模型可以用一个线型模型来表示:
写成矩阵形式为
在R中模型是一种对象,其表达形式叫做一个公式,我们先举几个例子来看一看。
假定下表中 y,x,x0,x1,x2,…是数值型变量,X是矩阵,A,B,C,…是因子。
y ~ x
y ~ 1 + x
两个式子都表示y对x的简单一元线型回
归。第一个式子带有隐含的截距项,而
第二个式子把截距项显式地写了出来(并不代表截距是1)。
y ~ -1 + x
y ~ x - 1
都表示y对x的通过原点的回归,即不带截距项的回归(-1只是表示不带截距项)。
log(y) ~ x1 + x2
表示log(y)对x1和x2的二元回归,带有隐含的截距项。
y ~ poly(x, 2)
y ~ 1 + x + I(x^2)
表示y对x的一元二次多项式回归。第一种形式使用正交多项式,第二种形式直接使用x的各幂次。
y ~ X + poly(x,2)
因变量为y的多元回归,模型矩阵包括矩阵X,以及x的二次多项式的各项。
y ~ A
一种方式分组的方差分析,指标为y,分组因素为A。
在R中~运算符用来定义模型公式。一般的线性模型的公式形式为
因变量~+- 第一项+- 第二项+- 第三项…
其中因变量可以是向量或矩阵,或者结果为向量或矩阵的表达式。加号+或者减号-,表示在模型中加入一项或去掉一项,第一项前面如果是加号可以省略。
公式中的各项可以取为:
一个值为向量或矩阵的表达式,或1。
一个因子
一个“公式表达式”,由“公式运算符”把因子、向量、矩阵连接而成。
每一项定义了要加入模型矩阵或从模型矩阵中删除的若干列。一个1表示一个截距项列,除非显式地删除总是隐含地包括在模型公式中。
注意在函数调用的括号内的表达式按普通四则运算解释。函数I()可以把一个计算表达式封装起来作为模型的一项使用。
注意R的模型表示只给出了因变量和自变量及自变量间的关系,这样只确定了线性模型的模型矩阵,而模型参数向量是隐含的,并没有的模型公式中体现出来。
线性回归模型
拟合普通的线性模型的函数为lm(),其简单的用法为:> <- lm( formula, data= )
其中formula为模型公式; 。
> mod1 =lm(y ~ x1 + x2, data=production)
可以拟合一个y对x1和x2的二元回归(带有隐含的截距项),数据来自数据框production 。拟合的结果存入了对象mod1中。lm()的基本显示十分简练:
> mod1
Call:lm(formula = y ~ x1 + x2, data = production)
Coefficients:
(Intercept) x1 x2
-
只显示了调用的公式和参数估计结果。
> summary(mod1)
使用summary()函数可以给出更详尽的结果,包括Call、Residentials(列出残差的最小值,1/4分位数,中位数,3/4分位数,最大值)、Coefficients(列出了模型的系数估计,假设检验统计量和p值)。
类似这样的提取信息的函数还有很多,详见后页
提取信息的通用函数
lm()函数的返回值叫做模型拟合结果对象,本质上是一个列表,有model 、coefficients、residuals等成员。lm()的结果显示十分简单,为了获得更多的拟合信息,可以使用对lm类对象有特殊操作的通用函数,这些函数包括: add1 coef effects kappa predict residuals alias deviance family labels print summary anova drop1 formula plot proj
下表给出了lm类(拟合模型类)常用的通用函数的简单说明。
通用函数
返回值或效果
anova(对象1,对象2)
把一个子模型与原模型比较,生成方差分析表。
coefficients(对象)
返回回归系数(矩阵)。可简写为coef(对象)。
deviance(对象)
返回残差平方和,如有权重则加权。
formula(对象)
返回模型公式。
plot(对象)
生成两张图,一张是因变量对拟合值的图形,一张是残差绝对值对拟合值的图形。
predict(对象, newdata=数据框)
(对象,
R统计分析 来自淘豆网m.daumloan.com转载请标明出处.