原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx

上传人:wj 文档编号:919502 上传时间:2023-04-29 格式:DOCX 页数:36 大小:300.93KB
下载 相关 举报
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第1页
第1页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第2页
第2页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第3页
第3页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第4页
第4页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第5页
第5页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第6页
第6页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第7页
第7页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第8页
第8页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第9页
第9页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第10页
第10页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第11页
第11页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第12页
第12页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第13页
第13页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第14页
第14页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第15页
第15页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第16页
第16页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第17页
第17页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第18页
第18页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第19页
第19页 / 共36页
原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx

《原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx》由会员分享,可在线阅读,更多相关《原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx(36页珍藏版)》请在冰点文库上搜索。

原创R语言高级回归模型算法案例数据分析报告论文附代码数据Word格式.docx

-0.1278

0.1289

-0.9922

Residualstandarderror:

2.441on17degreesoffreedom

比较性能rlm()与lm()

让我们构建等效lm()模型,以便我们可以将错误与相应的拟合值进行比较。

lm_mod<

-lm(stack.loss~.,stackloss) #lmregmodel

计算错误

mae mse rmse mape

#Errorsfromlm()modelDMwR:

:

regr.eval(stackloss$stack.loss,lm_mod$fitted.values)

2.36662028.51571252.91816940.1458878

#Errorsfromrlm()modelDMwR:

regr.eval(stackloss$stack.loss,rlm_mod$fitted.values)

2.19522329.07352833.01222980.1317191

正如预期的那样,稳健回归模型的误差小于线性回归模型。

概率回归

Probit回归可以用来解决二元分类问题,就像逻辑回归一样。

虽然逻辑回归使用累积逻辑函数,但是概率回归使用正态累积密度函数用于估计模型。

指定概率模型类似于逻辑回归,即使用glm()函数但family参数设置为

binomial(link="

probit"

)。

示例问题

让我们使用逻辑回归中的相同示例,并尝试预测一个人是否会赚取超过50,000美元。

因此,在运行构建概率模型的下面的代码之前,您必须按照逻辑回归的步骤导入并准备培训和测试数据。

probitMod<

-glm(ABOVE50K~RELATIONSHIP+AGE+CAPITALGAIN+OCCUPATION+

EDUCATIONNUM,data=trainingData,family=binomial(link="

)) #buildthelogitmodel

predicted<

-predict(probitMod,testData,type="

response"

) #predicttheprobabilityscores

summary(probitMod) #modelsummary#>

EDUCATIONNUM,family=binomial(link="

),data=trainingData)

