Sei sulla pagina 1di 28

Valeska Andreozzi (CEAUL)

Modelo Linear Generalizado


Distribui
c
ao Multinomial
Problema 1
Os dados a seguir corresponde a 3417 mulheres em idade fertil categorizadas por faixa etaria
e metodo contraceptivo.
> cuse <- read.table("brazil.dat", header = F)
> names(cuse) <- c("age", "met", "n")
> cuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

age
15-19
15-19
15-19
20-24
20-24
20-24
25-29
25-29
25-29
30-34
30-34
30-34
35-39
35-39
35-39
40-44
40-44
40-44

met
ster
other
no
ster
other
no
ster
other
no
ster
other
no
ster
other
no
ster
other
no

n
2
75
90
32
223
280
147
296
237
298
197
207
276
96
196
202
71
174

Valeska Andreozzi (CEAUL)

> summary(cuse)

age
15-19:3
20-24:3
25-29:3
30-34:3
35-39:3
40-44:3

met
no
:6
other:6
ster :6

n
Min.
: 2.0
1st Qu.: 91.5
Median :196.5
Mean
:172.2
3rd Qu.:233.5
Max.
:298.0

A tabela a seguir mostra o quao associadas estao as duas variaveis (idade e metodo de
contracepcao)
> library(gregmisc)
> indiv <- data.frame(rep(cuse$age, cuse$n), rep(cuse$met,
+
cuse$n))

> tab <- CrossTable(indiv[, 1], indiv[, 2], prop.r = F,


+
prop.c = F, prop.t = F, prop.chisq = F, chisq = T,
+
dnn = c("age", "metodo"))

Valeska Andreozzi (CEAUL)

Cell Contents
|-------------------------|
|
N |
|
N / Row Total |
|-------------------------|

Total Observations in Table:

3099

| metodo
age |
no |
other |
ster | Row Total |
-------------|-----------|-----------|-----------|-----------|
15-19 |
90 |
75 |
2 |
167 |
|
0.539 |
0.449 |
0.012 |
0.054 |
-------------|-----------|-----------|-----------|-----------|
20-24 |
280 |
223 |
32 |
535 |
|
0.523 |
0.417 |
0.060 |
0.173 |
-------------|-----------|-----------|-----------|-----------|
25-29 |
237 |
296 |
147 |
680 |
|
0.349 |
0.435 |
0.216 |
0.219 |
-------------|-----------|-----------|-----------|-----------|
30-34 |
207 |
197 |
298 |
702 |
|
0.295 |
0.281 |
0.425 |
0.227 |
-------------|-----------|-----------|-----------|-----------|
35-39 |
196 |
96 |
276 |
568 |
|
0.345 |
0.169 |
0.486 |
0.183 |
-------------|-----------|-----------|-----------|-----------|
40-44 |
174 |
71 |
202 |
447 |
|
0.389 |
0.159 |
0.452 |
0.144 |
-------------|-----------|-----------|-----------|-----------|
Column Total |
1184 |
958 |
957 |
3099 |
-------------|-----------|-----------|-----------|-----------|

Statistics for All Table Factors

Pearsons Chi-squared test


-----------------------------------------------------------Chi^2 = 484.7404
d.f. = 10
p = 8.032588e-98

Valeska Andreozzi (CEAUL)

Atraves do teste 2 testamos a probabilidade conjunta da variavel Y (metodo contraceptivo) e X (idade), isto e, testamos a independencia.
Mas como podemos investigar se idade (X) e preditor da variavel resposta metodo contraceptivo (Y )? Agora estamos interessados na distribuicao condicional da variavel resposta
Y dado o preditor X.

Modelos Multinomiais
Distribuic
ao multinomial
Considere Yi uma variavel resposta que pode assumir valores discretos, nomeadamente,
1, 2, , J. Assumindo que a nossa variavel no exemplo anterior e metodo contraceptivo
temos:
pij = P r(Yi = j)
como sendo a probabilidade de uma mulher pertencer a algumas das categorias de utilizacao
de contraceptivo (esterilizacao, outro metodo, nenhum metodo). Caractersticas:
as categorias sao mutuamente exclusivas
para cada indivduo a soma das probabilidades e igual a 1 (

Pj

j=1

pij = 1)

