【原创】R语言逻辑回归对收入进行预测报告附代码数据.docx
- 文档编号:79409
- 上传时间:2022-10-02
- 格式:DOCX
- 页数:8
- 大小:72.91KB
【原创】R语言逻辑回归对收入进行预测报告附代码数据.docx
《【原创】R语言逻辑回归对收入进行预测报告附代码数据.docx》由会员分享,可在线阅读,更多相关《【原创】R语言逻辑回归对收入进行预测报告附代码数据.docx(8页珍藏版)》请在冰豆网上搜索。
【原创】附代码数据
有问题到淘宝找“大数据部落”就可以了
1逻辑回归模型
逻辑回归对收入进行预测
回归是一种极易理解的模型,就相当于y=f(x),表明自变量x与因变量y的关系。
最常见问题有如医生治病时的望、闻、问、切,之后判定病人是否生病或生了什么病,其中的望闻问切就是获取自变量x,即特征数据,判断是否生病就相当于获取因变量y,即预测分类。
最简单的回归是线性回归,在此借用AndrewNG的讲义,有如图1.a所示,X为数据点——肿瘤的大小,Y为观测值——是否是恶性肿瘤。
通过构建线性回归模型,如hθ(x)所示,构建线性回归模型后,即可以根据肿瘤大小,预测是否为恶性肿瘤hθ(x)≥.05为恶性,hθ(x)<0.5为良性。
Zi=ln(Pi1−Pi)=β0+β1x1+..+βnxnZi=ln(Pi1−Pi)=β0+β1x1+..+βnxn
2数据描述
该数据从美国人口普查数据库抽取而来,可以用来预测居民收入是否超过50K$/year。
该数据集类变量为年收入是否超过50k$,属性变量包含年龄,工种,学历,职业,人种等重要信息,值得一提的是,14个属性变量中有7个类别型变量。
3问题描述
其实对于收入预测,主要是思考收入由哪些因素推动,再对每个因素做预测,最后得出收入预测。
这其实不是一个财务问题,是一个业务问题。
对于某企业新用户,会利用大数据来分析该用户的信息来确定是否为付费用户,弄清楚用户属性,提高运营人员的办事效率。
流失预测。
这方面会偏向于大额付费用户,提取额特征向量运用到应用场景的用户流失和预测里面去。
我们尝试并预测个人是否可以根据数据中可用的人口统计学变量使用逻辑回归预测收入是否超过$50K的资金。
在这个过程中,我们将:
1.导入数据
2.检查类别偏差
3.创建训练和测试样本
4.建立logit模型并预测测试数据
5.模型诊断
4数据描述分析
AGE
WORKCLASSFNLWGTEDUCATIONEDUCATIONNUM
MARITALSTATUS
occupation RELATIONSHIP RACE
SEXCAPITALGAINCAPITALLOSS
查看部分数据
1
39
State-gov77516
Bachelors
13
Never-married
2
50
Self-emp-not-inc83311
Bachelors
13
Married-civ-spouse
3
38
Private215646
HS-grad
9
Divorced
4
53
Private234721
11th
7
Married-civ-spouse
5
28
Private338409
Bachelors
13
Married-civ-spouse
6
37
Private284582
Masters
14
Married-civ-spouse
1 Adm-clerical
Not-in-family
White
Male
2174
0
2 Exec-managerial
Husband
White
Male
0
0
3Handlers-cleaners
Not-in-family
White
Male
0
0
4Handlers-cleaners
Husband
Black
Male
0
0
5 Prof-specialty
Wife
Black
Female
0
0
6 Exec-managerial
Wife
White
Female
0
0
HOURSPERWEEKNATIVECOUNTRYABOVE50K
1
40
United-States
0
2
13
United-States
0
3
40
United-States
0
4
40
United-States
0
5
40
Cuba
0
6
40
United-States
0
Max. :
90.00 Self-emp-inc :
1116 Max. :
1484705(Other)
EDUCATION
:
981
EDUCATIONNUM
MARITALSTATUS
HS-grad :
10501 Min. :
1.00
Some-college:
7291
BachelorsMastersAssoc-voc11th
(Other)
:
5355
:
1723
:
1382
:
1175
:
5134
Divorced :
4443
1stQu.:
9.00 Married-AF-spouse :
23
Median:
10.00 Married-civ-spouse :
14976
Mean
:
10.08
Married-spouse-absent:
418
3rdQu.:
12.00Max. :
16.00
Never-marriedSeparatedWidowed
:
10683
:
1025
:
993
对数据进行描述统计分析:
AGE
WORKCLASS
FNLWGT
Min.
:
17.00
Private
:
22696
Min. :
12285
1stQu.:
28.00
Self-emp-not-inc:
2541
1stQu.:
117827
Median:
37.00
Local-gov :
2093
Median:
178356
Mean :
38.58
?
:
1836
Mean :
189778
3rdQu.:
48.00
State-gov :
1298
3rdQu.:
237051
OCCUPATION
RELATIONSHIP
RACE
Prof-specialty:
4140
Husband 13193
Amer-Indian-Eskimo:
311
Craft-repair :
4099
Not-in-family:
8305
Asian-Pac-Islander:
1039
Exec-managerial:
4066
Other-relative:
981
Black :
3124
Adm-clerical
:
3770
Own-child :
5068
Other
:
271
Sales
:
3650
Unmarried :
3446
White
:
27816
Other-service
:
3295
Wife :
1568
(Other)
SEX
:
9541
CAPITALGAIN
CAPITALLOSS
HOURSPERWEEK
Female:
10771
Min. :
0 Min. :
0.0
Min. :
1.00
Male:
21790
1stQu.:
0 1stQu.:
0.0
1stQu.:
40.00
Median:
0
Median:
0.0
Median:
40.00
Mean :
1078
Mean :
87.3
Mean :
40.44
3rdQu.:
0
3rdQu.:
0.0
3rdQu.:
45.00
Max. :
99999
Max. :
4356.0
Max. :
99.00
NATIVECOUNTRYABOVE50K
United-States:
29170Min.:
0.0000Mexico:
6431stQu.:
0.0000
?
:
583Median:
0.0000
Philippines:
198Mean:
0.2408Germany:
1373rdQu.:
0.0000Canada:
121Max.:
1.0000
(Other):
1709
从上面的结果中我们可以看到每个变量的最大最小值中位数和分位数等等。
查看数据维度
dim(inputData)
[1]32561
15
从上面的结果中我们可以看到收入情况和一个人的资本收入以及性别存在着正相关。
从图中我们可以看到,如果性别是男性,那么他的收入一般会较高,性别是女性,收入较低。
5检查类偏差
理想情况下,Y变量中事件和非事件的比例大致相同。
所以,我们首先检查因变量
ABOVE50K中的类的比例。
0 1
24720 7841
显然,不同收入人群比例有偏差。
所以我们必须以大致相等的比例对观测值进行抽样,以获得更好的模型。
6建模分析
6.1创建训练和试验样本
解决类别偏差问题的一个方法是以相等的比例绘制训练数据(开发样本)的0和1。
在这样做的时候,我们将把其余的inputData不包含在testData中。
test_ones<-input_ones[-input_ones_training_rows,]
test_zeros<-input_zeros[-input_zeros_training_rows,]
testData<-rbind(test_ones,test_zeros)rowbindthe1'sand0's
接下来,需要找到变量的信息值,以了解在解释因变量(ABOVE50K)方面的价值。
6.2
构建Logit模型和预测
确定模型的最优预测概率截止值
默认的截止预测概率分数为0.5或训练数据中1和0的比值。
但有时,调整概率截止值可以提高开发和验证样本的准确性。
InformationValue:
:
optimalCutoff功能提供了找到最佳截止值以提高1,0,1和0的预测的方法,并减少错误分类错误。
可以计算最小化上述模型的错误分类错误的最优分数。
optCutOff<-optimalCutoff(testData$ABOVE50K,predicted)[1]
=>0.71
6.3模型诊断
给出了β系数,标准误差,z值和p值。
如果模型具有多个级别的分类变量,则会为该变量的每个类别找到一个行条目。
这是因为,每个单独的类别被glm()视为一个独立的二进制变量。
在这种情况下,如果多类别变量中的少数类别在模型中并不显着(即p值大于显着性水平0.5)。
glm(formula=ABOVE50K~RELATIONSHIP+AGE+CAPITALGAIN+职业+
EDUCATIONNUM,family=binomial(link="logit"),data=trainingData)
DevianceResiduals:
Min 1Q Median 3Q Max
-3.8380-0.5319-0.0073 0.6267 3.2847
Coefficients:
EstimateStd.ErrorzvaluePr(>|z|)
(截距)-4.577e+002.464e-01-18.572<2e-16***关系未婚-2.525e+001.145e-01-22.054<2e-16***关系妻子3.209e-011.111e-012.8880
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 原创 语言 逻辑 回归 收入 进行 预测 报告 代码 数据