从这一章开始,我们把目光聚集到广义线性模型的学习中
逻辑回归
这个内容之前我也有过简单的介绍,那么逻辑回归是广义线性模型的一种
我们知道,一般的相信模型Y = βX + B,那么广义线性模型的广义体现在将Y做了一些函数变化,及f(Y) = β' X + B' ,使得该模型运用更加广泛
对于一元的逻辑回归来说:
y对应的输出结果是分类变量,在计算机中可以用布尔值(0和1)来代替,p(y = 1) 代表分类为1的概率为多少
这里的β1代表斜率,β0代表截距
这里只做简单的介绍,详细的概念可以参考之前的推送
我们重点讲下如何用R来实现
coronary.logistic<-glm(group~time, family = binomial) #family = binomial表示我们的y是个二分类变量
我们建立的是group与time的一元逻辑回归关系,其中β1 = -0.016534 ,β0 = 13.488949以及它们的回归系数显著性
顺序变量的逻辑回归(累积)
关于顺序变量的逻辑回归的构造如下:
以一个 j 作为阈值筛选,我们接着看:
其中p(Y=0)+p(Y=1)+p(Y =2)+p(Y=3)+p(Y=4 ) = 1
那么p(Y<=j)即为当Y <= j的概率值之和
我们注意这个模型仅有一个斜率,每个方程对应不同的截距,即该类型模型仅有一个斜率,若干个截距
利用R:
cooking.cum.logit<-polr(cook~treatment, method = c("logistic"))
#假设检验
1- pchisq(deviance(cooking.cum.logit), df.residual(cooking.cum. logit))
其中β1 = -0.7963096;β0 的值如Intercepts所示
顺序变量逻辑回归即按分类序号0,1,2,3,4顺序计算模型
多分类的逻辑回归
其中 i,j 为不同的分类变量
其中不同分类变量截距和斜率均不同。可以看做两个分类变量相互比较,谁的概率大就分为哪一类
我们具体看一个例子,以分三类为例:
politics. multinom<-multinom(viewpoint~age, data = politics)
summary(politics.multinom)
这个数据中viewpoint的变量有三类:C (conservative), M (moderate), or L ( liberal)
那么我们想计算L和M的分类情况:
推测该例子中,R把C(conservative)作为参照来比较,那么我们可用下述式子转换
由于R结果中只有L和M,这分别表示ln(p(Y=L)/p(Y=C))和ln(p(Y=M)/p(Y=C))的值
其他广义线性模型
1.泊松回归
很简单,在泊松分布的基础上对响应变量取对数值
babies.poisson<-glm(babies~sei, data = ses_babies, family = c("poisson"))
结果相信读者都已经会看了,这里不在过多赘述
2. Overdispersed Count Data
泊松回归模型的基本特征是均值和方差相等(可复习下泊松分布),若不等,则会造成误差;我们利用quasi-Poisson 模型来进行计算:
babies.quasipoisson<-glm(babies~sei, data = ses_babies, family = c("quasipoisson"))
结果与之前的模型类似,这里不再过多赘述