Para dados agrupados, como o nosso exemplo, temos uma variavel ni que denota o
n
umero de casos do grupo i e seja Yij o n
umero de casos do grupo i na categoria j. O ndice
i representa o grupo idade e j as categorias de metodo contraceptivo. Logo, tem-se que,
y11 , y12 , y13 , representam o n
umero de mulheres entre 15 e 19 anos que sao esterilizadas, que
utilizam outro metodo de contracepcao ou que nao usam nenhum metodo, respectivamente.
Para dados individuais temos ni = 1 e y11 = 1 ou y11 = 0 se uma mulher e esterilizada
ou nao, respectivamente.
A distribuicao de probabilidade para a variavel Yij dado o total de casos ni e dado por:
P r(Yi1 = yi1 , , Yij = yij ) =

ni
yi1 , , yij

Quando j = 2 temos a distribuicao binomial.

pyi1i1 pijij

(1)

Valeska Andreozzi (CEAUL)

Modelo Logit Multinomial


Como podemos investigar se idade (X) e preditor da variavel resposta metodo contraceptivo
(Y )?
Podemos assumir que uma das categorias da variavel resposta e referencia e calcular a
chance (odds) das outras categorias em relacao a esta categoria referencia. No nosso exemplo,
vamos assumir a categoria nao utiliza contraceptivo como sendo a categoria referencia.
Desta forma teramos a chance de esterilizacao comparado com a chance de nao utilizacao
de metodo contraceptivo e a chance de outro metodo comparado com a chance de nao
utilizacao de metodo contraceptivo.
Veja o grafico do logit (logartmo da chance) emprico dos dados:
> oddsster <- log(tab$prop.row[, 3]/tab$prop.row[,
+
1])
> oddsster

15-19
20-24
25-29
-3.8066625 -2.1690537 -0.4776276
40-44
0.1492124

30-34
0.3643747

35-39
0.3422862

> oddsother <- log(tab$prop.row[, 2]/tab$prop.row[,


+
1])
> oddsother

15-19
20-24
-0.18232156 -0.22761783
40-44
-0.89637542
>
+
+
>
>
>

25-29
30-34
35-39
0.22229931 -0.04951506 -0.71376647

plot(1:6, oddsster, ylim = range(oddsster, oddsother),


pch = 19, col = "blue", axes = F, xlab = "idade",
ylab = "logit")
points(1:6, oddsother, pch = 19, col = "red")
lines(lowess(1:6, oddsster, f = 0.3), col = "blue")
lines(lowess(1:6, oddsother, f = 0.3), col = "red")

Valeska Andreozzi (CEAUL)


