Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
labestData
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pet-estatistica
labestData
Commits
6af0b733
There was a problem fetching the pipeline summary.
Commit
6af0b733
authored
8 years ago
by
Bruna Wundervald
Browse files
Options
Downloads
Patches
Plain Diff
Adiciona a primeira parte da vinheta de MLG
parent
8f8e7b4b
Branches
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#
Changes
1
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
vignettes/anaExpMLG.Rmd
+145
-0
145 additions, 0 deletions
vignettes/anaExpMLG.Rmd
with
145 additions
and
0 deletions
vignettes/anaExpMLG.Rmd
0 → 100644
+
145
−
0
View file @
6af0b733
---
title: "Modelos Lineares Generalizados"
author: "PET Estatística UFPR"
vignette: >
%\VignetteIndexEntry{Modelos Lineares Generalizados}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}---
---
```{r setup, include=FALSE}
# source("config/_setup.R")
```
# Análise Exploratória dos Dados
Para exemplificaro uso de um modelo linear generalizado, também chamado de
MLG (ou GLM), vamos utilizar o conjunto de dados `PaulaEx3.7.25.txt`.
```{r}
library(labestData)
# lista de dados de dentro do pacote
# ls("package:labestData")
```
Podemos olhar para a descrição dos dados, obtida através da função `help`:
```{r, eval=FALSE}
help(PaulaEx3.7.25, help_type = "html")
```
Este banco de dados trata sobre a a pulsação em repouso de homens que
fumam. A variável resposta é dicotômica, podendo ser pulsção "normal" ou "alta".
As duas outras variáveis, ou seja, o peso do indivíduo e o fator "fuma ou não",
serão utilizadas como possíveis explicativas no nível de pulsação.
Para cada variável, precisamos estar atentos às respectivas unidades de medida,
pois as interpretações do ajuste do modelo dependem, também, disso. Aqui não
teremos problemas, porque temos conhecimento e clareza sobre estas unidades.
```{r}
#-----------------------------------------------------------------------
# Lendo a partir do repositório do labestData.
# url <- paste0("https://gitlab.c3sl.ufpr.br/pet-estatistica",
# "/labestData/raw/devel/data-raw/PimentelEg5.2.txt")
## PimentelEg5.2 <-
# read.table(file = url, sep = "\t", header = TRUE)
#-----------------------------------------------------------------------
# Iniciando a análise exploratória
# Observando a estrutura dos dados
str(PaulaEx3.7.25)
# Tabelas de frequência
xtabs(~fuma, data = PaulaEx3.7.25)
xtabs(~pulsa, data = PaulaEx3.7.25)
# Diagrama de dispersão.
library(lattice)
xyplot(pulsa ~ peso, groups = fuma,
data = PaulaEx3.7.25, type = "p",
auto.key = list(corner = c(0.05, 0.95),
columns = 1, title = "Fuma", cex.title = 1.1),
xlab = "Peso do Indivíduo, em kg",
ylab = "Níveis de Pulsação em Repouso",
scales = list(x = list(rot = 90))
)
# BoxPlots
library(ggplot2)
ggplot(PaulaEx3.7.25, aes(x = pulsa, y = peso, fill = pulsa)) + geom_boxplot() +
facet_wrap(~ fuma, ncol = 5)
```
Notamos, a partir dos gráficos acima, que a maior parte dos indivíduos
que fumam têm pulsação em repouso alta. Mesmo assimEssas inferências podem
ajudar a interpretar e evidenciar os resultados do modelo.
# Ajustando um modelo linear generalizado aos dados
Um modelo linear generalizado depende da existência de 3 componentes:
* Um componente aleatório;
* Um componente sistemático; e
* Uma função de ligação, que lineariza a relação entre os componentes
aleatório e sistemático.
- O componente aleatório é um conjunto de variáveis aleatórias independentes
($Y_{1}, Y_{2}...Y_{n}$), com uma mesma distribuição da família exponencial de
dispersão, cujo formato possa ser escrito da seguinte maneira:
$$ f(y_{i}; \theta_{i}, \phi) = exp \{ \frac{\theta_{i}y_{i} - b(\theta_{i})}{\phi} - c(y_{i}; \phi) \}$$
Com:
$E(Y_{i}) = b'(\theta_{i})$ e $Var(Y_{i}) = \phi b"(\theta_{i}) = \phi V(\mu_{i})$
- O componente sistemático é o preditor linear, contemplando um conjunto de
covariáveis ($x_{1}, x_{2}...x_{p}$), por meio de uma combinação linear nos
parâmetros:
$$\eta_{i} = \beta_{0} + \beta_{1}x_{i1} + \beta_{2}x_{i2} + ... + \beta_{p}x_{ip} $$
- A função de ligação é responsável por associar, de forma **linear** o
componente aleatório ao sistemático. Ela é real, monótona e diferenciável.
Sua notação é a seguinte:
$$ g(\mu_{i}) = \nu_{i} = \beta_{0} + \beta_{1}x_{i1} + \beta_{2}x_{i2} + ... + \beta_{p}x_{ip}, $$
e, equivalentemente,
$$ \mu_{i} = g^{-1}(\eta_{i}) = g(\beta_{0} + \beta_{1}x_{i1} + \beta_{2}x_{i2} + ... + \beta_{p}x_{ip})$$
Caso algum destes elementos não seja satisfeito, o modelo não é um MLG.
Códigos para o ajuste:
```{r}
# como a variável 'pulsa' é um fator binário, vamos
# utilizar a distribuição binomial
m0 <- glm(pulsa ~ peso + fuma, data = PaulaEx3.7.25,
family= binomial(link="logit")) # especificação da função de ligação
# como sendo 'logito'
summary(m0) # resumo do modelo
levels(PaulaEx3.7.25$pulsa) # níveis da variável resposta
```
# Interpretando a saída do modelo
Dados os resultados acima, concluimos que a variável `peso`
contribui para uma menor incidência de pulsação alta. Isto também
ocorre para quando o indivíduo é não fumante, isto é, ele tem
mais chances de ter uma pulsação normal em repouso. Obtemos
essas conclusões uma vez que ambos os parâmetros $\beta_{1}$ e
$\beta_{2}$ têm sinal negativo.
Como esse é um caso *binomial*, estamo modelado uma probabilidade,
ou seja, valores que devem pertencer ao intervalo $[0,1]$. As estimativas
acima estão na escala do preditos. Para colocar na escala da **resposta**,
a seguinte equação é utilizada:
$$ \hat\pi_{x} = \frac{\exp^{\beta_{0} + \beta_{1} * x_{1} + \beta_{2} * x_{2}}}{1 + \exp^{\beta_{0} + \beta_{1} * x_{1} + \beta_{2}}}$$
$$ \hat\pi_{x} = \frac{\exp^{3.18021 -0.05050 * x_{1} -1.19298 x_{2}}}{1 + \exp^{3.18021 -0.05050 * x_{1} -1.19298 x_{2}}}$$
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment