美文网首页
广义与一般线性模型及R使用

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

作者: 3between7 | 来源:发表于2020-02-27 17:39 被阅读0次

    5.1 数据的分类与模型选择

    • 变量的取值类型

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

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

    \mathbf Y = \mathbf X \mathbf \beta + e \\ E(e) = 0 ,cov(e) = \sigma^2I

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

    1582793257442.jpg

    5.2 广义线性模型

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

    分布 函数 模型
    正态(Gaussian) E(y)=\mathbf{X}'\beta 普通线性模型
    二项(Binomial) E(y)= \frac{exp(\mathbf{X}'\beta)}{1+exp(\mathbf{X}'\beta)} logistic模型和概率模型单位(probit)模型
    泊松(Poission) E(y) = exp(\mathbf{X}'\beta) 对数线性模型

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

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

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

    说明与举例

    1、Logistic模型

    • 函数形式:
      logit(y) = ln \frac{P}{1-P} = \beta_0 +\beta_1x_1 +\beta_2x_2+\cdots+\beta_px_p = \mathbf X \beta

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

    • 举例:
      对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、对数线性模型:

    • 函数形式:

    ln(m_{ij}) = \alpha_i + \beta_j + ε_{ij}
    ln(m_{ij}= \alpha_i + \beta_j +(\alpha\beta)_{ij}+ ε_{ij})

    其中,式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、完全随机设计模型

    • 函数形式:

      y_{ij} = \mu + \alpha_i + e_{ij}\ ,\ i=1,2,\cdots,n
      其中,\mu表示观察结果y_{ij}的总体均值,\alpha_i是哑变量的系数,称为A因素各水平的主效应,e_{ij}是误差项。

      哑变量:也叫虚拟变量,引入哑变量的目的是,想不能够定量处理的变量量化,如职业、性别对收入的影响等,这种“量化”通常是通过引入“哑变量”来完成的,根据这些因素的属性类型,构造只取“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、随机单位组设计模型

    • 函数形式:

    y_{ij}=\mu+\alpha_{i} + \beta_j + e + ij , \ i=1,2,\cdots,n

    其中,\mu为总体均数,\alpha_i为处理因素A的第i个水平的效应;\beta_j为第j个单位组的效应,e_{ij}为误差项。

    • 举例:

    使用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使用

          本文链接:https://www.haomeiwen.com/subject/uexxhhtx.html