|
72 | 72 | "We are now in a position to sketch out a generative PyMC model:\n",
|
73 | 73 | "\n",
|
74 | 74 | "```python\n",
|
75 |
| - "import pytensor.tensor as at\n", |
| 75 | + "import pytensor.tensor as pt\n", |
76 | 76 | "\n",
|
77 | 77 | "with pm.Model() as model:\n",
|
78 | 78 | " # priors\n",
|
|
81 | 81 | " # generative process\n",
|
82 | 82 | " probs = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu, sigma=sigma), cutpoints))\n",
|
83 | 83 | " probs = pm.math.concatenate([[0], probs, [1]])\n",
|
84 |
| - " probs = at.extra_ops.diff(probs)\n", |
| 84 | + " probs = pt.extra_ops.diff(probs)\n", |
85 | 85 | " # likelihood\n",
|
86 | 86 | " pm.Multinomial(\"counts\", p=probs, n=sum(counts), observed=counts)\n",
|
87 | 87 | "```\n",
|
|
98 | 98 | "simply concatenates the cumulative density at $-\\infty$ (which is zero) and at $\\infty$ (which is 1).\n",
|
99 | 99 | "The third line\n",
|
100 | 100 | "```python\n",
|
101 |
| - "probs = at.extra_ops.diff(probs)\n", |
| 101 | + "probs = pt.extra_ops.diff(probs)\n", |
102 | 102 | "```\n",
|
103 | 103 | "calculates the difference between consecutive cumulative densities to give the actual probability of a datum falling in any given bin.\n",
|
104 | 104 | "\n",
|
|
125 | 125 | "import numpy as np\n",
|
126 | 126 | "import pandas as pd\n",
|
127 | 127 | "import pymc as pm\n",
|
128 |
| - "import pytensor.tensor as at\n", |
| 128 | + "import pytensor.tensor as pt\n", |
129 | 129 | "import seaborn as sns\n",
|
130 | 130 | "\n",
|
131 | 131 | "warnings.filterwarnings(action=\"ignore\", category=UserWarning)"
|
|
320 | 320 | " mu = pm.Normal(\"mu\")\n",
|
321 | 321 | "\n",
|
322 | 322 | " probs1 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu, sigma=sigma), d1))\n",
|
323 |
| - " probs1 = at.extra_ops.diff(pm.math.concatenate([[0], probs1, [1]]))\n", |
| 323 | + " probs1 = pt.extra_ops.diff(pm.math.concatenate([[0], probs1, [1]]))\n", |
324 | 324 | " pm.Multinomial(\"counts1\", p=probs1, n=c1.sum(), observed=c1.values)"
|
325 | 325 | ]
|
326 | 326 | },
|
|
841 | 841 | " mu = pm.Normal(\"mu\")\n",
|
842 | 842 | "\n",
|
843 | 843 | " probs2 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu, sigma=sigma), d2))\n",
|
844 |
| - " probs2 = at.extra_ops.diff(pm.math.concatenate([[0], probs2, [1]]))\n", |
| 844 | + " probs2 = pt.extra_ops.diff(pm.math.concatenate([[0], probs2, [1]]))\n", |
845 | 845 | " pm.Multinomial(\"counts2\", p=probs2, n=c2.sum(), observed=c2.values)"
|
846 | 846 | ]
|
847 | 847 | },
|
|
1238 | 1238 | " mu = pm.Normal(\"mu\")\n",
|
1239 | 1239 | "\n",
|
1240 | 1240 | " probs1 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu, sigma=sigma), d1))\n",
|
1241 |
| - " probs1 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
| 1241 | + " probs1 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
1242 | 1242 | " probs1 = pm.Deterministic(\"normal1_cdf\", probs1)\n",
|
1243 | 1243 | "\n",
|
1244 | 1244 | " probs2 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu, sigma=sigma), d2))\n",
|
1245 |
| - " probs2 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
| 1245 | + " probs2 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
1246 | 1246 | " probs2 = pm.Deterministic(\"normal2_cdf\", probs2)\n",
|
1247 | 1247 | "\n",
|
1248 | 1248 | " pm.Multinomial(\"counts1\", p=probs1, n=c1.sum(), observed=c1.values)\n",
|
|
1719 | 1719 | " mu = pm.Normal(\"mu\")\n",
|
1720 | 1720 | " # study 1\n",
|
1721 | 1721 | " probs1 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu, sigma=sigma), d1))\n",
|
1722 |
| - " probs1 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
| 1722 | + " probs1 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
1723 | 1723 | " probs1 = pm.Deterministic(\"normal1_cdf\", probs1)\n",
|
1724 | 1724 | " pm.Multinomial(\"counts1\", p=probs1, n=c1.sum(), observed=c1.values)\n",
|
1725 | 1725 | " # study 2\n",
|
|
2149 | 2149 | "\n",
|
2150 | 2150 | " # Study 1\n",
|
2151 | 2151 | " probs1 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu[0], sigma=sigma[0]), d1))\n",
|
2152 |
| - " probs1 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
| 2152 | + " probs1 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
2153 | 2153 | " probs1 = pm.Deterministic(\"normal1_cdf\", probs1, dims=\"bin1\")\n",
|
2154 | 2154 | "\n",
|
2155 | 2155 | " # Study 2\n",
|
2156 | 2156 | " probs2 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu[1], sigma=sigma[1]), d2))\n",
|
2157 |
| - " probs2 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
| 2157 | + " probs2 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
2158 | 2158 | " probs2 = pm.Deterministic(\"normal2_cdf\", probs2, dims=\"bin2\")\n",
|
2159 | 2159 | "\n",
|
2160 | 2160 | " # Likelihood\n",
|
|
2392 | 2392 | "\n",
|
2393 | 2393 | " # Study 1\n",
|
2394 | 2394 | " probs1 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu[0], sigma=sigma[0]), d1))\n",
|
2395 |
| - " probs1 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
| 2395 | + " probs1 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
2396 | 2396 | " probs1 = pm.Deterministic(\"normal1_cdf\", probs1, dims=\"bin1\")\n",
|
2397 | 2397 | "\n",
|
2398 | 2398 | " # Study 2\n",
|
2399 | 2399 | " probs2 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu[1], sigma=sigma[1]), d2))\n",
|
2400 |
| - " probs2 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
| 2400 | + " probs2 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
2401 | 2401 | " probs2 = pm.Deterministic(\"normal2_cdf\", probs2, dims=\"bin2\")\n",
|
2402 | 2402 | "\n",
|
2403 | 2403 | " # Likelihood\n",
|
|
2927 | 2927 | " \n",
|
2928 | 2928 | " # Study 1\n",
|
2929 | 2929 | " probs1 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu[0], sigma=sigma[0]), d1))\n",
|
2930 |
| - " probs1 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
| 2930 | + " probs1 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
2931 | 2931 | " probs1 = pm.Deterministic(\"normal1_cdf\", probs1, dims='bin1')\n",
|
2932 | 2932 | "\n",
|
2933 | 2933 | " # Study 2\n",
|
2934 | 2934 | " probs2 = pm.math.exp(pm.logcdf(pm.Normal.dist(mu=mu[1], sigma=sigma[1]), d2))\n",
|
2935 |
| - " probs2 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
| 2935 | + " probs2 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
2936 | 2936 | " probs2 = pm.Deterministic(\"normal2_cdf\", probs2, dims='bin2')\n",
|
2937 | 2937 | "\n",
|
2938 | 2938 | " # Likelihood\n",
|
|
3091 | 3091 | " beta = pm.HalfNormal(\"beta\", 10)\n",
|
3092 | 3092 | "\n",
|
3093 | 3093 | " probs1 = pm.math.exp(pm.logcdf(pm.Gumbel.dist(mu=mu, beta=beta), d1))\n",
|
3094 |
| - " probs1 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
| 3094 | + " probs1 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs1, np.array([1])]))\n", |
3095 | 3095 | " probs1 = pm.Deterministic(\"gumbel_cdf1\", probs1)\n",
|
3096 | 3096 | "\n",
|
3097 | 3097 | " probs2 = pm.math.exp(pm.logcdf(pm.Gumbel.dist(mu=mu, beta=beta), d2))\n",
|
3098 |
| - " probs2 = at.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
| 3098 | + " probs2 = pt.extra_ops.diff(pm.math.concatenate([np.array([0]), probs2, np.array([1])]))\n", |
3099 | 3099 | " probs2 = pm.Deterministic(\"gumbel_cdf2\", probs2)\n",
|
3100 | 3100 | "\n",
|
3101 | 3101 | " pm.Multinomial(\"counts1\", p=probs1, n=c1.sum(), observed=c1.values)\n",
|
|
0 commit comments