【原创】R语言Logistic逻辑回归算法案例数据分析报告

  • 格式:docx
  • 大小:74.42 KB
  • 文档页数:19

务(附代码数据),
咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
R语言Logistic逻辑回归算法案例
如果线性回归用于预测连续的Y变量,则逻辑回归用于二元分类。

如果我们使用线性回归来模拟二分变量(作为Y),则得到的模型可能不会将预测的Y s
限制在0和1之内。

此外,线性回归的其他假设(例如误差的正态性)可能会被违反。

因此,我们建模事件ln的对数几率(P1 - P.)升ñ(P1- P),其中,P是事件的概率。

上面的等式可以使用参数glm()设置来建模。

但是我们对事件的概率比事件的对数几率更
感兴趣。

因此,上述模型的预测值,即事件的对数几率,可以转换为事件概率,如下所示:family"binomial"
【原创】定制代写开发r/python/spss/matlab/WEKA/sas/sql/C++/stata/eviews/Computer science assignment代写/代
做Project/数据挖掘和统计分析可视化调研报告/程序/PPT等/爬虫数据采集服务(附代码数据),
咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
务(附代码数据),
咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
使用该plogis()函数实现此转换,如下所示,当我们构建logit模型并进行预测时。

示例问题
让我们尝试使用基于adult数据中可用的人口统计变量的逻辑回归来预测个人是否会获得超过50,000美元的收入。

在这个过程中,我们将:
1.导入数据
2.检查课堂偏见
3.创建培训和测试样本
4.计算信息值以找出重要变量
5.构建logit模型并预测测试数据
6.做模型诊断
导入数据
inputData <-read.csv("/wp-
content/uploads/2015/09/adult.csv")
务(附代码数据),
咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
head(inputData)
#=> AGE WORKCLASS FNLWGT EDUCATION EDUCATIONNUM MARITALSTATUS #=> 1 39 State-gov 77516 Bachelors 13 Never-married #=> 2 50 Self-emp-not-inc 83311 Bachelors 13 Married-civ-spouse #=> 3 38 Private 215646 HS-grad 9 Divorced #=> 4 53 Private 234721 11th 7 Married-civ-spouse #=> 5 28 Private 338409 Bachelors 13 Married-civ-spouse #=> 6 37 Private 284582 Masters 14 Married-civ-spouse # OCCUPATION RELATIONSHIP RACE SEX CAPITALGAIN CAPITALLOSS #=> 1 Adm-clerical Not-in-family White Male 2174 0 #=> 2 Exec-managerial Husband White Male 0 0 #=> 3 Handlers-cleaners Not-in-family White Male 0 0 #=> 4 Handlers-cleaners Husband Black Male 0 0 #=> 5 Prof-specialty Wife Black Female 0 0 #=> 6 Exec-managerial Wife White Female 0 0 # HOURSPERWEEK NATIVECOUNTRY ABOVE50K
#=> 1 40 United-States 0
#=> 2 13 United-States 0
务(附代码数据),
咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
#=> 3 40 United-States 0
#=> 4 40 United-States 0
#=> 5 40 Cuba 0
#=> 6 40 United-States 0
检查类偏差
理想情况下,Y变量中事件和非事件的比例应大致相同。

因此,让我们首先检查因变量中类的比例ABOVE50K。

table(inputData$ABOVE50K)
# 0 1
# 24720 7841
显然,存在阶级偏差,当事件的比例远小于非事件的比例时观察到的条件。

所以我们必须以大致相等的比例对观测结果进行采样,以获得更好的模型
创建培训和测试样本
务(附代码数据),
咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
解决类偏差问题的一种方法trainingData是以相等的比例绘制(开发样本)的0和1 。

在这样做时,我们会将inputData未包含的其余部分用于培训testData(验证样本)。

因此,开发样本的大小将小于验证,这是可以的,因为有大量的观察结果(> 10K)。

# Create Training Data
input_ones <-inputData[which(inputData$ABOVE50K ==1), ] # all 1's
input_zeros <-inputData[which(inputData$ABOVE50K ==0), ] # all 0's
set.seed(100) # for repeatability of samples
input_ones_training_rows <-sample(1:nrow(input_ones), 0.7*nrow(input_ones))
# 1's for training
input_zeros_training_rows <-sample(1:nrow(input_zeros), 0.7*nrow(input_ones)) # 0's for training. Pick as many 0's as 1's
training_ones <-input_ones[input_ones_training_rows, ]
training_zeros <-input_zeros[input_zeros_training_rows, ]
trainingData <-rbind(training_ones, training_zeros) # row bind the 1's and
0's
# Create Test Data
务(附代码数据),
咨询QQ:3025393450
有问题到百度搜索“大数据部落”就可以了
欢迎登陆官网:/datablog
test_ones <-input_ones[-input_ones_training_rows, ]
test_zeros <-input_zeros[-input_zeros_training_rows, ]
testData <-rbind(test_ones, test_zeros) # row bind the 1's and 0's
接下来,需要找到变量的信息值,以了解它们在解释因变量(ABOVE50K)时的价值。

为分类变量创建WOE(可选)
或者,我们可以WOE为所有分类变量创建等价物。

这只是一个可选步骤,为简单起见,此步骤不适用于此分析。

for(factor_var in factor_vars){
inputData[[factor_var]] <-WOE(X=inputData[, factor_var],
Y=inputData$ABOVE50K)
}
head(inputData)
#> AGE WORKCLASS FNLWGT EDUCATION EDUCATIONNUM MARITALSTATUS OCCUPATION #> 1 39 0.1608547 77516 0.7974104 13 -1.8846680 -0.713645 #> 2 50 0.2254209 83311 0.7974104 13 0.9348331 1.084280 #> 3 38 -0.1278453 215646 -0.5201257 9 -1.0030638 -1.555142。