Zelig

Esse tutorial é uma reprodução do tutorial original do (Zelig)[http://docs.zeligproject.org/articles/quickstart.html]. A seguir vamos instalar o pacote, existem duas formas. Tente a primeira, caso não dê certo, instale o pacote devtools e depois a versão do Zelig disponível no github.

#instalando pacote
install.packages('zeligverse')

#ou
install.packages("devtools")
devtools::install_github('IQSS/Zelig')

O próximo passo é carregar o pacote e os dados. Estes são sobre fertilidade e fatores socioeconômicos em 47 províncias francófonas na Suíça em 1888. Acesse o tutorial (original)[http://docs.zeligproject.org/articles/quickstart.html] para mais detalhes.

#carregando pacote
library(Zelig)
## Loading required package: survival
#carregando dados
data("swiss")

Antes de entrarmos no modelo de regressão, veremos as estatísticas descritivas de todas as variáveis do dataset.

summary(swiss)
##    Fertility      Agriculture     Examination      Education    
##  Min.   :35.00   Min.   : 1.20   Min.   : 3.00   Min.   : 1.00  
##  1st Qu.:64.70   1st Qu.:35.90   1st Qu.:12.00   1st Qu.: 6.00  
##  Median :70.40   Median :54.10   Median :16.00   Median : 8.00  
##  Mean   :70.14   Mean   :50.66   Mean   :16.49   Mean   :10.98  
##  3rd Qu.:78.45   3rd Qu.:67.65   3rd Qu.:22.00   3rd Qu.:12.00  
##  Max.   :92.50   Max.   :89.70   Max.   :37.00   Max.   :53.00  
##     Catholic       Infant.Mortality
##  Min.   :  2.150   Min.   :10.80   
##  1st Qu.:  5.195   1st Qu.:18.15   
##  Median : 15.140   Median :20.00   
##  Mean   : 41.144   Mean   :19.94   
##  3rd Qu.: 93.125   3rd Qu.:21.70   
##  Max.   :100.000   Max.   :26.60

Modelo de Regressão

Agora estimaremos o efeito da educação sobre fertilidade com a função zelig() do pacote, dentro da função especificaremos a fórmula, o modelo, no caso linear, least squares (“ls”), e o dataset. O argumento cite já está definido como cite = T, para obtermos informações sobre como citar o modelo. Cheque a documentação das funções do Zelig antes de rodá-las.

#checando a documentacao
help("zelig")
## starting httpd help server ... done
#estimando o modelo
modelo <- zelig(Fertility ~ Education, model = "ls", data = swiss)
## How to cite this model in Zelig:
##   R Core Team. 2007.
##   ls: Least Squares Regression for Continuous Dependent Variables
##   in Christine Choirat, Christopher Gandrud, James Honaker, Kosuke Imai, Gary King, and Olivia Lau,
##   "Zelig: Everyone's Statistical Software," http://zeligproject.org/

No summary do modelo temos as informações sobre os coeficientes e significância estatística como de praxe. E também nos alerta que o próximo passo seria usar o argumento setx para examinarmos qual seria o efeito de aumentar a porcentagem de educados de 5 para 10%.

summary(modelo)
## Model: 
## 
## Call:
## z5$zelig(formula = Fertility ~ Education, data = swiss)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -17.036  -6.711  -1.011   9.526  19.689 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  79.6101     2.1041  37.836  < 2e-16
## Education    -0.8624     0.1448  -5.954 3.66e-07
## 
## Residual standard error: 9.446 on 45 degrees of freedom
## Multiple R-squared:  0.4406, Adjusted R-squared:  0.4282 
## F-statistic: 35.45 on 1 and 45 DF,  p-value: 3.659e-07
## 
## Next step: Use 'setx' method

Note que para definir o primeiro valor da educação usamos a função setx() e para a segunda a setx1().

# checando a documentacao das funcoes
help("setx")
help("setx1")

#definindo a educacao 5
modelo_2 <- setx(modelo, Education = 5)

#definindo a educacao como 10
modelo_2 <- setx1(modelo, Education = 15)
summary(modelo_2)
## setx:
##   (Intercept) Education
## 1           1        15
## setx1:
##   (Intercept) Education
## 1           1        15
## 
## Next step: Use 'sim' method

Nosso próximo passo, como o summary() do modelo_2 indica é fazer as simulações.

#checando a documentacao
help("sim")

#realizando as simulacoes
modelo_2 <- sim(modelo_2)

summary(modelo_2)
## 
##  sim x :
##  -----
## ev
##       mean       sd      50%     2.5%    97.5%
## 1 66.65673 1.536243 66.68083 63.77527 69.61714
## pv
##         mean       sd      50%     2.5%    97.5%
## [1,] 66.7999 9.622176 66.54632 48.89555 86.00579
## fd
##   mean sd 50% 2.5% 97.5%
## 1    0  0   0    0     0
## 
##  sim x1 :
##  -----
## ev
##       mean       sd      50%     2.5%    97.5%
## 1 66.65673 1.536243 66.68083 63.77527 69.61714
## pv
##         mean       sd      50%     2.5%    97.5%
## [1,] 66.7999 9.622176 66.54632 48.89555 86.00579
## fd
##   mean sd 50% 2.5% 97.5%
## 1    0  0   0    0     0

Agora plotaremos nossas simulações:

#checando documentacao
help("plot")

#plotando o grafico
plot(modelo_2)

Podemos definir um intervalo com a função setx() e plotar depois os dados simulados.

#definindo o modelo 
modelo_3 <- zelig(Fertility ~ Education, model = "ls", data = swiss)
## How to cite this model in Zelig:
##   R Core Team. 2007.
##   ls: Least Squares Regression for Continuous Dependent Variables
##   in Christine Choirat, Christopher Gandrud, James Honaker, Kosuke Imai, Gary King, and Olivia Lau,
##   "Zelig: Everyone's Statistical Software," http://zeligproject.org/
# definindo educacao entre 5 e 15
modelo_3 <- setx(modelo_3, Education = 5:15)

# rodando as simulacoes
modelo_3 <- sim(modelo_3)

# plotando o grafico
plot(modelo_3)

Acesse o tutorial original e o site oficial do pacote Zelig Project.

Fonte: http://docs.zeligproject.org/articles/quickstart.html