1. 逻辑回归概念介绍
我们经常会遇到因变量有多个取值而且无大小顺序的情况,比如职业、婚姻情况等等,这时一般的线性回归分析无法准确地刻画变量之间的因果关系,需要用其逻辑回归分析方法来进行拟合模型。
逻辑回归,可以说是在线性回归的基础上加上一个sigmoid函数,将线性回归产生的值归一化到[0-1]区间内。sigmoid函数如下:
然而,逻辑回归只适用于二分类问题。为了使它能扩展到多分类问题,我们将sigmoid函数,换成softmax函数。
2.R语言中实现函数
a. 二项式逻辑回归
R语言中提供glm()函数,又称广义线性模型
函数参数:
glm(formula,family = gaussian, data, weights, subset, na.action, start = NULL, etastart,mustart, offset, control = list(...), model = TRUE, method ="glm.fit", x = FALSE, y = TRUE, contrasts = NULL, ...)
我们主主要用到的参数:formula,family,data,weight。
Formula:展示我们函数关系(Y~X)
Family:选择适合自己的回归模型
Data:运算的数据包括因素以及结果值(数据矩阵)
Weight:相对应因素的权重值。
实例:
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
print(d.AD <- data.frame(treatment,outcome, counts))
glm.D93 <- glm(counts ~ outcome treatment, family = poisson())
anova(glm.D93)
summary(glm.D93)
b. 多项式逻辑回归模型
R语言提供包mlogit。首先安装R包:install.packages(‘mlogit’)
函数参数:
mlogit(formula,data, subset, weights, na.action, start = NULL, alt.subset = NULL, reflevel =NULL, nests = NULL, un.nest.el = FALSE, unscaled = FALSE, heterosc = FALSE,rpar = NULL, probit = FALSE, R = 40, correlation = FALSE, halton = NULL, random.nb = NULL, panel = FALSE, estimate =TRUE, seed = 10, ...)
predict(object,newdata, returnData = FALSE, ...)
实例:
Library(‘mlogit’)
data("Fishing",package = "mlogit")
Fish<- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice ="mode")
##a pure "conditional" model
summary(mlogit(mode~ price catch, data = Fish))
欢迎大家学习交流