est171 - Aprendizado de Máquina Departamento de Estatística Universidade Federal de Minas Gerais Lista 2 Outubro de 2016 Sumário Exercício I 2

Documentos relacionados
Técnicas de classificação Análise discriminante & Regressão logística. Abraham Laredo Sicsú

Modelo Linear Generalizado Distribuição de Poisson

Modelo Linear Generalizado Distribuição Normal

Teste F-parcial 1 / 16

Teste F-parcial 1 / 16

Disciplina de Modelos Lineares Professora Ariane Ferreira

Cap 7 Modelo de Cox. Outline. 2 Cap 2 O tempo. 3 Cap 3 Funções de Sobrevida. 5 Modelo de Cox. Carvalho MS (2009) Sobrevida 1 / 22

Tutorial CRISP-DM. Conteúdo. 2. Entendimento dos Dados. 1. Entendimento do Negócio. Objetivo; Descrição.

ENADE Exame Nacional de Desempenho de Estudantes. Instituições do Ensino Superior do Município de São Paulo

Elaboração e Delineamento de Projetos

REGRESSÃO LOGÍSTICA E INDICADORES DE GOVERNANÇA GLOBAL

Introdução aos Modelos Lineares em Ecologia

Análise fatorial em R

diferença não aleatória na distribuição dos fatores de risco entre os dois grupos

ME613 - Análise de Regressão

Classificação de dados em modelos com resposta binária via algoritmo boosting e regressão logística

GAM. Ilka Afonso Reis

Modelos Lineares Generalizados - Regressão Logística

Lista 1 - Gabarito. Prof. Erica Castilho Rodrigues Disciplina: Modelos Lineares Generalizados. 29 de Abril. f(y i, θ i ) = θ i exp( yiθ i ).

ATLAS BRASIL 2013 DIMENSÃO DESVULNERABILIDADE

Capítulo 7. Experimentos com dois ou três Fatores de Interesse. Gustavo Mello Reis José Ivo Ribeiro Júnior

Teste de Wilcoxon-Mann-Whitney

Análise de Regressão Linear no Pacote R

Análise Multivariada Aplicada à Contabilidade

1 AULA 5 - REGRESSÃO LOGÍSTICA BINOMIAL

ATLAS BRASIL 2013 DIMENSÃO DESENVOLVIMENTO HUMANO

Modelo de Variáveis discretas. Regressão com uma variável dependente Binária. Variáveis dependentes Binárias. Modelo de Probabilidade Linear

Composição das turmas e desempenho dos alunos em Portugal

ANÁLISE DE SOBREVIVÊNCIA Teoria e aplicações em saúde. Caderno de Respostas Capítulo 5 Modelo paramétrico de sobrevivência

Modelos Lineares Generalizados - Verificação do Ajuste do Modelo

Modelos de Regressão Linear Simples - Erro Puro e Falta de Ajuste

Naïve Bayesian Learning. Marcílo Souto DIMAp/UFRN

Instituto Federal Goiano

Classificação e Predição de Dados - Profits Consulting - Consultoria Empresarial - Serviços SAP- CRM Si

Exemplo Cupons com Desconto

MODELOS MATEMÁTICOS E APLICAÇÕES 2015/2016 EXERCÍCIOS DE MODELOS LINEARES MISTOS PARTE I

5 Cap 8 Análise de Resíduos. Outline. 2 Cap 2 O tempo. 3 Cap 3 Funções de Sobrevida. Carvalho MS (2009) Sobrevida 1 / 22

Experimentos Fatoriais 2 k em Blocos

CURSO RÁPIDO. E l a b o r a ç ã o : W a n d e r s o n K l e b e r d e O l i v e i r a W i l d o N a v e g a n t e s d e A r a u j o

Capítulo 6. Experimentos com um Fator de Interesse. Gustavo Mello Reis José Ivo Ribeiro Júnior

RELACÃO DO CRIME EM CIDADES PEQUENAS COM CUSTO, IDADE E ANOS DE ESTUDO DE ESTADOS DA AMERICA DO NORTE