glm(formula=ABOVE50K~RELATIONSHIP+AGE+CAPITALGAIN+OCCUPATION+

DevianceResiduals:

-4.5104 -0.5506 -0.0005 0.6515 3.6745#>

Estimate

zvalue

Pr(>

|z|)

-2.590e+00

1.401e-01

-18.492

<

2e-16

***

RELATIONSHIPNot-in-family -1.330e+00 4.039e-02-32.929 <

2e-16***

RELATIONSHIPOther-relative

-1.565e+00

1.406e-01

-11.135

2e-16

RELATIONSHIPOwn-child

-1.986e+00

8.785e-02

-22.611

RELATIONSHIPUnmarried

-1.466e+00

6.308e-02

-23.241

RELATIONSHIPWife

1.758e-01

6.387e-02

2.753

0.005910

**

AGE

1.523e-02

1.358e-03

11.214

CAPITALGAIN

1.744e-04

9.158e-06

19.045

OCCUPATIONAdm-clerical

4.955e-01

9.583e-02

5.170

2.34e-07

OCCUPATIONArmed-Forces

7.364e-01

1.034e+00

0.712

0.476343

OCCUPATIONCraft-repair

7.247e-01

9.246e-02

7.838

4.59e-15

OCCUPATIONExec-managerial

1.141e+00

9.117e-02

12.520

OCCUPATIONFarming-fishing

7.620e-02

1.237e-01

0.616

0.537808

OCCUPATIONHandlers-cleaners 3.048e-01 1.295e-01 2.3530.018599*

OCCUPATION

Machine-op-inspct

4.044e-01

1.060e-01

3.816

0.000136***

Other-service

8.727e-02

1.098e-01

0.795

0.426548

Prof-specialty

9.801e-01

9.354e-02

10.477

Protective-serv

8.934e-01

1.271e-01

7.031

2.06e-12

Sales

8.024e-01

9.325e-02

8.605

Tech-support

9.705e-01

1.157e-01

8.387

OCCUPATIONPriv-house-serv -1.605e+00 1.245e+00 -1.2890.197400

EDUCATIONNUM 1.575e-01 7.696e-03 20.464 <

OCCUPATIONTransport-moving 6.133e-01 1.054e-01 5.8215.86e-09***

---

Signif.codes:

0'

***'

0.001'

**'

0.01'

*'

0.05'

.'

0.1'

'

1#>

Nulldeviance:

15216.0 on10975 degreesoffreedom

(Dispersionparameterforbinomialfamilytakentobe1)#>

Residualdeviance:

8753.6 on10953 degreesoffreedom#>

AIC:

8799.6

NumberofFisherScoringiterations:

8

几乎所有的X小号有P值小于0.05。

所以预测因子的重要性应该在这里引起关注。

可以忽略几个OCCUPATION不重要的类别级别,因为大多数其他级别具有可接受的p值。

模型诊断

概率模型的模型诊断与逻辑回归的情况相同。

确定最佳截止

library(InformationValue)

optCutOff<

-optimalCutoff(testData$ABOVE50K,predicted_scores)[1]#=>

[1]0.88

ROC曲线

plotROC(testData$ABOVE50K,predicted_scores)

ROC曲线下的面积略高于logit模型的面积。

因此,这可能是首选的模型。

和谐

Concordance(testData$ABOVE50K,predicted)#>

$Concordance

[1]0.891276

一致性与logit模型的数据类似。

错误分类错误

misClassError(testData$ABOVE50K,predicted_scores,threshold=optCutOff)#=>

0.0894

错误分类错误略高于logit模型。

特异性和敏感性

sensitivity(testData$ABOVE50K,predicted_scores,threshold=optCutOff)#>

0.359541

specificity(testData$ABOVE50K,predicted_scores,threshold=optCutOff)#>

0.9780574

检测事件的能力(即收入超过50美元的人)比具有相同公式的logit模型高5%。

但与

logit相比,相当高的特异性略低。

混乱矩阵

0 1

confusionMatrix(testData$ABOVE50K,predicted_scores,threshold=optCutOff)#Thecolumnsareactuals,whilerowsarepredicteds.

0188101507

1 422 846

多项回归

多项回归与逻辑回归非常相似,但当响应变量是具有多于2个级别的名义分类变量时适用。

介绍

多项Logistic回归可以实现mlogit()从mlogit包,multinom()从nnet包。

我们将使用后者作为这个例子。

示例:

预测避孕方法的选择

在这个例子中,我们将尝试预测女性首选避孕药的选择(1=不使用,2=长期,3=短期)

我们将教育,工作,宗教,儿童人数,媒体曝光率和生活水平作为cmc数据中可用的变量。

在这个例子中,我们将避孕方法的选择建模cmc为所有这些变量的函数。

导入数据

cmcData<

-read.csv("

http:

//archive.ics.uci.edu/ml/machine-learning-databases/cmc/cmc.data"

stringsAsFactors=FALSE,header=F)colnames(cmcData)<

-c("

wife_age"

"

wife_edu"

hus_edu"

num_child"

wife_rel"

wife_work"

hus_occu"

sil"

media_exp"

cmc"

)head(cmcData)

1

24

2

3

1

0 1

2

45

10

4

3

43

7

wife_agewife_eduhus_edunum_childwife_relwife_workhus_occusilmedia_expcmc

4

42

9

5

36

8

6

19

将数字转换为因子

cmcData$wife_edu<

-factor(cmcData$wife_edu,levels=sort(unique(cmcData$wife_edu)))cmcData$hus_edu<

-factor(cmcData$hus_edu,levels=sort(unique(cmcData$hus_edu)))cmcData$wife_rel<

-factor(cmcData$wife_rel,levels=sort(unique(cmcData$wife_rel)))cmcData$wife_work<

-factor(cmcData$wife_work,levels=sort(unique(cmcData$wife_work)))cmcData$hus_occu<

-factor(cmcData$hus_occu,levels=sort(unique(cmcData$hus_occu)))

cmcData$sil<

-factor(cmcData$sil,levels=sort(unique(cmcData$sil)))cmcData$media_exp<

-factor(cmcData$media_exp,levels=sort(unique(cmcData$media_exp)))

cmcData$cmc<

-factor(cmcData$cmc,levels=sort(unique(cmcData$cmc)))

创建培训和测试数据

#PrepareTrainingandTestData

set.seed(100)

trainingRows<

-sample(1:

nrow(cmcData),0.7*nrow(cmcData))training<

-cmcData[trainingRows,]

test<

-cmcData[-trainingRows,]

建立多项模型

library(nnet)

multinomModel<

-multinom(cmc~.,data=training)#multinomModel

summary(multinomModel)#modelsummary

multinom(formula=cmc~.,data=training)#>

(Intercept) wife_age wife_edu2wife_edu3wife_edu4 hus_edu2

hus_edu3

2 -1.5937363-0.043606441.078715672.0445226 2.835641-1.407238-

1.268765

3 0.4376064-0.109238320.030952920.4308403 0.979347 1.073331

hus_edu4num_child wife_rel1wife_work1 hus_occu2 hus_occu3

1.150374

hus_occu4

2-1.31026610.3060657-0.4455628 0.1165996-0.4943500-0.40723995

1.2664442

3 0.86070950.3376620-0.2072181 0.3427517-0.1950799 0.04609764

sil2 sil3 sil4media_exp1

0.5596847

20.814453611.26558421.3311827-0.2440084

30.036576880.31551160.5562075-0.9285685

Std.Errors:

(Intercept) wife_agewife_edu2wife_edu3wife_edu4 hus_edu2 hus_edu3#>

2 0.99643780.014850640.55208320.56499660.58345940.62704680.5823429

hus_edu4 num_childwife_rel1wife_work1hus_occu2hus_occu3hus_occu4

3 0.92251930.014000970.31817590.33684720.36290880.68856760.6837955

20.58861780.050944300.2391401 0.20014340.24739450.24444050.6986301

30.69156290.045956590.2373718 0.18145540.23027290.22261370.6189151

20.54620330.52294960.5268553 0.4951397

30.31063830.29070370.2943716 0.3819526#>

ResidualDeviance:

1930.658#>

2002.658

预测测试数据

6

0.2699230

0.18691129

0.54316572

predicted_scores<

-predict(multinomModel,test,"

probs"

)#predictonnewdata

9 0.36264760.085238140.55211422

10 0.75649120.194090050.04941879

12 0.76804390.058513520.17344257

14 0.89618080.047476380.05634281

17 0.66773570.236838000.09542632#>

.

14640.55235150.028519880.4191287

14710.18163400.410554670.4078114

14720.53698370.168642370.2943739

predicted_class<

-predict(multinomModel,test)#>

[1]331111

Levels:

123

混淆矩阵和误分类错误

112

26

58

37

21

55

39

75

table(predicted_class,test$cmc)#>

predicted_class 1 2 3

mean(as.character(predicted_class)!

=as.character(test$cmc))#=>

0.4932127

错误分类错误49.3%可能太高了。

也许可以通过改进模型术语来改进,或者可能是变量在解释所使用的避孕方法方面不太好。

无论哪种方式,我都会鼓励调查员尝试其他ML方法以解决这个问题。

有序逻辑回归可用于模拟有序因子响应。

包中的polr()函数MASS可用于构建比例赔率逻辑回归并预测多类有序变量的类。

下面描述一种这样的用例。

预测汽车评估

以下是我们如何使用有序逻辑回归来预测基于汽车评估数据集的汽车评估的示例。

这些汽车被评价为下列内容之一verygood,good,acceptable或unacceptable。

可用于预测此决策的汽车属性为:

1.购买:

v-high,high,med,low

2.maint:

3.门:

2,3,4,5多个

4.人:

2,4,更多

5.lug_boot:

小,中,大

6.安全:

低,中,高

此外,值得注意的是,大约70%的汽车被评估为不可接受。

有序多类Y的类分布如下:

类 ñ

N[%]

unacc 1210 (70.023%)

ACC 384 (22.222%)

好 69 (3.993%)

V-好 65 (3.762%)

通过首先导入数据并将正确的顺序分配给因子变量,让我们成为建模过程。

carsd

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2