-
Notifications
You must be signed in to change notification settings - Fork 75
/
modelo_binomial.pgf
68 lines (59 loc) · 1.6 KB
/
modelo_binomial.pgf
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
\def\hscale{-1.2}%
\def\size{25}%
\def\bzero{4}%
\def\bone{-2}%
\newcommand*{\ListXYvalues}{0.5, 1, 1.5, 2, 2.5, 3, 3.5}%
\newcommand*\pgfplotsinvokeforeachmacro[1]{%
\expandafter\pgfplotsinvokeforeach\expandafter{#1}}%
\tikzset{%
declare function={
binompf(\k,\n,\p)=\n!/(\k!*(\n-\k)!)*\p^\k*(1-\p)^(\n-\k);
},
declare function={
eta(\x,\bzero,\bone)=1/(1+exp(\bzero+\bone*\x));
},
hplot/.style={ycomb, mark=o, samples at={0,1,...,20}},
vplot/.style={
xcomb, no marks,
very thick, line cap=round,
},
>=stealth,
cx/.style={fill=white, font=\footnotesize},
pth/.style={draw, ->, color=darkgreen},
halves/.style={samples=30, fill opacity=0.5, draw=none}
}%
\pgfplotsset{%
my plot/.code args={#1}{%
\addplot [
vplot,
restrict x to domain=-1:-0.005,
samples at={0, 1, ..., \size},
shift={(axis direction cs: #1, 0)},
] ({\hscale*binompf(x, \size, 1/(1+exp(\bzero+\bone*#1)))}, x);
}
}%
\begin{tikzpicture}%
\begin{axis}[
clip = false,
width=7cm, height=7cm,
xlabel=$x$,
% ylabel={$\text{E}(Y|x) = n\cdot p(x)$},
ylabel={$y$},
xmin=-0.25]
\addplot[domain=0:3.75, samples=30, smooth, orange, very thick]
(x, {\size*eta(x, \bzero, \bone)});
\pgfplotsinvokeforeachmacro\ListXYvalues{
\pgfplotsset{my plot={#1}}
}
\foreach \x in {0.5, 1, ..., 3.5}{
\edef\temp{
\noexpand
\draw [dotted, thin, gray] (\x, 0) -- (\x, \size);
}
\temp
}
\path[draw] (2, 30)
node {\small $Y|x \sim \text{binomial}(n, p(x))$}
edge[<-, out=-90, in=180] (1.75, 12.5);
\end{axis}
\end{tikzpicture}%