Análise de Sobrevivência

Regressão Linear. Prof. Dr. Leandro Balby Marinho. Análise de Dados II. Introdução Regressão Linear Regressão Múltipla

UNIVERSIDADE FEDERAL DO RIO GRANDE Instituto de Matemática, Estatística e Física Programa de Pós-Graduação em Modelagem Computacional

Análise do acidente do Titanic

AULA 19 Análise de Variância

Introdução à Regressão Logística Quantílica

Econometria Aplicada com uso do R

Capítulo 5. Modelos de Confiabilidade. Gustavo Mello Reis José Ivo Ribeiro Júnior

Errata. Análise Categórica, Árvores de Decisão e Análise de Conteúdo

Análise de Regressão Logística

Modelos de ocorrência: uma espécie, uma estação Leonardo Wedekin e Paulo Inácio Prado ( ecologia.ib.usp.br/ bie5703 )

User-defined missing values are treated as missing. Statistics are based on all cases with valid data. VARIABLES=Ano /ORDER= ANALYSIS.

Ajustar Técnica usada na análise dos dados para controlar ou considerar possíveis variáveis de confusão.

Adriane Machado Cinthia Zamin Cavassola Luiza Hoffelder da Costa REGRESSÃO EM DADOS DE CONTAGEM: UM ESTUDO SOBRE A QUANTIDADE DE BICICLETAS ALUGADAS

Modelos log-lineares em tabelas tridimensionais

Importância prática do desvio padrão. Obs. Para uma distribuição normal.

INSTITUTO SUPERIOR DE CONTABILIDADE E ADMINISTRAÇÃO PORTO Ano lectivo 2009/20010 EXAME: DATA 24 / 02 / NOME DO ALUNO:

Análise de Regressão Múltipla com informação qualitativa: variáveis binárias (dummy)

Teste t. Para Amostras Independentes

Contabilometria. Aula 9 Regressão Linear Inferências e Grau de Ajustamento

Precificação de apartamentos para o bairro Água Verde em Curitiba

Exercícios Selecionados de Econometria para Concursos Públicos

Exemplo Cupons com Desconto

4 Modelos Lineares Generalizados

Testes qui-quadrado e da razão de verossimilhanças

Combinação de Classificadores (fusão)

Dimensionamento de amostras para regressão logística

Pesquisa Quantitativa. Comparações de Médias. Pesquisa Quantitativa Roteiro Geral. Roteiro do Módulo. Prof. Lupércio França Bessegato - UFJF 1

UM MODELO DE FRAGILIDADE PARA DADOS DISCRETOS DE SOBREVIVÊNCIA. Eduardo Yoshio Nakano 1

Distribuições Amostrais e Estimação Pontual de Parâmetros

METODOLOGIA DE SUPERFÍCIE DE RESPOSTA: UMA INTRODUÇÃO NOS SOFTWARES R E STATISTICA. Resumo

Prof. Marcelo Azevedo Costa. Departamento de Engenharia de Produção Universidade Federal de Minas Gerais

LP&D Data Science Challenge

Questionário GERAÇÃO SAUDÁVEL: ANÁLISE ESTATÍSTICA

M l u t l i t c i oli l n i e n arid i a d de

Análise da Regressão. Prof. Dr. Alberto Franke (48)

Modelos de Análise de Sobrevivência

FACULDADE DE ECONOMIA DO PORTO. Curso de Mestrado em Economia MÉTODOS ECONOMÉTRICOS (EC706)

Modelos de ocorrência: uma espécie, várias estações Leonardo Wedekin e Paulo Inácio Prado ( ecologia.ib.usp.br/ bie5703 )

Modelo marginal de odds proporcionais para dados longitudinais: um estudo de simulação

1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3.

Uso de procedimentos de estatistica na obtenção de resultados de toxicidade

1) Como vou comparar 3 grupos realizo uma Anova one way:

MAE Estatística Descritiva - 1 o semestre de 2017 Professora: Márcia D Elia Branco Monitora PAE: Simone Harnik Gabarito - Lista 4

