-
Notifications
You must be signed in to change notification settings - Fork 2
/
02-problemas.Rmd
54 lines (40 loc) · 1.74 KB
/
02-problemas.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
---
title: "Modelos de Grafos Exponenciales (ERGMs)"
author: "George G. Vega Yon"
date: "<img src=\"fig/cana_logo.png\" style=\"width:300px;\"><br>Department of Preventive Medicine<br>University of Southern California<br>20 de Diciembre, 2018"
output: html_document
editor_options:
chunk_output_type: console
bibliography: bibliography.bib
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## 2.1 Maximum Pseudo-Likelihood Estimation
a. Sabemos que el ERGM que estima numero de links es equivalente a una regresión
logística. ¿Es lo mismo cierto para el caso en que se estiman número de
lazos recíprocos?
b. En vez de el número de lazos mutuos, realiza el mismo análisis respecto del
número de lazos homofílicos en la variable `cloisterville` utilizando el
término `nodematch`.
c. Muestra empíricamente que tu respuesta es correcta comparando un ERGM vs
una regresión logística utilizando la base de datos `samplk1` (del paquete
`ergm`).
```{r eval=FALSE, echo=FALSE}
library(ergm)
data(samplk)
# Estimando el modelo utilizando ergm
(mod1c1 <- ergm(samplk1 ~ edges + nodematch("cloisterville")))
# Ahora logit MLE
mod1c2 <- as.matrix(samplk1)
clois <- get.vertex.attribute(samplk1, "cloisterville")
idx <- expand.grid(1:length(clois),1:length(clois))
clois <- as.integer(clois[idx[,1]] == clois[idx[,2]])
diag(mod1c2) <- NA
glm(as.vector(mod1c2) ~ 1 + clois , family=binomial(link="logit"))
```
## 2.2 ERGMito
Implementa la función de verosimilitud de ERGM. Para esto puedes utilizar la
función `ergm::ergm.allstats` o las funciones `ergm::summary_formula` y
`lergm::powerset` para grafos de hasta tamaño 4. Compara tu implementación con
la disponible en `lergm::exact_loglik`.