\[\mathbf{Lineu\ Alberto\ Cavazani\ de\ Freitas}\]
\[\mathbf{Prof.\ Cesar\ Augusto\ Taconeli}\]
\[\mathbf{Modelos\ Lineares\ Generalizados\ (CE225)}\]
\[\mathbf{Outubro/2017}\]
Exemplo disponível em Bennett, K.,P., and Mangasarian, O.L., 1992
Os dados provêm de um estudo de câncer de mama em Wisconsin. São 681 casos de tumores potencialmente cancerosos, dos quais 238 são realmente malignos.
As variáveis explicativas disponíveis dizem respeito a características observadas nos tumores sob estudo.
Os valores das variáveis preditoras foram determinados por um médico observando as células e classificando-as em uma escala de 1 (normal) a 10 (mais anormal) em relação a cada característica avaliada.
Variáveis:
O objetivo da análise foi modelar a probabilidade de do tumor sob investigação ser maligno.
Os dados estão disponíveis no pacote de Julian Faraway (2016). O pacote fornece a documentação dos dados. Verifique!
library(faraway)
data(wbca)
dados <- wbca
Verificando a quantidade de tumores benignos na base (Class = 1
):
sum(dados$Class==1)
## [1] 443
Vamos redefinir os níveis da variável classe de forma a modelar a probabilidade de tumor maligno:
dados$Class <- ifelse(dados$Class == 0, 1, 0)
Outras opções para a conversão são as funções levels
e relevel
.
E agora sim, os 238 tumores malignos estão codificados como 1, enquanto os benignos estão codificados como 0.
sum(dados$Class==1)
## [1] 238
As primeiras 6 linhas da base de dados têm a seguinte forma:
head(dados)
## Class Adhes BNucl Chrom Epith Mitos NNucl Thick UShap USize
## 1 0 1 1 3 2 1 1 5 1 1
## 2 0 5 10 3 7 1 2 5 4 4
## 3 0 1 2 3 2 1 1 3 1 1
## 4 0 1 4 3 3 1 7 6 8 8
## 5 0 3 1 3 2 1 1 4 1 1
## 6 1 8 10 9 7 1 7 8 10 10
Com os ajustes realizados, pode-se fazer a análise descritiva da base de dados:
Vamos realizar uma breve análise descritiva dos dados.
Usando a função summary vamos verificar o mínimo, o máximo, a mediana e os quartis das variáveis explicativas em estudo:
summary(dados[ , 2:10])
## Adhes BNucl Chrom Epith
## Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.000
## 1st Qu.: 1.000 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 2.000
## Median : 1.000 Median : 1.000 Median : 3.000 Median : 2.000
## Mean : 2.816 Mean : 3.542 Mean : 3.433 Mean : 3.231
## 3rd Qu.: 4.000 3rd Qu.: 6.000 3rd Qu.: 5.000 3rd Qu.: 4.000
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
## Mitos NNucl Thick UShap
## Min. : 1.000 Min. : 1.000 Min. : 1.000 Min. : 1.000
## 1st Qu.: 1.000 1st Qu.: 1.000 1st Qu.: 2.000 1st Qu.: 1.000
## Median : 1.000 Median : 1.000 Median : 4.000 Median : 1.000
## Mean : 1.604 Mean : 2.859 Mean : 4.436 Mean : 3.204
## 3rd Qu.: 1.000 3rd Qu.: 4.000 3rd Qu.: 6.000 3rd Qu.: 5.000
## Max. :10.000 Max. :10.000 Max. :10.000 Max. :10.000
## USize
## Min. : 1.00
## 1st Qu.: 1.00
## Median : 1.00
## Mean : 3.14
## 3rd Qu.: 5.00
## Max. :10.00
Nota-se pelas medidas resumo a predominância de tumores com células classificadas como normais já que os valores das médias são, em sua maioria, baixos, distantes do valor máximo (10) considerado anormal.
O boxplot é uma alternativa de análise descritiva para avaliação da distribuição dos dados.
par(mfrow=c(2,5))
boxplot(dados$Adhes, xlab = '', ylab = '', main = 'Adhes', las=1)
boxplot(dados$BNucl, xlab = '', ylab = '', main = 'BNucl', las=1)
boxplot(dados$Chrom, xlab = '', ylab = '', main = 'Chrom', las=1)
boxplot(dados$Epith, xlab = '', ylab = '', main = 'Epith', las=1)
boxplot(dados$Mitos, xlab = '', ylab = '', main = 'Mitos', las=1)
boxplot(dados$NNucl, xlab = '', ylab = '', main = 'NNucl', las=1)
boxplot(dados$Thick, xlab = '', ylab = '', main = 'Thick', las=1)
boxplot(dados$UShap, xlab = '', ylab = '', main = 'UShap', las=1)
boxplot(dados$USize, xlab = '', ylab = '', main = 'USize', las=1)
mtext(side=2,cex=1.3,line=-1.5,text="Nota na Avaliação Médica",outer=TRUE)