manbetx官方网站

简单易行的认R语言和逻辑斯蒂回归。[读书笔记] R语言实战 (十三) 广义线性模型。

十月 18th, 2018  |  manbet体育登录

在生活中并无是拥有的问题且如预计一个连续型的数值,比如药剂量,某人薪水,或者客户价值;逻辑斯蒂回归回归其至关重要用以只生三三两两个结果的分类问题,它定义结果的变量只出一定量好像的值,然后根据线性模型来预测归属类的概率;本文或许勾的浅,如果产生错还往能因出来,因为只是描绘了推广问要都;logistic回归

广义线性模型扩展了线性模型的框架,它蕴含了非正态的坐变量分析

倘若发生一个变量它一起就发生点儿近乎值,现在我们用估计出A属于即有限个类型的概率,假要他的线性模型是这样的一个试样;

广义线性模型拟合形式:

可以地方的架势中Y值的分布不是固定的,因为我们都理解概率只能是0-1中,所以我们亟须使更换一下姿势,让Y的价值与几率一样要是0~1的数值,一个行的计尽管是故一个接连函数也有人叫联系函数,它大致的意图就是不怕是将Y变换后变成从正态分布的变量;这样就可以对A进行估算了,这便是logtistic思想;

$$g(\mu_\lambda) = \beta_0 + \sum_{j=1}^m\beta_jX_j$$

当logistic回归中,预测变量和几率之间的涉及可由此Logistic函数表示

$g(\mu_\lambda)为连日来函数$.
假设响应变量服从指数分布族中有分布(不仅仅是正态分布),极大扩展了标准线性模型,模型参数估计的演绎依据是高大似然估计,而不最小二就法.

接下来经过一致多样的logit变换后哪怕改为下的相,感兴趣的可以查阅一下材料,这里就非写详细的步子:

可放松Y为正态分布的如,改吗Y服从指数分布族中之同栽分布即可

这里我们因此R语言核心技术手册中的同一层层代码和多少的话明逻辑斯蒂回归;

glm()函数:glm(formula,family=family(link=function), data = )

第一是咱们事先载入相应的保险以及数码,这个数目是关于足球射门命中之数,对于球员来说每次射门都是出于必然之概率进球,这个概率与相差有关,离球门越近更可能进球;

opebet网址 1

library(nutshell)

Logistic regression:响应变量为二值(0,1),
模型假设Y服从二项分布,线性模型拟合形式:

data(“field.goals”)

opebet网址 2

这我们事先用summary()这个函数观察一下数额的布