Módulo 2 AVALIAÇÃO DA DEMANDA EM TRANSPORTES

Estratégias para Classificação Binária Um estudo de caso com classificação de s

Lista de Exercícios Estatística 2 CE003 Prof. Leonardo Melo

([DPHGH5HFRUUrQFLDGH0pWRGRV(VWDWtVWLFRV

Regressão linear múltipla - Correlação parcial

1 Introdução aos Métodos Estatísticos para Geografia 1

Trabalho 4. Simulações e exemplo

Modelos de Escolha Discreta

MAE Séries Temporais

K-Nearest Neighbours & RSTUDIO

Econometria Lista 1 Regressão Linear Simples

CONHECIMENTOS ESPECÍFICOS

Monitoria Sessão 8. Verônica Santana FEA-USP 23/05/2017

Aplicação de modelos lineares generalizados na captura de atum da espécie Thunnus albacares.

Lista de Exercício 1ª TVC Química Analítica V Teoria (1º Sem 2016)

Transcrição:

est171 - Aprendizado de Máquina Departamento de Estatística Universidade Federal de Minas Gerais Lista 2 Henrique Aparecido Laureano Matheus Henrique Sales Outubro de 2016 Sumário Exercício I 2 1

Exercício I Baixe o conjunto de dados titanic.txt. Cada observação deste banco é relativa a um passageiro do Titanic. As covariáveis indicam características destes passageiros; a variável resposta indica se o passageiro sobreviveu ou não ao naufrágio. path <- "C:/Users/henri/Dropbox/Scripts/aprendizado de maquina/list 2/" data <- read.table(paste0(path, "titanic.txt")) summary(data) Class Sex Age Survived 1st :325 Female: 470 Adult:2092 No :1490 2nd :285 Male :1731 Child: 109 Yes: 711 3rd :706 Crew:885 Seu objetivo é criar classicadores para predizer a variável resposta com base nas covariáveis disponíveis. Para tanto, você deverá implementar os seguintes classicadores, assim como estimar seus riscos via conjunto de teste: test.psg <- sample(size = nrow(data) *.2, x = 0:nrow(data)) train <- data[-test.psg, ] # nrow(train): 1761 test <- data[test.psg, ] # nrow(test): 440 ˆ Regressão Logística. Mostre os coecientes estimados. ˆ Regressão Linear. Mostre os coecientes estimados. ˆ Naive Bayes. ˆ Análise Discriminante Linear. ˆ Análise Discriminante Quadrática. ˆ KNN. Para isso você precisará transformar as covariáveis categóricas em numéricas. Você pode usar variáveis dummies. Responda ainda as seguintes perguntas: 2

ˆ Qual o melhor classicador segundo o risco estimado? Discuta. ˆ Para os classicadores baseados em estimativas de probabilidade, faça também as curvas ROC com o conjunto de teste. Faça também a tabela de confusão quando o corte usado é 0.5 e também quando o corte é aquele que maximiza sensibilidade mais especicidade. Comente. Regressão Logística reg.log <- glm(survived ~., train, family = binomial) As características (covariáveis) são signicativas? anova(reg.log, test = "Chisq") Analysis of Deviance Table Model: binomial, link: logit Response: Survived Terms added sequentially (first to last) Df Deviance Resid. Df Resid. Dev Pr(>Chi) NULL 1760 2188.6 Class 3 136.709 1757 2051.8 < 2.2e-16 *** Sex 1 302.650 1756 1749.2 < 2.2e-16 *** Age 1 14.619 1755 1734.6 0.0001316 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Com as características sendo adicionadas sequencialmente, todas são estatísticamente signi- cativas. E quando incluímos a característica num modelo que contem as demais? car::anova(reg.log) 3

Analysis of Deviance Table (Type II tests) Response: Survived LR Chisq Df Pr(>Chisq) Class 102.029 3 < 2.2e-16 *** Sex 295.156 1 < 2.2e-16 *** Age 14.619 1 0.0001316 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Ainda assim todas as caractetísticas são signicativas. Coecientes estimados: cbind(estimates = coef(reg.log), confint.default(reg.log)) Estimates 2.5 % 97.5 % (Intercept) 1.9759944 1.6093164 2.3426723 Class2nd -0.9312155-1.3585515-0.5038795 Class3rd -1.8377111-2.2219188-1.4535034 ClassCrew -0.7272476-1.0722845-0.3822108 SexMale -2.4929589-2.8047147-2.1812031 AgeChild 1.0365795 0.5067773 1.5663817 Odds-ratios: exp(cbind(or = coef(reg.log), confint.default(reg.log))) OR 2.5 % 97.5 % (Intercept) 7.21378916 4.99939231 10.4090159 Class2nd 0.39407441 0.25703281 0.6041822 Class3rd 0.15918136 0.10840090 0.2337499 ClassCrew 0.48323720 0.34222580 0.6823512 SexMale 0.08266501 0.06052404 0.1129056 AgeChild 2.81955620 1.65993313 4.7892876 Regressão Linear 4

reg.lin <- lm(as.numeric(survived) ~., train) As características são signicativas? anova(reg.lin) Analysis of Variance Table Response: as.numeric(survived) Df Sum Sq Mean Sq F value Pr(>F) Class 3 31.041 10.347 64.529 < 2.2e-16 *** Sex 1 63.831 63.831 398.088 < 2.2e-16 *** Age 1 2.322 2.322 14.481 0.0001464 *** Residuals 1755 281.404 0.160 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Com as características sendo adicionadas sequencialmente, todas são estatísticamente signi- cativas. E quando incluímos a característica num modelo que contem as demais? car::anova(reg.lin) Anova Table (Type II tests) Response: as.numeric(survived) Sum Sq Df F value Pr(>F) Class 17.096 3 35.541 < 2.2e-16 *** Sex 61.478 1 383.410 < 2.2e-16 *** Age 2.322 1 14.481 0.0001464 *** Residuals 281.404 1755 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Ainda assim todas as caractetísticas são signicativas. Coecientes estimados: 5

cbind(estimates = coef(reg.lin), confint(reg.lin)) Estimates 2.5 % 97.5 % (Intercept) 1.8747836 1.81888956 1.93067768 Class2nd -0.1671427-0.23797279-0.09631268 Class3rd -0.3046091-0.36459061-0.24462767 ClassCrew -0.1523171-0.21267124-0.09196303 SexMale -0.4974034-0.54722583-0.44758103 AgeChild 0.1682078 0.08151267 0.25490288 Naive Bayes library(e1071) nb <- naivebayes(survived ~., train) nb$tables $Class Class Y 1st 2nd 3rd Crew No 0.08760331 0.11487603 0.35619835 0.44132231 Yes 0.28675136 0.17241379 0.23956443 0.30127042 $Sex Sex Y Female Male No 0.08760331 0.91239669 Yes 0.49364791 0.50635209 $Age Age Y Adult Child No 0.96115702 0.03884298 Yes 0.91651543 0.08348457 Análise Discriminante Linear 6

library(mass) dl <- lda(survived ~., train) dl$scaling LD1 Class2nd -0.8247560 Class3rd -1.5030759 ClassCrew -0.7516000 SexMale -2.4544080 AgeChild 0.8300114 Análise Discriminante Quadrática dq <- qda(survived ~., train) dq$scaling,, No 1 2 3 4 5 Class2nd 3.134756-0.8719008-3.084898-0.1277106-0.01557274 Class3rd 0.000000-2.1666026-3.084898-0.6300692 0.51345720 ClassCrew 0.000000 0.0000000-3.697256 0.1199123 0.01462184 SexMale 0.000000 0.0000000 0.000000-3.7335072-0.45525544 AgeChild 0.000000 0.0000000 0.000000 0.0000000-5.41305198,, Yes 1 2 3 4 5 Class2nd 2.644922 0.7009925 1.335471-0.2210384 0.6537404 Class3rd 0.000000 2.4216105 1.335471 0.4330530 0.5476621 ClassCrew 0.000000 0.0000000 2.606581 1.5146459-0.2746628 SexMale 0.000000 0.0000000 0.000000-2.4252828 0.2847691 AgeChild 0.000000 0.0000000 0.000000 0.0000000-3.8243018 KNN 7

library(fnn) train.knn <- train train.knn$class <- as.numeric(train.knn$class) train.knn$sex <- as.numeric(train.knn$sex) train.knn$age <- as.numeric(train.knn$age) train.knn$survived <- as.numeric(train.knn$survived) test.knn <- test test.knn$class <- as.numeric(test.knn$class) test.knn$sex <- as.numeric(test.knn$sex) test.knn$age <- as.numeric(test.knn$age) risco <- 0 for (i in 1:nrow(test.knn)){ knn <- knn.reg(train.knn[, -4], test.knn[, -4], train.knn[, 4], k = i) risco[i] <- mean(test.knn$survived!= ifelse(knn$pred < 1.5, "No", "Yes"))} library(latticeextra) xyplot(risco ~ 1:nrow(test.knn), type = c("l", "g"), xlab = "k", ylab = "Risco", lwd = 2, panel= function(...){ panel.xyplot(...) panel.abline(v = which.min(risco), col = 2, lwd = 2) panel.text(30,.295, labels = paste("k =", which.min(risco)), col = 2) }) 0.30 0.29 k = 6 0.28 Risco 0.27 0.26 0.25 0 100 200 300 400 k 8

Qual o melhor classicador segundo o risco estimado? Regressão Logística: mean( test$survived!= ifelse(predict(reg.log, test, type = "response") <.5, "No", "Yes")) [1] 0.2409091 Regressão Linear: mean(test$survived!= ifelse(predict(reg.lin, test) < 1.5, "No", "Yes")) [1] 0.2409091 Naive Bayes: mean(test$survived!= predict(nb, test)) [1] 0.2409091 Análise Discriminante Linear: mean(test$survived!= predict(dl, test)$class) [1] 0.2409091 Análise Discriminante Quadrática: 9

mean(test$survived!= predict(dq, test)$class) [1] 0.2477273 KNN: knn <- knn.reg( train.knn[, -4], test.knn[, -4], train.knn[, 4], k = which.min(risco)) mean(test.knn$survived!= ifelse(knn$pred < 1.5, "No", "Yes")) [1] 0.2431818 Com a Regressão Logística, Regressão Linear, Naive Bayes e Análise Discriminante Linear, o risco estimado é o mesmo, 0.2409091. Com o KNN o risco estimado é um pouco maior, 0.2431818. Com a Análise Discriminante Quadrática o maior risco foi estimado, 0.2477273. Para os classicadores baseados em estimativas de probabilidade, faça também as curvas ROC com o conjunto de teste. Faça também a tabela de confusão quando o corte usado é 0.5 e também quando o corte é aquele que maximiza sensibilidade mais especicidade library(proc) par(mfrow = c(3, 2)) plot.roc( roc(test$survived, predict(reg.log, test, type = "response")), print.auc = TRUE, print.thres = TRUE, las = 1, xlab = "Especificidade", ylab = "Sensibilidade", main = "Regressão Logística") 10

plot.roc( roc(test$survived, predict(reg.lin, test)), print.auc = TRUE, print.thres = TRUE, las = 1, xlab = "Especificidade", ylab = "Sensibilidade", main = "Regressão Linear") plot.roc( roc(test$survived, as.numeric(predict(nb, test))), print.auc = TRUE, print.thres = TRUE, las = 1, xlab = "Especificidade", ylab = "Sensibilidade", main = "Naive Bayes") plot.roc( roc(test$survived, as.numeric(predict(dl, test)$class)), print.auc = TRUE, print.thres = TRUE, las = 1, xlab = "Especificidade", ylab = "Sensibilidade", main = "Discriminante Linear") plot.roc( roc(test$survived, as.numeric(predict(dq, test)$class)), print.auc = TRUE, print.thres = TRUE, las = 1, xlab = "Especificidade", ylab = "Sensibilidade", main = "Discriminante Quadrática") plot.roc( roc(test$survived, knn$pred), print.auc = TRUE, print.thres = TRUE, las = 1, xlab = "Especificidade", ylab = "Sensibilidade", main = "KNN") 11

Regressão Logística Regressão Linear 1.0 1.0 0.8 0.8 Sensibilidade 0.6 0.4 0.299 (0.871, 0.562) AUC: 0.736 Sensibilidade 0.6 0.4 1.309 (0.871, 0.562) AUC: 0.737 0.2 0.2 0.0 0.0 1.0 0.8 0.6 0.4 0.2 0.0 Especificidade Naive Bayes 1.0 0.8 0.6 0.4 0.2 0.0 Especificidade Discriminante Linear 1.0 1.0 0.8 0.8 Sensibilidade 0.6 0.4 1.500 (0.929, 0.463) AUC: 0.696 Sensibilidade 0.6 0.4 1.500 (0.929, 0.463) AUC: 0.696 0.2 0.2 0.0 0.0 1.0 0.8 0.6 0.4 0.2 0.0 Especificidade Discriminante Quadrática 1.0 0.8 0.6 0.4 0.2 0.0 Especificidade KNN 1.0 1.0 0.8 0.8 Sensibilidade 0.6 0.4 1.500 (0.854, 0.575) AUC: 0.714 Sensibilidade 0.6 0.4 1.250 (0.871, 0.556) AUC: 0.711 0.2 0.2 0.0 0.0 1.0 0.8 0.6 0.4 0.2 0.0 Especificidade 1.0 0.8 0.6 0.4 0.2 0.0 Especificidade 12

Tabelas de confusão: Regressão Logística: Ponto de corte 0.5: table(test$survived, ifelse(predict(reg.log, test, type = "response") <.5, "No", "Yes"), dnn = list("observado", "")) No 260 20 Yes 86 74 Ponto de corte 0.299: table(test$survived, ifelse(predict(reg.log, test, type = "response") <.299, "No", "Yes"), dnn = list("observado", "")) No 244 36 Yes 70 90 Regressão Linear: Ponto de corte 1.5: table(test$survived, ifelse(predict(reg.lin, test) < 1.5, "No", "Yes"), dnn = list("observado", "")) No 260 20 Yes 86 74 Ponto de corte 1.309: 13

table(test$survived, ifelse(predict(reg.lin, test) < 1.309, "No", "Yes"), dnn = list("observado", "")) No 244 36 Yes 70 90 Naive Bayes: Ponto de corte 1.5: table(test$survived, predict(nb, test), dnn = list("observado", "")) No 260 20 Yes 86 74 Análise Discriminante Linear: Ponto de corte 1.5: table(test$survived, predict(dl, test)$class, dnn = list("observado", "")) No 260 20 Yes 86 74 Análise Discriminante Quadrática: Ponto de corte 1.5: table(test$survived, predict(dq, test)$class, dnn = list("observado", "")) No 239 41 Yes 68 92 14

KNN: Ponto de corte 1.5: table(test$survived, ifelse(knn$pred < 1.5, "No", "Yes"), dnn = list("observado", "")) No 244 36 Yes 71 89 Ponto de corte 1.25: table(test$survived, ifelse(knn$pred < 1.25, "No", "Yes"), dnn = list("observado", "")) No 244 36 Yes 71 89 Sensibilidade: quantos foram corretamente classicados como sobreviventes Especicidade: quantos foram corretamente classicados como não sobreviventes A maior sensibilidade, 92, é obtida com a Análise Discriminante Quadrática. A maior especicidade, 260, é obtida com o: ˆ ponto de corte 0.5 da Regressão Logística, ˆ ponto de corte 1.5 da Regressão Linear, ˆ ponto de corte 1.5 do Naive Bayes, ˆ ponto de corte 1.5 da Análise Discriminante Linear. 15