【R语言实战】——Logistic回归模型

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972

   个人介绍: 研一|统计学|干货分享
         擅长Python、Matlab、R等主流编程软件
         累计十余项国家级比赛奖项,参与研究经费10w、40w级横向

该篇文章主要展示了利用R语言建立Logistic回归模型,并对新数据进行预测。

1. 数据背景:

  (Sports2.csv)是用于客观性分析的体育文章数据.使用Amazon Mechanical Turk对1000篇体育文章标记了objective(客观)或subjective(主观),这是因变量的两个水平。试以该数据中的Label为因变量,PRP和VBN作为自变量做logistic回归,并对新的样本PRP=20和VBN=5进行判别其Label。

2 数据读取及预处理

  运行程序:

e2<- read.csv('G:\\Sports2.csv')
#Label赋值(二分类)
e2[,1] <- as.character(e2[,1])
e2[,1] <- gsub("objective",0,e2[,1]) #objective为0
e2[,1] <- gsub("subjective",1,e2[,1])#subjective为1
e2[,1] <- as.numeric(e2[,1])
str(e2)

  运行结果:

## 'data.frame':    1000 obs. of  9 variables:
##  $ Label     : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ PRP       : int  2 5 0 2 9 6 2 7 10 15 ...
##  $ VBN       : int  0 9 2 1 6 1 3 10 4 6 ...
##  $ imperative: int  0 0 0 1 1 0 0 3 3 3 ...
##  $ Quotes    : int  0 7 0 3 4 6 2 9 10 0 ...
##  $ past      : int  11 13 8 13 34 24 13 21 59 73 ...
##  $ CC        : int  7 1 8 7 33 17 1 5 49 13 ...
##  $ JJS       : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ WRB       : int  0 0 0 0 0 0 0 0 0 0 ...

3 建立Logistic回归模型

  运行程序:

attach(e2)
e2_glm<-glm(Label~PRP+VBN,family = binomial(link = "logit"))
summary(e2_glm)

  运行结果:

## 
## Call:
## glm(formula = Label ~ PRP + VBN, family = binomial(link = "logit"))
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -3.046  -0.713  -0.541   0.847   2.089  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -2.06267    0.13795  -14.95   <2e-16 ***
## PRP          0.02991    0.01077    2.78   0.0055 ** 
## VBN          0.09711    0.00932   10.41   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1312.5  on 999  degrees of freedom
## Residual deviance: 1026.9  on 997  degrees of freedom
## AIC: 1033
## 
## Number of Fisher Scoring iterations: 4

  由此得到初步的Logistic模型:

P = e − 2.0267 − 0.02991 X 1 + 0.09711 X 2 1 + e − 2.0267 − 0.02991 X 1 + 0.09711 X 2 P=\frac{e^{-2.0267-0.02991X_1+0.09711X_2}}{1+e^{-2.0267-0.02991X_1+0.09711X_2}} P=1+e2.02670.02991X1+0.09711X2e2.02670.02991X1+0.09711X2

  即:

L o g i t ( P ) = − 2.0267 − 0.02991 X 1 + 0.09711 X 2 Logit(P)=-2.0267-0.02991X_1+0.09711X_2 Logit(P)=2.02670.02991X1+0.09711X2

  由数据结果可以看出,在0.01的显著性水平下,自变量PRP和VBN均通过显著性检验。

4 模型预测

  运行程序:

detach(e2)
xb<-predict(e2_glm,data.frame(PRP=20,VBN=5))
p=exp(xb)/(1+exp(xb));p

  运行结果:

##      1 
## 0.2731

  所以结果为0,属于objective (客观)。

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用R语言的glm函数可以拟合logistic回归模型。glm函数是广义线性模型的函数,可以拟合多种类型的回归模型,包括logistic回归。 下面是一个示例代码,展示如何使用glm函数拟合logistic回归模型: ```R # 加载必要的包 library(ggplot2) # 创建一个示例数据集 data <- data.frame( x1 = rnorm(100), x2 = rnorm(100), y = sample(c(0, 1), 100, replace = TRUE) ) # 使用glm函数拟合logistic回归模型 model <- glm(y ~ x1 + x2, data = data, family = binomial) # 查看模型摘要 summary(model) # 进行预测 new_data <- data.frame( x1 = rnorm(10), x2 = rnorm(10) ) predictions <- predict(model, newdata = new_data, type = "response") # 可视化预测结果 ggplot(data, aes(x = x1, y = x2, color = as.factor(y))) + geom_point() + geom_contour(aes(z = predictions), alpha = 0.5) + theme_minimal() ``` 在上述代码中,首先加载了ggplot2包,并创建了一个示例数据集。然后使用glm函数拟合了logistic回归模型,其中y作为因变量,x1和x2作为自变量。在family参数中指定了binomial,表示拟合二分类模型。接着,可以使用summary函数查看模型的摘要信息。 最后,我们创建了一个新的数据集new_data,并使用predict函数进行预测。最后,使用ggplot2包可视化了原始数据和预测结果。 需要注意的是,以上只是一个简单的示例,实际应用中可能需要根据具体情况进行相应的数据预处理、模型优化等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值