Essa é uma revisão anterior do documento!
Tabela de conteúdos
Participantes
- Flaviane Peccin, Graduanda (UFPR)
- Christine Cardozo de Araujo, Graduanda (UFPR)
- Joel Maurício Corrêa da Rosa , Prof. Dr. (UFPR)
Objetivos
Geral : Aplicar técnicas multivariadas para encontrar possíveis fatores de risco para idosas hipertensas.
Específicos
- Aplicar métodos de clusterização
- Aplicar métodos de classificação
- Comparar os métodos de classificação
- Avaliar a importância das variáveis explicativas
Metodologia
Métodos Multivariados.
- Regressão Logística
- Clusterização
- Análise Linear Discriminante
- Árvores de Decisão
- Redes Neurais Artificiais
Árvores de Decisão
Árvores de Decisão são extremamente úteis para revelar de forma simples, estruturas que são extremamente complexas. O pacote R dispõe de duas funções para o ajuste de árvores de decisão: tree e rpart.
Pela função rpart é possível construir árvores de decisão no mesmo espírito descrito em Breiman et al. (1984) na monografia CART (Classification and Regression Trees).
Regressão Logística
Este problema envolve um grande número de covariáveis e, portanto, uma das maiores dificuldades está na seleção do conjunto de preditoras. Métodos do tipo stepwise, embora sejam atraentes na prática podem conduzir à modelos enganosos.
A tarefa aqui, é integrar à construção do modelo a intervenção dos especialistas na área. Então um passo no processo iterativo de seleção de variáveis é retirar preditoras selecionadas automaticamente que não tenham sentido, de acordo com opinião especializada.
Análise Linear Discriminante
Redes Neurais Artificiais
Resultados e Discussão
Banco de Dados e Scripts do R
Links de Interesse
Funções do R
Scripts do R
# pacotes necessarios
require(MASS)
require(tree)# arvores de decisao
require(rpart)# arvores de decisao
# Leitura do conjunto de dados
dados<-read.csv2('http://www.leg.ufpr.br/~joel/dados/hiipertensao.csv',na.strings="")
# Re-expressão das variáveis
dados<-transform(dados,sexo=factor(sexo,labels=c('feminino','masculino')))
Estudo - Regressão Logística
#Descritivo dos dados originais
summary(dados)
sapply(dados,class)
names(dados)
#separação por sexo
dad <- split(dados , dados$sexo)
dadfem <- dad[["feminino"]]
dadf <- na.omit(dadfem)
#verificação
summary (dados$sexo)
summary (dadfem$sexo)
summary (dadf$sexo)
#Verificar os nomes das variáveis
names(dadf)
#Correlação com a variável resposta - Pearson
cor(dadf$hipertensao, dadf$inst, method = c("pearson"))
cor(dadf$hipertensao, dadf$tabag, method = c("pearson"))
cor(dadf$hipertensao, dadf$dcv, method = c("pearson"))
cor(dadf$hipertensao, dadf$dtest, method = c("pearson"))
cor(dadf$hipertensao, dadf$peso, method = c("pearson"))
cor(dadf$hipertensao, dadf$estat, method = c("pearson"))
cor(dadf$hipertensao, dadf$pasis, method = c("pearson"))
cor(dadf$hipertensao, dadf$padias, method = c("pearson"))
cor(dadf$hipertensao, dadf$ccint, method = c("pearson"))
cor(dadf$hipertensao, dadf$cabd, method = c("pearson"))
cor(dadf$hipertensao, dadf$cquad, method = c("pearson"))
cor(dadf$hipertensao, dadf$ccoxa, method = c("pearson"))
cor(dadf$hipertensao, dadf$dcabd, method = c("pearson"))
cor(dadf$hipertensao, dadf$dcsupra, method = c("pearson"))
cor(dadf$hipertensao, dadf$dctric, method = c("pearson"))
cor(dadf$hipertensao, dadf$dccoxa, method = c("pearson"))
cor(dadf$hipertensao, dadf$fa30, method = c("pearson"))
cor(dadf$hipertensao, dadf$lc30, method = c("pearson"))
cor(dadf$hipertensao, dadf$tc6x, method = c("pearson"))
cor(dadf$hipertensao, dadf$tc6f, method = c("pearson"))
cor(dadf$hipertensao, dadf$Idade, method = c("pearson"))
cor(dadf$hipertensao, dadf$imc, method = c("pearson"))
cor(dadf$hipertensao, dadf$rcq, method = c("pearson"))
cor(dadf$hipertensao, dadf$nsecon, method = c("pearson"))
cor(dadf$hipertensao, dadf$exerc, method = c("pearson"))
cor(dadf$hipertensao, dadf$diabete, method = c("pearson"))
cor(dadf$hipertensao, dadf$regi, method = c("pearson"))
cor(dadf$hipertensao, dadf$hipaf, method = c("pearson")) #alta correlação
cor(dadf$hipertensao, dadf$somadc, method = c("pearson"))
#Deixarei de fora as variáveis nasc, sexo, bairro e hipaf
pmod1 <- dadf[c(4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33)]
mod1 <- glm(hipertensao ~ .,family=binomial(link=logit),data=pmod1)
# ---------------------------------------------------------------
#Fatores de Inflação da Variância (VIF)
#Função para obtenção dos VIFs no R
#Fonte: Profa. Dra. Suely Giolo
#Link: http://people.ufpr.br/~giolo/CE071/CodigosR/vif.R
#Apostila - Análise de Regressão - pag 19 - " Experiências práticas indicam que VIFs maiores que 10 (ou, 5 por outros autores) implicam que os coeficientes de regressão associados estão sendo pobremente estimados devido multicolineridade"
vif<-function (obj, digits = 5) {
Qr <- obj$qr
if (is.null(obj$terms) || is.null(Qr))
stop("invalid 'lm' object: no terms or qr component")
tt <- terms(obj)
hasintercept <- attr(tt, "intercept") > 0
p <- Qr$rank
if (hasintercept)
p1 <- 2:p
else p1 <- 1:p
R <- Qr$qr[p1, p1, drop = FALSE]
if (length(p1) > 1)
R[row(R) > col(R)] <- 0
Rinv <- qr.solve(R)
vv <- apply(Rinv, 1, function(x) sum(x^2))
ss <- apply(R, 2, function(x) sum(x^2))
vif <- ss * vv
signif(vif, digits)
}
# ---------------------------------------------------------------
#Fatores de Inflação da Variância (VIF)
vif(mod1)
#Stepwise - passo a passo
step(mod1, ~., direction=c("both"), teste="F")
#Step: AIC=1209.15
#hipertensao ~ inst + dcv + dteste + peso + estat + pasis + cabd +
# cquad + ccoxa + dctric + lc30 + tc6x + exerc + diabete +
# regi
#Forward - passo a frente
step(mod1, ~., direction=c("forward"), teste="F")
#Start: AIC=1228.35
#hipertensao ~ inst + tabag + dcv + dteste + peso + estat + pasis +
# padias + ccint + cabd + cquad + ccoxa + dcabd + dcsupra +
# dctric + dccoxa + fa30 + lc30 + tc6x + tc6f + Idade + imc +
# rcq + nsecon + exerc + diabete + regi + somadc
#Backward - passo atrás
#step(mod1, ~., direction=c("backward"), teste="F")
#Step: AIC=1209.15
#hipertensao ~ inst + dcv + dteste + peso + estat + pasis + cabd +
# cquad + ccoxa + dctric + lc30 + tc6x + exerc + diabete +
# regi
#Explicação Profa Suely sobre AIC
#AIC - Critério de Akaique
#Modelos que tem AIC menor do que 5 são os que atendem as condições estabelicidas, ou seja, são modelos bons para se estudar.
Bibliografias
- [1998, book]
- Johnson, R. A., & Wichern, D. W. (1998). Applied Multivariate Statistical Analysis Prentice Hall.
- [2002, book]
- Venables, W. N., & Ripley. (2002). Modern Applied Statistic with S. Springer.
Laboratórios de Estatística
== ==== Flaviane Peccin ==== ==
Artigo: Fatores de Hipertensão usando Redes Neurais Kohonen
Apresentação: 05/09/2007 - Grupo II