Este conjunto de dados é da Duke University Cardiovascular Disease Databank e consiste em 3504 pacientes e seis variáveis. Os pacientes foram encaminhados para a Duke University Medical Center com dor no peito. Algumas análises interessantes incluem prever a probabilidade de doença coronária (>= 75% de estreitamento do diámetro em pelo menos uma artéria coronária importante) e prever a probabilidade de doençca coronária grave, uma vez que é uma doença significativa.
A primeira análise usaria sigdz como variável de resposta e o segundo usaria tvdlm no subconjunto de pacientes com sigdz = 1. Doença coronária grave é definida como três vasos doentes ou doença principal na esquerda e é denotada por tvdlm = 1.
Leitura dos dados.
Hmisc::getHdata(acath)
attach(acath)
head(acath)
## sex age cad.dur choleste sigdz tvdlm
## 1 0 73 132 268 1 1
## 2 0 68 85 120 1 1
## 3 0 54 45 NA 1 0
## 4 1 58 86 245 0 0
## 5 1 56 7 269 0 0
## 6 0 64 0 NA 1 0
Sexo é denotado como: sex = 0 para o sexo masculino e 1 para o sexo feminino.
Variáveis:
Sexo = factor(sex,labels=c('Masculino','Feminino'))
Idade = age
cad.dur = Duração dos sintomas de doença arterial coronariana.
Resposta=factor(sigdz,levels=c(0,1),labels=c('Não','Sim'))
Colesterol = choleste
Cad.dur = cad.dur
rm(acath)
dados0 = data.frame(Resposta,Sexo,Idade,Colesterol,Cad.dur)
dados1 = na.exclude(dados0)
attach(dados1)
rm(dados0)
Resposta: sigdz
Sexo = factor(sex, levels=c(0,1), labels=c('Masculino','Feminino'))
Idade = age
Resposta = factor(sigdz, labels=c('Sim','Não'))
Colesterol = choleste
Cad.dur = cad.dur
dados0 = data.frame(Resposta,Sexo,Idade,Colesterol,Cad.dur)
dados1 = na.exclude(dados0)
attach(dados1)
modelo00 = glm(Resposta ~ Idade + Sexo + Cad.dur + Colesterol, family=binomial(link='logit'), data = dados1)
Transformada = I(log(dados1$Colesterol*dados1$Idade))
modelo05 = glm(Resposta ~ Idade + Sexo + Colesterol + Transformada, family=binomial(link='logit'), data=dados1)
Para calcular o R\(^2_N\) de Nagelkerke devemos utilizar a função lrm{rms}, The rms Package for R : Regression Modeling Strategies.
library(rms)
R2 = lrm(formula(modelo05), x=T, y=T, data=dados1)$stats[10]
R2
## R2
## 0.300897
Para calcular o R\(^2_V\) de Zhang devemos utilizar a função rsq no pacote homônimo rss, R-Squared and Related Measures.
library(rsq)
rsq(modelo05)
## [1] 0.2357812
Podemos encontrar também o \(R^2_{V_{adj}}\) da seguinte maneira:
rsq(modelo05, adj = TRUE)
## [1] 0.2344244