Dados

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)

Modelos

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