box()
axis(2)
axis(1, at = 1:6, labels = levels(cuse$age))
legend(4, -3, legend = c("esteriliza
c~
ao", "outro m
etodo"),
bty = "n", pch = 19, col = c("blue", "red"))

logit

>
>
>
>
+

esterilizao
outro mtodo

1519

2024

2529

3034

3539

4044

idade

O grafico do logit emprico sugere que o logaritmo da chance das mulheres esterilizadas
aumenta rapido com a idade, atinge o maximo aos 30-34 anos e declina lentamente a partir
dessa faixa etaria. O logartmo da chance de outro metodo atinge o maximo aos 25-29 e
decresce rapidamente a seguir.
Seja 1 = esterilizacao, 2 = outro metodo, 3 = nenhum metodo. O modelo logit multinomial e igual a

pi1
= 0 + 1 agei
log
pi3
 
pi2
log
= 0 + 1 agei
pi3


(2)

Valeska Andreozzi (CEAUL)

Para a variavel resposta multinomial temos j 1 regressoes logsticas. Genericamente,


podemos definir o modelo logstico multinomial da seguinte forma:
 
pij
log
= j + xi j
(3)
piJ
em que j = 1, . . . , J 1, xi e o vetor de covariaveis, j sao os interceptos e j e o vetor de
coeficientes de regressao.
Na formula (2) estamos comparando categoria 1:3 e 2:3. Se quisermos comparar categorias
1:2 basta fazer
 
 
 
pi1
pi1
pi2
log
= log
log
pi2
pi3
pi3
O grafico dos logits sugere um relacao quadratica com a idade. Para contemplar esta
caracterstica observada nos dados vamos criar uma variavel idade que e igual ao ponto
medio de cada faixa etaria.
> cuse$idade <- rep(seq(17, 42, length = 6), each = 3)
E vamos ajustar seguinte modelo:
 
pi1
log
= 0 + 1 agei + 2 age2i
p
 i3
pi2
= 0 + 1 agei + 2 age2i
log
pi3
> library(nnet)
> mod1 <- multinom(met ~ idade + I(idade^2), data = cuse,
+
weights = n)

# weights: 12 (6 variable)
initial value 3404.599483
iter 10 value 3112.762332
final value 3112.745366
converged
> mod1

Valeska Andreozzi (CEAUL)

Call:
multinom(formula = met ~ idade + I(idade^2), data = cuse, weights = n)
Coefficients:
(Intercept)
idade
I(idade^2)
other
-3.042142 0.2340215 -0.004432943
ster
-16.071596 0.9166541 -0.012667215
Residual Deviance: 6225.491
AIC: 6237.491
> round(unique(mod1$fit), 3)

1
4
7
10
13
16

no
0.580
0.478
0.382
0.308
0.304
0.409

other
0.411
0.460
0.399
0.281
0.193
0.146

ster
0.009
0.062
0.219
0.412
0.503
0.445

Podemos comparar o mod1 com um modelo mais simples, retirando o termo ao quadrado
da idade
> mod2 <- multinom(met ~ idade, data = cuse, weights = n)

# weights: 9 (4 variable)
initial value 3404.599483
final value 3184.024055
converged
> mod2

Call:
multinom(formula = met ~ idade, data = cuse, weights = n)

Valeska Andreozzi (CEAUL)

Coefficients:
(Intercept)
idade
other
0.7614718 -0.03357687
ster
-3.4062103 0.09929226
Residual Deviance: 6368.048
AIC: 6376.048
> anova(mod1, mod2)

Likelihood ratio tests of Multinomial Models


Response: met
Model Resid. df Resid. Dev
Test
1
idade
32
6368.048
2 idade + I(idade^2)
30
6225.491 1 vs 2
LR stat. Pr(Chi)
1
2 142.5574
0

Df
2

E se quisermos as probabilidades? Como calcular?



pi1
= 0 + 1 agei + 2 age2i = 1
log
pi3
 
pi2
log
= 0 + 1 agei + 2 age2i = 2
pi3


Consequentemente temos:
pi1
= exp(0 + 1 agei + 2 age2i ) = exp(1 )
pi3
pi2
= exp(0 + 1 agei + 2 age2i ) = exp(2 )
pi3

(4)
(5)

E alem disso temos que:


pi1 + pi2 + pi3 = 1

(6)

Valeska Andreozzi (CEAUL)

10

Substituindo (4) e (5) em (6) temos que:


exp(1 )
1 + exp(1 ) + exp(2 )
exp(2 )
pi2 =
1 + exp(1 ) + exp(2 )
1
pi3 =
1 + exp(1 ) + exp(2 )

pi1 =

A figura a seguir mostra o grafico das probabilidades estimado pelo modelo mod1
> predicao <- predict(mod1, cuse[, c(2, 4)], type = "probs")
> prob <- round(as.vector(t(unique(predicao)[, c(3,
+
2, 1)])), 2)
> pred <- cbind(cuse[, c(1:2, 4)], prob)

Valeska Andreozzi (CEAUL)


> pred

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>
+
+
>
>
>
>
+

age
15-19
15-19
15-19
20-24
20-24
20-24
25-29
25-29
25-29
30-34
30-34
30-34
35-39
35-39
35-39
40-44
40-44
40-44

met idade prob


ster
17 0.01
other
17 0.41
no
17 0.58
ster
22 0.06
other
22 0.46
no
22 0.48
ster
27 0.22
other
27 0.40
no
27 0.38
ster
32 0.41
other
32 0.28
no
32 0.31
ster
37 0.50
other
37 0.19
no
37 0.30
ster
42 0.44
other
42 0.15
no
42 0.41

matplot(y = predicao, x = pred$idade, type = "l",


col = c(1, 2, 4), lty = 1, lwd = 1.5, ylab = "Probabilidade",
xlab = "", axes = F)
axis(2)
box()
axis(1, at = unique(cuse$idade), labels = levels(cuse$age))
legend(30, 0.15, c("no", "other", "ster"), col = c(1,
2, 4), lty = 1, lwd = 1.5)

11

12

0.3
0.2

Probabilidade

0.4

0.5

0.6

Valeska Andreozzi (CEAUL)

0.0

0.1

no
other
ster

1519

2024

2529

3034

3539

4044

Estimac
ao
O modelo multinomial acima descrito e estimado atraves do metodo da maxima verossimilhanca. O metodo consiste em maximizar a verossimilhanca em (2) com probabilidades pij
visto como funcao dos parametros de regressao s.

Modelo para vari


avel ordinal
Em muitas situacoes da vida pratica temos uma variavel resposta ordinal ao inves de nominal
(como no exemplo anterior). A ordem presente na variavel resposta Y pode acontecer por
ela representar uma escala, como por exemplo, severidade de dor (nenhuma, leve, moderada,
grave). Em outros casos a variavel resposta ordinal e construda atraves da especificacao
de hierarquias (exemplo: anos de escolaridade). Existem varios modelos para modelar uma
variavel resposta ordinal. Neste curso veremos dois tipos: modelo de chances proporcionais
(proportional odds) tambem conhecido como modelo cumulativo (cumulative logit model ) e
modelo de razao contnua (continuation ratio model ).

Valeska Andreozzi (CEAUL)

13

Para efeito de ilustracao, vamos considerar o seguinte exemplo: investigar fatores associados a satisfacao das condicoes da casa para residentes de Copenhagen. Os dados estao
disponveis no formato agrupado.
> library(rms)

> copen <- read.table("copen.dat")


> head(copen)

1
2
3
4
5
6

housing influence contact satisfaction n


tower
low
low
low 21
tower
low
low
medium 21
tower
low
low
high 28
tower
low
high
low 14
tower
low
high
medium 19
tower
low
high
high 37
As variaveis sao as seguintes:
housing tipo de casa (tower blocks, apartments, atrium houses and terraced houses),
influence sentimento de influencia no gerenciamento do apartamento (low, medium,
high),
contact grau de contato com os vizinhos (low, high), and
satisfaction satisfacao com as condicoes da casa (low, medium, high)
n n
umero de residentes nas diversas combinacoes das variaveis acima descritas

Modelo de chances proporcionais


Para uma variavel resposta categorica ordinal Y com 1, 2, . . . , k nveis temos
ij = P r(Yi = j)
a probabilidade da variavel resposta pertencer a categoria j = 1, 2, . . . , k e

Valeska Andreozzi (CEAUL)

14

ij = P r(Yi j) = i1 + i2 + + ij
a probabilidade cumulativa correspondente de Yi . O modelo de chances proporcionais para
Yi e descrito por:
1
P r(Yi j|Xi ) =
(7)
1 + exp[(j + xi )]
Podemos reescrever o modelo (7) da seguinte forma:
ij
logit(ij ) = ln
= j + xi
1 ij

(8)

O modelo de chances proporcionais compara a probabilidade de uma resposta Y ser igual


ou menor que uma determinada categoria com a probabilidade da resposta ser maior que
esta categoria. Alem disso, o modelo e composto por k 1 equacoes lineares paralelas.
Para um nvel j fixo ou para uma categoria fixa, o modelo torna-se uma regressao logstica
simples para o evento Y j. Nota-se que o modelo (7) contem k 1 + p parametros (p
e o n
umero de covariaveis no modelo e k e o n
umero de categorias de Y ). Cada equacao
possui um intercepto que atende a seguinte condicao 1 < 2 < . . . < k . Os parametros
nao depende da categoria j. Esse modelo fornece uma u
nica estimativa para a razao de
chances para todas as categorias comparadas, que pode ser obtida atraves do calculo do
exponencial do coeficiente . Essa premissa e bastante adequada em termos da facilidade de
interpretacao e de parcimonia do modelo.
Vejamos o modelo de chances porporcionais estimado para os dados de satisfacao. Para
tal temos que transformar os dados agrupados em dados individuais:
> coindiv <- data.frame(housing = rep(copen$housing,
+
copen$n), influence = rep(copen$influence,
+
copen$n), contact = rep(copen$contact, copen$n),
+
satisfaction = rep(copen$satisfaction, copen$n))
A seguir criamos uma variavel resposta com labels numericos para garantir a hierarquia
da variavel resposta ordinal
>
>
>
>
>
>
+
>

coindiv$satis2 <- 1
coindiv$satis2[which(coindiv$satisfaction == "medium")] <- 2
coindiv$satis2[which(coindiv$satisfaction == "high")] <- 3
coindiv$satis2 <- factor(coindiv$satis2)
library(VGAM)
fit1 <- vglm(satis2 ~ housing, cumulative(parallel = TRUE),
coindiv)
summary(fit1)

Valeska Andreozzi (CEAUL)

15

Call:
vglm(formula = satis2 ~ housing, family = cumulative(parallel = TRUE),
data = coindiv)
Pearson Residuals:
Min
1Q
Median
3Q
Max
logit(P[Y<=1]) -1.3612 -0.9960 -0.35744 1.3221 1.6806
logit(P[Y<=2]) -1.6285 -1.0954 0.40890 1.0098 1.3922
Coefficients:
Value Std. Error
(Intercept):1
-0.64981
0.071302
(Intercept):2
0.47151
0.070384
housingatrium
-0.18811
0.137169
housingterraced 0.58502
0.131241
housingtower
-0.46842
0.115644
Number of linear predictors:

t value
-9.1134
6.6991
-1.3713
4.4576
-4.0506

Names of linear predictors: logit(P[Y<=1]), logit(P[Y<=2])


Dispersion Parameter for cumulative family:

Residual Deviance: 3594.803 on 3357 degrees of freedom


Log-likelihood: -1797.401 on 3357 degrees of freedom
Number of Iterations: 3
> fit2 <- vglm(satis2 ~ housing + influence, cumulative(parallel = TRUE),
+
coindiv)
> summary(fit2)

Call:
vglm(formula = satis2 ~ housing + influence, family = cumulative(parallel = TRUE),
data = coindiv)
Pearson Residuals:
Min

1Q

Median

3Q

Max

Valeska Andreozzi (CEAUL)

16

logit(P[Y<=1]) -1.5618 -0.87983 -0.30840 1.02639 2.5220


logit(P[Y<=2]) -2.0681 -0.92898 0.33184 0.89296 1.8375
Coefficients:
Value Std. Error t value
(Intercept):1
-1.38881
0.11410 -12.1718
(Intercept):2
-0.21023
0.10896 -1.9296
housingatrium
-0.23210
0.13946 -1.6643
housingterraced 0.49262
0.13321
3.6980
housingtower
-0.52146
0.11762 -4.4336
influencelow
1.23730
0.12545
9.8631
influencemedium 0.68891
0.12302
5.6000
Number of linear predictors:

Names of linear predictors: logit(P[Y<=1]), logit(P[Y<=2])


Dispersion Parameter for cumulative family:

Residual Deviance: 3493.456 on 3355 degrees of freedom


Log-likelihood: -1746.728 on 3355 degrees of freedom
Number of Iterations: 4
Para verificar se a covariavel influence e significativa podemos utilizar o teste da razao
de verossimilhanca:
> pchisq(2 * (logLik(fit2) - logLik(fit1)), df = length(coef(fit2)) +
length(coef(fit1)), lower.tail = FALSE)
[1] 9.835079e-23

Premissas do modelo de chances proporcionais


Premissa de ordem
Uma premissa basica dos modelos de regressao ordinal e que a variavel resposta Y apresente
uma certa ordem de acordo com cada covariavel X. Assumindo que a covariavel X se

Valeska Andreozzi (CEAUL)

17

relaciona linearmente com o logaritmo da chance de Y , uma forma simples de avaliar a ordem
da variavel resposta Y e verificar o grafico da media de X estratificado pelas categorias de Y .
Essas medias devem apresentar uma certa ordem consistente. Se para algumas covariaveis
X s, duas categorias adjacentes de Y nao distinguir as medias, temos evidencia de que tais
categorias de Y devem ser colapsadas.
Premissa de proporcionalidade
Juntamente com a premissa de ordem, podemos avaliar a premissa de proporcionalidade
atraves do calculo do valor esperado de X estratificado por Y , E(X|Y = j), assumindo um
modelo de chances proporcionais. Se X for uma variavel discreta, entao:
P r(Y = j|X)P r(X)
P (Y = j)
X
E(X|Y = j) =
xP r(Y = j|X)P r(X)/P (Y = j)

P r(X|Y = j) =

(9)
(10)

Assumindo um modelo de chances proporcionais para P r(Y = j|X), o valor esperado


E(X|Y = j) pode ser estimado por:
X
cr(Y = j|X)fx /gj
E(X|Y = j) =
xP
(11)
x

cr(Y = j|X) sao os valores ajustados do modelo de chances proporcionais, fx e a


em que P
frequencia de X = x e gj e a frequencia de Y = j. Se X for uma covariavel contnua, temos:
X
cr(Y = j|X)/gj
E(X|Y = j) =
xP
(12)
x

A Figura abaixo ilustra o modelo de chances proporcionais para uma variavel resposta
Y com 4 categorias (j = 1, 2, 3, 4) e uma covariavel X. Exemplo de um modelo hipotetico
com X variando entre 50 e 50 e com = 1 e j = 30, 0, 10

18

0.6
0.4

P(Y<=1)

P(Y<=2)

P(Y<=3)

0.0

0.2

Probabilidade

0.8

1.0

Valeska Andreozzi (CEAUL)

No R podemos usar a funcao plot.xmean.ordinaly() para avaliar as premissas de


ordem e de proporcionalidade. Nos graficos abaixo, a linha contnua representa as medias
de X para cada categoria de Y calculada de forma emprica. Se a premissa de ordem e
respeitada, sera observado uma tendencia monotonica.
As linhas pontilhadas sao os valores esperados de X|Y assumindo que a chance e proporcional. Espera-se que as linhas contnuas e pontilhadas sejam coincidentes caso a proporcionalidade seja verdadeira.
> par(mfrow = c(2, 2))
> plot.xmean.ordinaly(satis2 ~ housing, data = coindiv,
+
topcats = 3)

0.26

0.30

19

0.18

0.22

housing=tower

0.47
0.45
0.43

housing=apartments

Valeska Andreozzi (CEAUL)

satis2

satis2
n=1681

0.10

0.14

0.18

0.22

n=1681

housing=terraced

satis2
n=1681

> par(mfrow = c(2, 1))


> plot.xmean.ordinaly(satis2 ~ influence, data = coindiv,
+
topcats = 2)

0.40

20

0.37

influence=medium

Valeska Andreozzi (CEAUL)

satis2

0.45
0.30

influence=low

n=1681

satis2
n=1681

> plot.xmean.ordinaly(satis2 ~ contact, data = coindiv)

21

0.57
0.56
0.54

0.55

contact=high

0.58

0.59

0.60

Valeska Andreozzi (CEAUL)

satis2
n=1681

Resduos
Os resduos parciais sao os mais indicados na avaliacao de modelos de regressao para variaveis
ordinais. O resduo parcial para o modelo binario e dado por:

em que

rip = bp xip +
Pbi =

Yi Pbi
Pbi (1 Pbi )

(13)

1
1 + exp[(j + xi )]

O grafico suavisado (loess) de xip contra rip fornece uma estimativa nao parametrica de como
Xp se relaciona com o logaritmo da chance de Y = 1|Xp . Para o modelo ordinal e necessario
calcular o resduo parcial para todos os Y = j, tal que:
[Yi j] Pbi
rip = bp xip +
Pbi (1 Pbi )

(14)

O grafico a ser analisado e composto por curvas suavisadas dos residuos parciais para todos os
nveis j da variavel resposta Y . Se o modelo estiver bem ajustado entao espera-se encontrar

Valeska Andreozzi (CEAUL)

22

formas e inclinacoes semelhantes para uma dada covariavel Xp para todos as categorias j.
Os graficos de resduos parcias permitem avaliar a transformacao da covariavel (linearidade)
e ao mesmo tempo permite avaliar a premissa de proporcionalidade (paralelismo).
Para calcular os resduos parciais, temos que ajustar o modelo de chances proporcionais
atraves da funcao lmr() da biblioteca Hmisc. Nao se espantem com os sinais trocados dos
coeficientes comparados com os resultados da funcao vglm, pois a funcao lmr() estima o
modelo para P r(Y j) e o resultado anterior foi estimado para P r(Y j)
> fit2a <- lrm(satis2 ~ housing + influence, x = TRUE,
+
y = TRUE, data = coindiv)
> fit2a
Logistic Regression Model
lrm(formula = satis2 ~ housing + influence, data = coindiv, x = TRUE,
y = TRUE)

Frequencies of Responses
1
2
3
567 446 668
Obs
1681
C
0.641
Brier
0.208

Max Deriv Model L.R.


1e-11
155.42
Dxy
Gamma
0.282
0.314

Coef
S.E.
Wald Z
y>=2
1.3888 0.1149 12.08
y>=3
0.2102 0.1098 1.91
housing=atrium
0.2321 0.1375 1.69
housing=terraced -0.4926 0.1329 -3.71
housing=tower
0.5215 0.1182 4.41
influence=low
-1.2373 0.1260 -9.82
influence=medium -0.6889 0.1236 -5.57
> par(mfrow = c(2, 3))
> resid(fit2a, "partial", pl = T)

d.f.
5
Tau-a
0.186

P
0.0000
0.0555
0.0914
0.0002
0.0000
0.0000
0.0000

P
0
R2
0.1

23

0.4

0.0

Valeska Andreozzi (CEAUL)

y>=2

0.5

0.3
0.0

0.4

0.8

0.4

0.8

0.3

Partial Residual
0.0

0.0

housing=terraced

0.4

0.8

housing=tower

0.2
0.4

Partial Residual

0.6

0.6
1.0

Partial Residual

0.2

0.0

housing=atrium

0.1

0.2
0.6

0.1

y>=2

y>=3

0.1

y>=3

0.4

0.1

0.2

Partial Residual

y>=2

0.0

Partial Residual

y>=3

y>=2

y>=2

0.0

0.4

0.8

influence=low

y>=3

0.8

1.4

y>=3

0.0

0.4

0.8

influence=medium

Modelo de raz
ao contnua
O modelo de razao contnua baseia-se nas probabilidade condicionais em contraste com o
modelo anterior que baseia-se nas probabilidade cumulativas. Seja Y = j para j = 1, . . . , k
a variavel resposta. O modelo de razao contnua para Y e definido pelas seguintes k 1
regressoes:

1
1 + exp[(j + xi )]


P r(Yi = j)
logit(P r(Yi = j|Yi > j)) = ln
= 0 + xi
P r(Yi > j)
P r(Yi = j|Yi > j) =

(15)

O modelo de razao contnua e indicado para modelar uma variavel resposta ordinal
quando o indivduo tem que passar por uma categoria para chegar ate a proxima.

Valeska Andreozzi (CEAUL)

24

Premissas do modelo de raz


ao contnua
O modelo de razao contnua assume que o vetor de coeficientes de regressao e o mesmo
independente de qual probabilidade condicional esta sendo estimada. Assim, assume-se uma
simples razao de chances para todo Y > j, j = 1, . . . , k 1. Se a linearidade e garantida, a
razao de chances e dada por exp(p ) qualquer que seja o evento condicional Y > j.
Voltando ao exemplo, vamos estimar o modelo de risco contnuo
> fit3 <- vglm(satis2 ~ housing + influence, sratio(parallel = T),
+
coindiv)
> summary(fit3)

Call:
vglm(formula = satis2 ~ housing + influence, family = sratio(parallel = T),
data = coindiv)
Pearson Residuals:
Min
1Q
Median
3Q
Max
logit(P[Y=1|Y>=1]) -1.1227 -0.70698 -5.1963e-01 1.1153 2.4157
logit(P[Y=2|Y>=2]) -2.0443 -0.78283 -3.8706e-05 1.1056 2.1587
Coefficients:
Value Std. Error t value
(Intercept):1
-1.30922
0.10564 -12.3935
(Intercept):2
-0.92600
0.10650 -8.6947
housingatrium
-0.16282
0.12280 -1.3259
housingterraced 0.44980
0.11595
3.8792
housingtower
-0.45491
0.10442 -4.3565
influencelow
1.09090
0.11145
9.7883
influencemedium 0.61572
0.11031
5.5819
Number of linear predictors:

Names of linear predictors:


logit(P[Y=1|Y>=1]), logit(P[Y=2|Y>=2])
Dispersion Parameter for sratio family:

Residual Deviance: 3494.907 on 3355 degrees of freedom

Valeska Andreozzi (CEAUL)

25

Log-likelihood: -1747.453 on 3355 degrees of freedom


Number of Iterations: 4

Exerccio
This case study was taken form Harrels book (chapter 14). This case study was conducted
by WHO in which vital signs and a large number of clinical signs and symptoms were used to
develop a predicitve model for an ordinal response. The data consist of laboratory assessment
of diagnosis and severity of illness related to pneumonia, meningitis and sepsis. The sample
consisted of 4552 infants aged 90 days or less. The following laboratory data are used in the
response variable:
cerobrospinal fluid (CSF) cultire from a lumbar puncture (LP)
blood culture (BC)
arterial oxygen saturation (SaO2 , a measure of lung dysfunction)
chest X-ray (CXR)
The table below describe the ordinal outcome used to model the data.
Y
0
1
2

Definition
None of the below
90% SaO2 < 95% or CXR+
BC+ or CXR+ or SaO2 < 90%

Tabela 1: Ordinal outcome scale Y definition


Forty-seven clinical signs were collected for each infant (see figure below).

Valeska Andreozzi (CEAUL)

The signs are organized into cluster as describe below:

Task
1. Import data into R
2. Summarize/describe the Sc object

26

Valeska Andreozzi (CEAUL)

27

3. Y is the ordinal variable in the Sc object. Consider the covariates age, temp, rr,
hrat, waz, bul.conv, drowsy, agitated, reffort, ausc, feeding, abdominal to develop a
predictive model for Y
4. Examine the assumption of ordinality of Y for each predictor by assessing how varying
Y relate to the mean X, and whether the trend is monotonic. Check also the proportionality assumption for each covariate. The covariate temp, rr and hrat are expected to
have strong nonlinear effect. So for those predictors plot the mean absolute differences
from a suitable normalvalues as an approximate solution. Use 37, 60 and 125 for
temp, rr and hrat, respectively.
5. Fit a model with all covariates in the orginal scale.
6. Check if linearity holds for all covariates by plotting the partial residuals of the model
fitted before
7. Fit a model with all covariates but transform the temp, rr and hrat covariates as before.
8. Check if there are some covariates which could be ignored to predict Y . If so, remove
then and fit a reduced model.
9. Check the proportionaly assumption using the partial residuals of the fitted model.
Drop the covariates of the model that do not respect this assumption.
10. Categorize the age into 3 groups using the values 6 and 70 days as cut-off points.
11. Test the interactions of age categorized and temp, hrat and rr, transformed.
12. Propose a final model and then check the partial residuals.
13. Calculate the estimated probabilities P r(Y = j)
14. Write down a model interpretation.
R code:
load("ari.sav")
Sc$y<-Y
summary(Sc)
Sc$agecat<-cut2(Sc$age,c(7,60))
table(Sc$agecat)
options(device.ask.default=T)

Valeska Andreozzi (CEAUL)


plot.xmean.ordinaly(Y~age+abs(temp-37) + abs(rr-60)+
abs(hrat-125)+waz+bul.conv+drowsy+
agitated+reffort+ausc+
feeding+abdominal,data=Sc)

28

Potrebbero piacerti anche