可用以下代码拟合Logistic回归:glm(Y~X1+X2+X3, family =
binomial(link=’logit’,data=mydata)

粗略解读一下数据,进球的距离最近凡18码,最远是62码;

#通过婚外情数据来预测婚外情情况
#每个参与者身上有9个变量:性别,年龄,婚龄,是否有小孩,宗教信仰程度,
#学历,职业,婚姻自我评分
library(AER)
data(Affairs,package = 'AER')
#查看描述性统计信息
summary(Affairs)
#将affairs转化Wie二值因子ynaaffair
Affairs$ynaffair[Affairs$affairs > 0] <-1
Affairs$ynaffair[Affairs$affairs == 0] <-0
Affairs$ynaaffair <- factor(Affairs$ynaffair,levels=c(0,1),labels=c("NO","Yes"))
table(Affairs$ynaffair)
#因子化之后的值可以作为Logistic回归的结果变量
fit.full <- glm(ynaffair~gender+age+yearsmarried+children+religiousness+education+occupation+rating,data=Affairs,family=binomial())
#描述模型
summary(fit.full)
#由P值得出性别,孩子,学历,职业对方程的贡献不显著,去除这些变量重新拟合
fit.reduced <- glm(ynaffair~age+yearsmarried+religiousness+rating,data=Affairs,family=binomial())
summary(fit.reduced)
#由结果可以看出这次个每个回归系数都很显著
#由于两个模型嵌套,可以使用anova()对他们进行比较
#卡方值p=0.21,表明四个预测变量的新模型与九个预测变量的模拟拟合程度一样好
anova(fit.reduced,fit.full,test='Chisq')
#解释模型系数:对数优势
coef(fit.reduced)
#指数优势
exp(coef(fit.reduced))
#评价预测变量对结果概率的影响
#婚姻评分对婚外情概率的影响
#创建虚拟数据集,年龄,婚龄,宗教信仰均为均值,婚姻评分为1-5
testdata <- data.frame(rating=c(1,2,3,4,5),age=mean(Affairs$age),yearsmarried=mean(Affairs$yearsmarried),religiousness=mean(Affairs$religiousness))
testdata$prob = predict(fit.reduced,newdata = testdata,type="response")
testdata

咱下列函数是创建进球也的客二分类变量

Logistic 回归变种:

field.goals.forlr <-
transform(field.goals,good=as.factor(ifelse(play.type==”FG
good”,”good”,”bad”)))

  • 端详Logistic regression:
    robust包中glmRob()函数可以拟合文件之广义线性模型,当拟合回归模型出现相差群点的强影响点时,稳健logistic
    regression便好派生用场.
  • 大多项布回归,若响应变量包含两单以上无序类比(已婚,寡居,离婚),便好利用mlogit包中的mlogit()函数拟合多项Logistic回归
  • 序数Logistic回归,若响应变量是平组有序类别(好,中,差),便好用rms()包着的mlogit()函数拟合多项logistic回归

这会儿我们当为此summary()这个函数观察一下射门数据的遍布

Poisson regression:响应变量为计数型, 模型假设Y服从泊松分布,
线性模型拟合形式:

大部分还是进球的,那么我们继承进行多少探究,让咱们看看根据距离计算一下进球比例

opebet网址 3

field.goals.table <-
table(field.goals.forlr$good,field.goals.forlr$yards)

过剩剖析标准线性模型lm()连用的函数在glm()中还生相应之花样:

field.goals.table

opebet网址 4

博的结果如下

 opebet网址 5

理所当然我们也可画出来看

#使用robust包中的癫痫数据Breslow,来讨论癫痫数据对癫痫发病率的影响
library(robust)
data(breslow.dat,package = "robust")
names(breslow.dat)
#我们只关注,Trt治疗条件,Age:年龄,基础癫痫发病数Base, 响应变量为sumY随机化后八周内癫痫发病数
summary(breslow.dat[c(6,7,8,10)])
opar <- par(no.readonly = TRUE)
par(mfrow=c(1,2))
attach(breslow.dat)
#图中可以看到因变量的偏倚特性和可能的离群点
hist(sumY,breaks = 20,xlab = "Seizure count",main="Distribution of Seizures")
boxplot(sumY~Trt,xlab="Treatment",main="Group Comarisons")
par(opar)
#拟合泊松回归
fit <- glm(sumY~Base+Age+Trt,data=breslow.dat,family=poisson())
summary(fit)
#获取模型系数
coef(fit)
exp(coef(fit))

plot(colnames(field.goals.table),field.goals.table[“good”,]/(field.goals.table[“bad”,]+field.goals.table[“good”,]))

  

请求各位自动忽略自己之没有叫XY命名,人较累

泊松回归之的变种:

自上图的结果高达看进球的百分比在随着距离发生变化

  • 日段变化泊松回归
  • 零膨胀泊松回归:logisitic regression + poisson regression

这我们下glm函数建模对数码进行建模,因为以测试数据遭到是各一样次等的射门都是独的,因此我们好看是贝努力实验,因此我们当GLM函数中行使family=’binomial’,因此我们得实行R代码如下

型拟合和回归诊断:

并打印结果;

  1. 发端响应变量的预测值和残差的图纸

  2. 查实模型是否过分离势

field.goals.mdl <- glm(good~yards,data=field.goals.forlr,family =
“binomial”)

 

summary(field.goals.mdl)

 

脚是片结果的解读

NULL deviance
是凭只是包括截距项、不包括解释变量的模型和饱和模型比较得到的病统计量的值

residual deviance
是凭借既包括截距项,又席卷解释变量的模型与饱和模型比较得到的偏差统计量的价值

如若变量的值持续两近似的情事,可以使外的函数multinom函数预测概率;今天我们就是叙到这里;有趣味之得和自我旅交流

标签:, ,

Your Comments

近期评论

    功能


    网站地图xml地图