广义与一般线性模型及R使用

5.1 数据的分类与模型选择

  • 变量的取值类型

因变量的取值类型通常包括:连续变量、“0-1”变量或称二分类变量、有序变量(等级变量)、多分类变量和连续伴有删失变量,解释变量则可分为连续变量、分类变量和等级变量。

  • 模型选择方式:基本公式

若不是正态分布,则该模型为广义线性模型,而若不是连续或正态分布,则该模型为一般线性模型。下表为不同变量类型可选用的模型分类:

1582793257442.jpg

5.2 广义线性模型

广义线性模型(generalized linear model)是一般线性模型的直接推广,它使因变量的总体均值通过一个非线性连接函数(link function)而依赖于线性预测值,同时还允许响应概率分布为指数分布族中的任何一员,在广义线性模型中常用的分布族如下所示:

分布 函数 模型
正态(Gaussian) 普通线性模型
二项(Binomial) logistic模型和概率模型单位(probit)模型
泊松(Poission) 对数线性模型

广义线性模型函数glm()的用法:

glm(formula,family = gaussian, data,...)

formula为公式,即为要拟合的模型;
family为分布族,包括正态分布、二项分布、泊松分布和 伽玛分布,分布族还可以通过选项link=来指定使用的连接函数;
data为可选择的数据框。

说明与举例

1、Logistic模型

  • 函数形式:

    其中参数估计采用极大似然估计。

  • 举例:
    对45名驾驶员的调查结果,其中4个变量的含义为:

    • x1:表示视力状况,1好,0则为有问题;
    • x2:年龄,数值型;
    • x3:驾车教育,1表示参加过驾车教育,0表示无;
    • y:分类变量(去年是否出过事故,1出过,0没有)
#(1)建立全变量logistic回归模型
d5.1 <- xlsx::read.xlsx("msaD.xlsx",sheetIndex=5)
logit.glm <- glm(y~x1+x2+x3,family=binomial,data=d5.1)#logistic回归模型
#summary(logit.glm) #可查看初步的Logistic回归结果

#(2)逐步筛选变量logistic回归模型
logit.step <- step(logit.glm,direction="both")#逐步筛选法变量选择
#summary(logit.step)#可查看变量选择结果

#(3)预测发生交通事故的概率
pre <- predict(logit.step,data.frame(x1=1))#预测视力正常司机Logistic回归结果
p <- exp(pre)/(1+exp(pre))#预测视力正常司机发生事故概率

2、对数线性模型:

  • 函数形式:


其中,式2含有交叉项。

  • 举例:

某企业想了解顾客对其产品是否满意,同时还想了解不同收入的人群对其产品的满意程度是否相同。

d5.2 <- read.xlsx("msaD.xlsx",sheetName="d5.2")
head(d5.2)
##y表示频数,x1表示收入人群,x2表示满意程度
#    y x1 x2
#1  53  1  1
#2 434  2  1
#3 111  3  1
#4  38  1  2
#5 108  2  2
#6  48  3  2
poi <- glm(y~x1+x2,family=poisson(link=log),data=d5.2)
summary(poi)

#Call:
#glm(formula = y ~ x1 + x2, family = poisson(link = log), data = d5.2)
#
#Deviance Residuals:
#      1        2        3        4        5        6
#-10.784   14.444   -8.468   -2.620    4.960   -3.142
#
#Coefficients:
#            Estimate Std. Error z value Pr(>|z|)
#(Intercept)  6.15687    0.14196  43.371  < 2e-16 ***
#x1           0.12915    0.04370   2.955  0.00312 **
#x2          -1.12573    0.08262 -13.625  < 2e-16 ***
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
#(Dispersion parameter for poisson family taken to be 1)
#
#    Null deviance: 662.84  on 5  degrees of freedom
#Residual deviance: 437.97  on 3  degrees of freedom
#AIC: 481.96
#
#Number of Fisher Scoring iterations: 5

从检验结果可以看出,p1和p2都<0.01,说明收入和满意程度对产品有重要影响。

5.3 一般线性模型

1、完全随机设计模型

  • 函数形式:


    其中,表示观察结果的总体均值,是哑变量的系数,称为A因素各水平的主效应,是误差项。

    哑变量:也叫虚拟变量,引入哑变量的目的是,想不能够定量处理的变量量化,如职业、性别对收入的影响等,这种“量化”通常是通过引入“哑变量”来完成的,根据这些因素的属性类型,构造只取“0”或“1”的人工变量,通常称为哑变量,记为D。

  • 举例:

设有3台机器,用来生产规格相同的铝合金薄板。现从3台机器生产出的薄板中各 随机抽取5块,测出厚度值,试分析各机器生产的薄板厚度有无显著差异?

d5.3 <- read.xlsx("msaD.xlsx",sheetName="d5.3")
head(d5.3)
#     Y A
#1 2.36 1
#2 2.38 1
#3 2.48 1
#4 2.45 1
#5 2.47 1
#6 2.43 1
#完全随机设计模型方差分析
anova(lm(Y~factor(A),data=d5.3))

#Analysis of Variance Table
#
#Response: Y
#          Df   Sum Sq  Mean Sq F value   Pr(>F)
#factor(A)  2 0.122233 0.061117  40.534 8.94e-07 ***
#Residuals 15 0.022617 0.001508
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

P<0.05,说明各机器生产的薄板厚度有显著差异。

2、随机单位组设计模型

  • 函数形式:

其中,为总体均数,为处理因素A的第i个水平的效应;为第j个单位组的效应,为误差项。

  • 举例:

使用4种燃料,3种推进器作火箭射程试验,每一种组合情况做一次试验,则得火箭 射程列在下表中,试分析各种燃料A与各种推进器B对火箭射程有无显著影响?

d5.4 <- read.xlsx("msaD.xlsx",sheetName="d5.4")
head(d5.4)
##A是燃料,B是推进器,Y是射程
#    Y A B
#1 582 1 1
#2 491 2 1
#3 601 3 1
#4 758 4 1
#5 562 1 2
#6 541 2 2
anova(lm(Y~factor(A)+factor(B),data=d5.4))
#Analysis of Variance Table
#
#Response: Y
#          Df Sum Sq Mean Sq F value Pr(>F)
#factor(A)  3  15759    5253  0.4306 0.7387
#factor(B)  2  22385   11192  0.9174 0.4491
#Residuals  6  73198   12200

P(A)和P(B)均>0.05,说明各种燃料和各种推进器对火箭射程都无显著影响。

你可能感兴趣的:(广义与一般线性模型及R使用)