├── .gitignore ├── Y.RData ├── d.RData ├── data.rdata ├── README.md ├── model.bug.txt ├── car.bug.txt ├── hierarchical.bug.txt ├── infection.bug.txt ├── hierarchical2.bug.txt ├── dummydata.csv ├── data7a.csv ├── data4c.csv ├── data5.csv ├── d1.csv ├── data3a.csv ├── data4a.csv ├── data4b.csv ├── 4_model_selection.ipynb ├── winbugs_sandbox.ipynb ├── R2WBwrapper.R ├── 11_spacial_bayes.ipynb ├── 8_mcmc.ipynb └── 5_stat_test.ipynb /.gitignore: -------------------------------------------------------------------------------- 1 | .ipynb_checkpoints 2 | .Rhistory 3 | -------------------------------------------------------------------------------- /Y.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tushuhei/statisticalDataModeling/HEAD/Y.RData -------------------------------------------------------------------------------- /d.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tushuhei/statisticalDataModeling/HEAD/d.RData -------------------------------------------------------------------------------- /data.rdata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tushuhei/statisticalDataModeling/HEAD/data.rdata -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 飯塚修平が緑本「データ解析のための統計モデリング入門」を勉強するためのノート群。 2 | データは http://goo.gl/Ufq2 からダウンロード可能。 -------------------------------------------------------------------------------- /model.bug.txt: -------------------------------------------------------------------------------- 1 | model 2 | { 3 | Tau.noninformative <- 1.0E-4; 4 | for (i in 1:N) { 5 | Y[i] ~ dpois(lambda[i]); 6 | log(lambda[i]) <- beta1 + beta2 * (X[i] - Mean.X); 7 | } 8 | beta1 ~ dnorm(0, Tau.noninformative); 9 | beta2 ~ dnorm(0, Tau.noninformative); 10 | } -------------------------------------------------------------------------------- /car.bug.txt: -------------------------------------------------------------------------------- 1 | model 2 | { 3 | for (j in 1:N.site) { 4 | Y[j] = dpois(mean[j]); 5 | log(mean[j]) <- beta + r[j]; 6 | } 7 | r[1:N.site] ~ car.normal(Adj[], Weights[], Num[], tau); 8 | beta ~ dnorm(0, 1.0E-4); 9 | tau <- 1 / (s * s); 10 | s ~ dunif(0, 1.0E+4); 11 | } -------------------------------------------------------------------------------- /hierarchical.bug.txt: -------------------------------------------------------------------------------- 1 | model 2 | { 3 | for (i in 1:N) { 4 | Y[i] ~ dbin(q[i], 8); 5 | logit(q[i]) <- beta + r[i]; 6 | } 7 | 8 | beta ~ dnorm(0, 1.0E-4); 9 | 10 | for (i in 1:N) { 11 | r[i] ~ dnorm(0, tau); 12 | } 13 | 14 | tau <- 1 / (s * s); 15 | s ~ dunif(0, 1.0E+4); 16 | } -------------------------------------------------------------------------------- /infection.bug.txt: -------------------------------------------------------------------------------- 1 | model 2 | { 3 | Tau.noninformative <- 1.0E-3; 4 | P.gamma <- 1.0E-3; 5 | for (i in 1:N) { 6 | Positive[i] ~ dbin(p[i], Total[i]); 7 | logit(p[i]) <- logit.p[i]; 8 | logit.p[i] ~ dnorm(m[i], tau); 9 | m[i] <- beta[1] + beta[2] * Logdose[i]; 10 | } 11 | beta[1] ~ dnorm(0.0, Tau.noninformative); 12 | beta[2] ~ dnorm(0.0, Tau.noninformative); 13 | tau ~ dgamma(P.gamma, P.gamma); 14 | } 15 | -------------------------------------------------------------------------------- /hierarchical2.bug.txt: -------------------------------------------------------------------------------- 1 | model 2 | { 3 | for (i in 1:N.sample) { 4 | Y[i] ~ dpois(lambda[i]); 5 | log(lambda[i]) <- beta1 + beta2 * F[i] + r[i] + rp[Pot[i]]; 6 | } 7 | beta1 ~ dnorm(0, 1.0E-4); 8 | beta2 ~ dnorm(0, 1.0E-4); 9 | for (i in 1:N.sample) { 10 | r[i] ~ dnorm(0, tau[1]); 11 | } 12 | for (j in 1:N.pot) { 13 | rp[j] ~ dnorm(0, tau[2]); 14 | } 15 | for (k in 1:N.tau) { 16 | tau[k] <- 1.0 / (s[k] * s[k]); 17 | s[k] ~ dunif(0, 1.0E+4); 18 | } 19 | } -------------------------------------------------------------------------------- /dummydata.csv: -------------------------------------------------------------------------------- 1 | "Dose","Logdose","Positive","Total" 2 | 12023,4.08,4,5 3 | 23988,4.38,5,6 4 | 66069,4.82,2,6 5 | 93325,4.97,4,6 6 | 141254,5.15,5,6 7 | 257040,5.41,2,6 8 | 588844,5.77,4,6 9 | 851138,5.93,5,6 10 | 89125,4.95,1,6 11 | 446684,5.65,3,6 12 | 1047129,6.02,4,6 13 | 3890451,6.59,6,6 14 | 1e+07,7,6,6 15 | 23988329,7.38,6,6 16 | 44668359,7.65,6,6 17 | 67608298,7.83,8,8 18 | 158489,5.2,1,6 19 | 1258925,6.1,2,6 20 | 4677351,6.67,6,6 21 | 12023,4.08,0,6 22 | 23988,4.38,1,6 23 | 52481,4.72,2,6 24 | 95499,4.98,1,6 25 | 154882,5.19,4,6 26 | 724436,5.86,3,6 27 | 1148154,6.06,5,6 28 | 5495409,6.74,5,6 29 | 23988329,7.38,6,6 30 | 50118723,7.7,6,6 31 | 1e+06,6,5,6 32 | 5495409,6.74,6,6 33 | 1e+07,7,6,6 34 | 19952623,7.3,5,6 35 | 40738028,7.61,6,6 36 | 158489,5.2,5,6 37 | 1513561,6.18,3,5 38 | 7762471,6.89,6,6 39 | 1e+07,7,5,6 40 | -------------------------------------------------------------------------------- /data7a.csv: -------------------------------------------------------------------------------- 1 | id,y 2 | 1,0 3 | 2,2 4 | 3,7 5 | 4,8 6 | 5,1 7 | 6,7 8 | 7,8 9 | 8,8 10 | 9,1 11 | 10,1 12 | 11,4 13 | 12,0 14 | 13,1 15 | 14,4 16 | 15,7 17 | 16,8 18 | 17,7 19 | 18,0 20 | 19,2 21 | 20,2 22 | 21,1 23 | 22,1 24 | 23,5 25 | 24,7 26 | 25,8 27 | 26,3 28 | 27,8 29 | 28,4 30 | 29,6 31 | 30,0 32 | 31,8 33 | 32,7 34 | 33,8 35 | 34,0 36 | 35,2 37 | 36,6 38 | 37,7 39 | 38,8 40 | 39,2 41 | 40,1 42 | 41,1 43 | 42,0 44 | 43,0 45 | 44,7 46 | 45,8 47 | 46,5 48 | 47,7 49 | 48,2 50 | 49,8 51 | 50,1 52 | 51,5 53 | 52,7 54 | 53,3 55 | 54,8 56 | 55,0 57 | 56,8 58 | 57,6 59 | 58,3 60 | 59,2 61 | 60,0 62 | 61,0 63 | 62,1 64 | 63,2 65 | 64,8 66 | 65,7 67 | 66,7 68 | 67,7 69 | 68,8 70 | 69,0 71 | 70,0 72 | 71,0 73 | 72,5 74 | 73,1 75 | 74,0 76 | 75,0 77 | 76,0 78 | 77,8 79 | 78,1 80 | 79,8 81 | 80,4 82 | 81,7 83 | 82,2 84 | 83,1 85 | 84,4 86 | 85,7 87 | 86,0 88 | 87,8 89 | 88,1 90 | 89,8 91 | 90,7 92 | 91,6 93 | 92,2 94 | 93,8 95 | 94,6 96 | 95,6 97 | 96,1 98 | 97,0 99 | 98,4 100 | 99,7 101 | 100,0 102 | -------------------------------------------------------------------------------- /data4c.csv: -------------------------------------------------------------------------------- 1 | x,y 2 | 0.001,0.0008873584 3 | 0.01730612,0.0234652087 4 | 0.03361224,0.0698755633 5 | 0.04991837,0.0343402528 6 | 0.06622449,0.0265204047 7 | 0.08253061,0.1592148027 8 | 0.09883673,0.1650783893 9 | 0.11514286,0.1240028738 10 | 0.13144898,0.0596455047 11 | 0.1477551,0.0552452656 12 | 0.16406122,0.1922147499 13 | 0.18036735,0.0305346235 14 | 0.19667347,0.1050614252 15 | 0.21297959,0.076275922 16 | 0.22928571,0.1524998027 17 | 0.24559184,0.0564525639 18 | 0.26189796,0.0959048838 19 | 0.27820408,0.119482688 20 | 0.2945102,0.0379757879 21 | 0.31081633,0.1923054736 22 | 0.32712245,0.183303215 23 | 0.34342857,0.094980184 24 | 0.35973469,0.0912946482 25 | 0.37604082,0.1452412815 26 | 0.39234694,0.1090217347 27 | 0.40865306,0.2394445515 28 | 0.42495918,0.1933050241 29 | 0.44126531,0.202679323 30 | 0.45757143,0.2090867442 31 | 0.47387755,0.2804643819 32 | 0.49018367,0.3679867385 33 | 0.5064898,0.153935256 34 | 0.52279592,0.1653358407 35 | 0.53910204,0.2970396128 36 | 0.55540816,0.3508910552 37 | 0.57171429,0.1824436007 38 | 0.58802041,0.1344558643 39 | 0.60432653,0.4186216605 40 | 0.62063265,0.3261179044 41 | 0.63693878,0.0558967727 42 | 0.6532449,0.2488526264 43 | 0.66955102,0.483436485 44 | 0.68585714,0.1486623573 45 | 0.70216327,0.0416329786 46 | 0.71846939,0.61453564 47 | 0.73477551,0.1978335852 48 | 0.75108163,0.1915292152 49 | 0.76738776,0.3220098859 50 | 0.78369388,0.453920294 51 | 0.8,0.1788958933 52 | -------------------------------------------------------------------------------- /data5.csv: -------------------------------------------------------------------------------- 1 | "N","y","x","id" 2 | 8,0,2,1 3 | 8,1,2,2 4 | 8,2,2,3 5 | 8,4,2,4 6 | 8,1,2,5 7 | 8,0,2,6 8 | 8,0,2,7 9 | 8,7,2,8 10 | 8,1,2,9 11 | 8,6,2,10 12 | 8,0,2,11 13 | 8,0,2,12 14 | 8,0,2,13 15 | 8,0,2,14 16 | 8,0,2,15 17 | 8,1,2,16 18 | 8,3,2,17 19 | 8,5,2,18 20 | 8,3,2,19 21 | 8,7,2,20 22 | 8,2,3,21 23 | 8,1,3,22 24 | 8,0,3,23 25 | 8,6,3,24 26 | 8,1,3,25 27 | 8,2,3,26 28 | 8,0,3,27 29 | 8,0,3,28 30 | 8,0,3,29 31 | 8,3,3,30 32 | 8,5,3,31 33 | 8,5,3,32 34 | 8,0,3,33 35 | 8,0,3,34 36 | 8,0,3,35 37 | 8,8,3,36 38 | 8,4,3,37 39 | 8,2,3,38 40 | 8,0,3,39 41 | 8,8,3,40 42 | 8,6,4,41 43 | 8,2,4,42 44 | 8,0,4,43 45 | 8,5,4,44 46 | 8,6,4,45 47 | 8,2,4,46 48 | 8,8,4,47 49 | 8,2,4,48 50 | 8,7,4,49 51 | 8,7,4,50 52 | 8,8,4,51 53 | 8,0,4,52 54 | 8,4,4,53 55 | 8,7,4,54 56 | 8,3,4,55 57 | 8,1,4,56 58 | 8,3,4,57 59 | 8,2,4,58 60 | 8,8,4,59 61 | 8,0,4,60 62 | 8,7,5,61 63 | 8,4,5,62 64 | 8,2,5,63 65 | 8,3,5,64 66 | 8,3,5,65 67 | 8,7,5,66 68 | 8,8,5,67 69 | 8,7,5,68 70 | 8,0,5,69 71 | 8,7,5,70 72 | 8,8,5,71 73 | 8,8,5,72 74 | 8,8,5,73 75 | 8,6,5,74 76 | 8,7,5,75 77 | 8,4,5,76 78 | 8,5,5,77 79 | 8,1,5,78 80 | 8,8,5,79 81 | 8,2,5,80 82 | 8,1,6,81 83 | 8,1,6,82 84 | 8,0,6,83 85 | 8,8,6,84 86 | 8,8,6,85 87 | 8,8,6,86 88 | 8,8,6,87 89 | 8,8,6,88 90 | 8,8,6,89 91 | 8,8,6,90 92 | 8,8,6,91 93 | 8,0,6,92 94 | 8,6,6,93 95 | 8,3,6,94 96 | 8,3,6,95 97 | 8,7,6,96 98 | 8,5,6,97 99 | 8,7,6,98 100 | 8,2,6,99 101 | 8,8,6,100 102 | -------------------------------------------------------------------------------- /d1.csv: -------------------------------------------------------------------------------- 1 | id,pot,f,y 2 | 1,A,C,6 3 | 2,A,C,3 4 | 3,A,C,19 5 | 4,A,C,5 6 | 5,A,C,0 7 | 6,A,C,19 8 | 7,A,C,4 9 | 8,A,C,8 10 | 9,A,C,12 11 | 10,A,C,8 12 | 11,B,C,0 13 | 12,B,C,1 14 | 13,B,C,1 15 | 14,B,C,5 16 | 15,B,C,7 17 | 16,B,C,4 18 | 17,B,C,0 19 | 18,B,C,4 20 | 19,B,C,2 21 | 20,B,C,23 22 | 21,C,C,2 23 | 22,C,C,1 24 | 23,C,C,4 25 | 24,C,C,3 26 | 25,C,C,4 27 | 26,C,C,0 28 | 27,C,C,1 29 | 28,C,C,1 30 | 29,C,C,3 31 | 30,C,C,6 32 | 31,D,C,27 33 | 32,D,C,3 34 | 33,D,C,29 35 | 34,D,C,17 36 | 35,D,C,1 37 | 36,D,C,16 38 | 37,D,C,16 39 | 38,D,C,6 40 | 39,D,C,4 41 | 40,D,C,8 42 | 41,E,C,6 43 | 42,E,C,16 44 | 43,E,C,8 45 | 44,E,C,3 46 | 45,E,C,2 47 | 46,E,C,8 48 | 47,E,C,4 49 | 48,E,C,0 50 | 49,E,C,0 51 | 50,E,C,2 52 | 51,F,T,2 53 | 52,F,T,2 54 | 53,F,T,0 55 | 54,F,T,0 56 | 55,F,T,1 57 | 56,F,T,0 58 | 57,F,T,0 59 | 58,F,T,1 60 | 59,F,T,0 61 | 60,F,T,1 62 | 61,G,T,11 63 | 62,G,T,2 64 | 63,G,T,2 65 | 64,G,T,18 66 | 65,G,T,3 67 | 66,G,T,8 68 | 67,G,T,7 69 | 68,G,T,3 70 | 69,G,T,1 71 | 70,G,T,0 72 | 71,H,T,7 73 | 72,H,T,0 74 | 73,H,T,0 75 | 74,H,T,0 76 | 75,H,T,1 77 | 76,H,T,1 78 | 77,H,T,0 79 | 78,H,T,0 80 | 79,H,T,1 81 | 80,H,T,1 82 | 81,I,T,10 83 | 82,I,T,2 84 | 83,I,T,11 85 | 84,I,T,4 86 | 85,I,T,3 87 | 86,I,T,16 88 | 87,I,T,4 89 | 88,I,T,37 90 | 89,I,T,5 91 | 90,I,T,19 92 | 91,J,T,27 93 | 92,J,T,1 94 | 93,J,T,1 95 | 94,J,T,2 96 | 95,J,T,0 97 | 96,J,T,1 98 | 97,J,T,1 99 | 98,J,T,2 100 | 99,J,T,1 101 | 100,J,T,0 102 | -------------------------------------------------------------------------------- /data3a.csv: -------------------------------------------------------------------------------- 1 | y,x,f 2 | 6,8.31,C 3 | 6,9.44,C 4 | 6,9.5,C 5 | 12,9.07,C 6 | 10,10.16,C 7 | 4,8.32,C 8 | 9,10.61,C 9 | 9,10.06,C 10 | 9,9.93,C 11 | 11,10.43,C 12 | 6,10.36,C 13 | 10,10.15,C 14 | 6,10.92,C 15 | 10,8.85,C 16 | 11,9.42,C 17 | 8,11.11,C 18 | 3,8.02,C 19 | 8,11.93,C 20 | 5,8.55,C 21 | 5,7.19,C 22 | 4,9.83,C 23 | 11,10.79,C 24 | 5,8.89,C 25 | 10,10.09,C 26 | 6,11.63,C 27 | 6,10.21,C 28 | 7,9.45,C 29 | 9,10.44,C 30 | 3,9.44,C 31 | 10,10.48,C 32 | 2,9.43,C 33 | 9,10.32,C 34 | 10,10.33,C 35 | 5,8.5,C 36 | 11,9.41,C 37 | 10,8.96,C 38 | 4,9.67,C 39 | 8,10.26,C 40 | 9,10.36,C 41 | 12,11.8,C 42 | 8,10.94,C 43 | 9,10.25,C 44 | 8,8.74,C 45 | 6,10.46,C 46 | 6,9.37,C 47 | 10,9.74,C 48 | 10,8.95,C 49 | 9,8.74,C 50 | 12,11.32,C 51 | 6,9.25,C 52 | 14,10.14,T 53 | 6,9.05,T 54 | 7,9.89,T 55 | 9,8.76,T 56 | 6,12.04,T 57 | 7,9.91,T 58 | 9,9.84,T 59 | 13,11.87,T 60 | 9,10.16,T 61 | 13,9.34,T 62 | 7,10.17,T 63 | 8,10.99,T 64 | 10,9.19,T 65 | 7,10.67,T 66 | 12,10.96,T 67 | 6,10.55,T 68 | 15,9.69,T 69 | 3,10.91,T 70 | 4,9.6,T 71 | 6,12.37,T 72 | 10,10.54,T 73 | 8,11.3,T 74 | 8,12.4,T 75 | 7,10.18,T 76 | 5,9.53,T 77 | 6,10.24,T 78 | 8,11.76,T 79 | 9,9.52,T 80 | 9,10.4,T 81 | 6,9.96,T 82 | 7,10.3,T 83 | 10,11.54,T 84 | 6,9.42,T 85 | 11,11.28,T 86 | 11,9.73,T 87 | 11,10.78,T 88 | 5,10.21,T 89 | 6,10.51,T 90 | 4,10.73,T 91 | 5,8.85,T 92 | 6,11.2,T 93 | 5,9.86,T 94 | 8,11.54,T 95 | 5,10.03,T 96 | 9,11.88,T 97 | 8,9.15,T 98 | 6,8.52,T 99 | 8,10.24,T 100 | 7,10.86,T 101 | 9,9.97,T 102 | -------------------------------------------------------------------------------- /data4a.csv: -------------------------------------------------------------------------------- 1 | N,y,x,f 2 | 8,1,9.76,C 3 | 8,6,10.48,C 4 | 8,5,10.83,C 5 | 8,6,10.94,C 6 | 8,1,9.37,C 7 | 8,1,8.81,C 8 | 8,3,9.49,C 9 | 8,6,11.02,C 10 | 8,0,7.97,C 11 | 8,8,11.55,C 12 | 8,0,9.46,C 13 | 8,2,9.47,C 14 | 8,0,8.71,C 15 | 8,5,10.42,C 16 | 8,3,10.06,C 17 | 8,6,11,C 18 | 8,3,9.95,C 19 | 8,4,9.52,C 20 | 8,5,10.26,C 21 | 8,8,11.33,C 22 | 8,5,9.77,C 23 | 8,8,10.59,C 24 | 8,1,9.35,C 25 | 8,4,10,C 26 | 8,1,9.53,C 27 | 8,8,12.06,C 28 | 8,4,9.68,C 29 | 8,7,11.32,C 30 | 8,5,10.48,C 31 | 8,5,10.37,C 32 | 8,8,11.33,C 33 | 8,1,9.42,C 34 | 8,7,10.68,C 35 | 8,1,7.91,C 36 | 8,3,9.39,C 37 | 8,8,11.65,C 38 | 8,6,10.66,C 39 | 8,7,11.23,C 40 | 8,7,10.57,C 41 | 8,4,10.42,C 42 | 8,7,11.73,C 43 | 8,8,12.02,C 44 | 8,8,11.55,C 45 | 8,0,8.58,C 46 | 8,6,11.08,C 47 | 8,5,10.49,C 48 | 8,8,11.12,C 49 | 8,3,8.99,C 50 | 8,8,10.08,C 51 | 8,8,10.8,C 52 | 8,0,7.83,T 53 | 8,5,8.88,T 54 | 8,5,9.74,T 55 | 8,8,9.98,T 56 | 8,3,8.46,T 57 | 8,2,7.96,T 58 | 8,7,9.78,T 59 | 8,8,11.93,T 60 | 8,3,9.04,T 61 | 8,5,10.14,T 62 | 8,8,11.01,T 63 | 8,3,8.88,T 64 | 8,6,9.68,T 65 | 8,7,9.8,T 66 | 8,8,10.76,T 67 | 8,6,9.81,T 68 | 8,5,8.37,T 69 | 8,5,9.38,T 70 | 8,0,7.68,T 71 | 8,8,10.23,T 72 | 8,8,9.83,T 73 | 8,0,7.66,T 74 | 8,6,9.33,T 75 | 8,1,8.2,T 76 | 8,8,9.54,T 77 | 8,8,10.55,T 78 | 8,6,9.88,T 79 | 8,6,9.34,T 80 | 8,6,10.38,T 81 | 8,6,9.63,T 82 | 8,8,12.44,T 83 | 8,8,10.17,T 84 | 8,7,9.29,T 85 | 8,8,11.17,T 86 | 8,6,9.13,T 87 | 8,2,8.79,T 88 | 8,0,8.19,T 89 | 8,7,10.25,T 90 | 8,8,11.3,T 91 | 8,8,10.84,T 92 | 8,8,10.97,T 93 | 8,3,8.6,T 94 | 8,7,9.91,T 95 | 8,8,11.38,T 96 | 8,8,10.39,T 97 | 8,7,10.45,T 98 | 8,0,8.94,T 99 | 8,5,8.94,T 100 | 8,8,10.14,T 101 | 8,1,8.5,T 102 | -------------------------------------------------------------------------------- /data4b.csv: -------------------------------------------------------------------------------- 1 | y,x,A 2 | 57,0.68,10.3 3 | 64,0.27,15.6 4 | 49,0.46,10 5 | 64,0.45,14.9 6 | 82,0.74,14 7 | 29,0.15,9.6 8 | 37,0.5,11.8 9 | 33,0.57,6.8 10 | 61,0.79,11.8 11 | 46,0.57,9.5 12 | 61,0.8,10.5 13 | 30,0.62,6.8 14 | 45,0.84,6.4 15 | 21,0.36,6 16 | 39,0.49,11.9 17 | 43,0.57,10.1 18 | 54,0.55,12 19 | 24,0.13,9 20 | 33,0.65,7.1 21 | 39,0.62,7.4 22 | 53,0.52,12.4 23 | 44,0.64,8.3 24 | 50,0.42,12.1 25 | 52,0.67,8.4 26 | 59,0.52,11.4 27 | 33,0.19,11.5 28 | 38,0.58,9 29 | 46,0.48,10.5 30 | 30,0.22,9.6 31 | 35,0.24,11.9 32 | 68,0.55,16.2 33 | 70,0.69,10 34 | 47,0.86,8.9 35 | 57,0.74,10.3 36 | 33,0.49,5.8 37 | 57,0.56,11.7 38 | 90,0.78,15.3 39 | 41,0.66,10 40 | 44,0.4,9.6 41 | 63,0.73,9.8 42 | 61,0.75,10.7 43 | 43,0.47,11.7 44 | 64,0.56,12.9 45 | 29,0.27,10.2 46 | 13,0.48,4.5 47 | 43,0.54,12.7 48 | 37,0.51,7.9 49 | 36,0.27,12.1 50 | 47,0.57,8.8 51 | 45,0.69,8.4 52 | 88,0.8,15.8 53 | 28,0.45,6.3 54 | 40,0.38,8.8 55 | 46,0.35,11.4 56 | 54,0.51,13 57 | 38,0.61,8.8 58 | 45,0.52,9.5 59 | 52,0.47,11.9 60 | 53,0.38,15.6 61 | 47,0.69,7.4 62 | 33,0.41,5.8 63 | 70,0.78,10.1 64 | 24,0.28,8.6 65 | 22,0.35,5.5 66 | 14,0.35,3.5 67 | 31,0.31,7.7 68 | 29,0.54,5 69 | 91,0.65,14.3 70 | 39,0.4,9.5 71 | 44,0.37,11.2 72 | 54,0.5,10.3 73 | 76,0.59,14.8 74 | 70,0.52,14.2 75 | 36,0.33,9.8 76 | 38,0.23,10.1 77 | 48,0.41,12.3 78 | 36,0.38,10.6 79 | 43,0.49,11.2 80 | 69,0.72,13.3 81 | 55,0.44,13.6 82 | 51,0.41,13.4 83 | 26,0.15,9.4 84 | 62,0.62,12 85 | 42,0.99,5.7 86 | 46,0.5,9.9 87 | 67,0.75,12.9 88 | 67,0.65,13.4 89 | 68,0.55,12.8 90 | 19,0.46,4.9 91 | 47,0.44,10 92 | 41,0.62,9 93 | 69,0.22,16.8 94 | 33,0.05,11.4 95 | 46,0.43,11.2 96 | 74,0.58,17.4 97 | 57,0.76,9.8 98 | 49,0.17,12.5 99 | 95,0.98,11.4 100 | 27,0.54,5.4 101 | 71,0.47,13.5 102 | -------------------------------------------------------------------------------- /4_model_selection.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "metadata": { 7 | "collapsed": false 8 | }, 9 | "outputs": [ 10 | { 11 | "data": { 12 | "text/plain": [ 13 | "\n", 14 | "Call: glm(formula = y ~ x, family = poisson(link = \"log\"), data = d)\n", 15 | "\n", 16 | "Coefficients:\n", 17 | "(Intercept) x \n", 18 | " 1.29172 0.07566 \n", 19 | "\n", 20 | "Degrees of Freedom: 99 Total (i.e. Null); 98 Residual\n", 21 | "Null Deviance:\t 89.51 \n", 22 | "Residual Deviance: 84.99 \tAIC: 474.8" 23 | ] 24 | }, 25 | "execution_count": 2, 26 | "metadata": {}, 27 | "output_type": "execute_result" 28 | } 29 | ], 30 | "source": [ 31 | "d <- read.csv('data3a.csv')\n", 32 | "fit <- glm(y ~ x, data = d, family = poisson(link = 'log'))\n", 33 | "fit" 34 | ] 35 | }, 36 | { 37 | "cell_type": "markdown", 38 | "metadata": {}, 39 | "source": [ 40 | "この Null Deviance と Residual Deviance が何を示しているのか?\n", 41 | "Null Deviance は、切片のみを用いた一定モデルの逸脱度(=最大逸脱度)と、全データ点を追従したモデル(=フルモデル)の逸脱度(=最小逸脱度)の差を表している。\n", 42 | "Residual Deviance は、与えられたモデルの逸脱度と、最小逸脱度の差を表している。" 43 | ] 44 | }, 45 | { 46 | "cell_type": "markdown", 47 | "metadata": {}, 48 | "source": [ 49 | "Given モデルの逸脱度" 50 | ] 51 | }, 52 | { 53 | "cell_type": "code", 54 | "execution_count": 6, 55 | "metadata": { 56 | "collapsed": false 57 | }, 58 | "outputs": [ 59 | { 60 | "data": { 61 | "text/plain": [ 62 | "'log Lik.' 470.7725 (df=2)" 63 | ] 64 | }, 65 | "execution_count": 6, 66 | "metadata": {}, 67 | "output_type": "execute_result" 68 | } 69 | ], 70 | "source": [ 71 | "-2 * logLik(fit)" 72 | ] 73 | }, 74 | { 75 | "cell_type": "markdown", 76 | "metadata": {}, 77 | "source": [ 78 | "フルモデルの逸脱度" 79 | ] 80 | }, 81 | { 82 | "cell_type": "code", 83 | "execution_count": 4, 84 | "metadata": { 85 | "collapsed": false 86 | }, 87 | "outputs": [ 88 | { 89 | "data": { 90 | "text/html": [ 91 | "385.779505048992" 92 | ], 93 | "text/latex": [ 94 | "385.779505048992" 95 | ], 96 | "text/markdown": [ 97 | "385.779505048992" 98 | ], 99 | "text/plain": [ 100 | "[1] 385.7795" 101 | ] 102 | }, 103 | "execution_count": 4, 104 | "metadata": {}, 105 | "output_type": "execute_result" 106 | } 107 | ], 108 | "source": [ 109 | "-2 * sum(log(dpois(d$y, lambda = d$y)))" 110 | ] 111 | }, 112 | { 113 | "cell_type": "code", 114 | "execution_count": 7, 115 | "metadata": { 116 | "collapsed": false 117 | }, 118 | "outputs": [ 119 | { 120 | "data": { 121 | "text/html": [ 122 | "84.992994951008" 123 | ], 124 | "text/latex": [ 125 | "84.992994951008" 126 | ], 127 | "text/markdown": [ 128 | "84.992994951008" 129 | ], 130 | "text/plain": [ 131 | "[1] 84.99299" 132 | ] 133 | }, 134 | "execution_count": 7, 135 | "metadata": {}, 136 | "output_type": "execute_result" 137 | } 138 | ], 139 | "source": [ 140 | "470.7725 - 385.779505048992" 141 | ] 142 | }, 143 | { 144 | "cell_type": "markdown", 145 | "metadata": {}, 146 | "source": [ 147 | "ほぼ Residual Deviance に一致していることがわかる。" 148 | ] 149 | }, 150 | { 151 | "cell_type": "markdown", 152 | "metadata": {}, 153 | "source": [ 154 | "一方、一定モデルの逸脱度は、" 155 | ] 156 | }, 157 | { 158 | "cell_type": "code", 159 | "execution_count": 8, 160 | "metadata": { 161 | "collapsed": false 162 | }, 163 | "outputs": [ 164 | { 165 | "data": { 166 | "text/plain": [ 167 | "'log Lik.' 475.2864 (df=1)" 168 | ] 169 | }, 170 | "execution_count": 8, 171 | "metadata": {}, 172 | "output_type": "execute_result" 173 | } 174 | ], 175 | "source": [ 176 | "fit <- glm(y ~ 1, data = d, family = poisson(link = 'log'))\n", 177 | "-2 * logLik(fit)" 178 | ] 179 | }, 180 | { 181 | "cell_type": "code", 182 | "execution_count": 9, 183 | "metadata": { 184 | "collapsed": false 185 | }, 186 | "outputs": [ 187 | { 188 | "data": { 189 | "text/html": [ 190 | "89.506894951008" 191 | ], 192 | "text/latex": [ 193 | "89.506894951008" 194 | ], 195 | "text/markdown": [ 196 | "89.506894951008" 197 | ], 198 | "text/plain": [ 199 | "[1] 89.50689" 200 | ] 201 | }, 202 | "execution_count": 9, 203 | "metadata": {}, 204 | "output_type": "execute_result" 205 | } 206 | ], 207 | "source": [ 208 | "475.2864 - 385.779505048992" 209 | ] 210 | }, 211 | { 212 | "cell_type": "markdown", 213 | "metadata": {}, 214 | "source": [ 215 | "ほぼ Null Deviance に一致していることがわかる。" 216 | ] 217 | } 218 | ], 219 | "metadata": { 220 | "kernelspec": { 221 | "display_name": "R", 222 | "language": "R", 223 | "name": "ir" 224 | }, 225 | "language_info": { 226 | "codemirror_mode": "r", 227 | "file_extension": ".r", 228 | "mimetype": "text/x-r-source", 229 | "name": "R", 230 | "pygments_lexer": "r", 231 | "version": "3.2.2" 232 | } 233 | }, 234 | "nbformat": 4, 235 | "nbformat_minor": 0 236 | } 237 | -------------------------------------------------------------------------------- /winbugs_sandbox.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 4, 6 | "metadata": { 7 | "collapsed": false 8 | }, 9 | "outputs": [ 10 | { 11 | "ename": "ERROR", 12 | "evalue": "Error in library(BRugs): there is no package called ‘BRugs’\n", 13 | "output_type": "error", 14 | "traceback": [ 15 | "Error in library(BRugs): there is no package called ‘BRugs’\n" 16 | ] 17 | }, 18 | { 19 | "name": "stdout", 20 | "output_type": "stream", 21 | "text": [ 22 | "\n", 23 | "bugs> # An example model file is given in:\n", 24 | "bugs> model.file <- system.file(package=\"R2WinBUGS\", \"model\", \"schools.txt\")\n", 25 | "\n", 26 | "bugs> # Let's take a look:\n", 27 | "bugs> file.show(model.file)\n" 28 | ] 29 | }, 30 | { 31 | "name": "stderr", 32 | "output_type": "stream", 33 | "text": [ 34 | "Warning message:\n", 35 | "In readLines(path): '/home/tushuhei/.pyenv/versions/anaconda3-2.3.0/lib/R/library/R2WinBUGS/model/schools.txt' で不完全な最終行が見つかりました " 36 | ] 37 | }, 38 | { 39 | "name": "stdout", 40 | "output_type": "stream", 41 | "text": [ 42 | "\n", 43 | "bugs> # Some example data (see ?schools for details):\n", 44 | "bugs> data(schools)\n", 45 | "\n", 46 | "bugs> schools\n", 47 | " school estimate sd\n", 48 | "1 A 28.39 14.9\n", 49 | "2 B 7.94 10.2\n", 50 | "3 C -2.75 16.3\n", 51 | "4 D 6.82 11.0\n", 52 | "5 E -0.64 9.4\n", 53 | "6 F 0.63 11.4\n", 54 | "7 G 18.01 10.4\n", 55 | "8 H 12.16 17.6\n", 56 | "\n", 57 | "bugs> J <- nrow(schools)\n", 58 | "\n", 59 | "bugs> y <- schools$estimate\n", 60 | "\n", 61 | "bugs> sigma.y <- schools$sd\n", 62 | "\n", 63 | "bugs> data <- list(J=J, y=y, sigma.y=sigma.y)\n", 64 | "\n", 65 | "bugs> inits <- function(){\n", 66 | "bugs+ list(theta=rnorm(J, 0, 100), mu.theta=rnorm(1, 0, 100),\n", 67 | "bugs+ sigma.theta=runif(1, 0, 100))\n", 68 | "bugs+ }\n", 69 | "\n", 70 | "bugs> ## or alternatively something like:\n", 71 | "bugs> # inits <- list(\n", 72 | "bugs> # list(theta=rnorm(J, 0, 90), mu.theta=rnorm(1, 0, 90),\n", 73 | "bugs> # sigma.theta=runif(1, 0, 90)),\n", 74 | "bugs> # list(theta=rnorm(J, 0, 100), mu.theta=rnorm(1, 0, 100),\n", 75 | "bugs> # sigma.theta=runif(1, 0, 100))\n", 76 | "bugs> # list(theta=rnorm(J, 0, 110), mu.theta=rnorm(1, 0, 110),\n", 77 | "bugs> # sigma.theta=runif(1, 0, 110)))\n", 78 | "bugs> \n", 79 | "bugs> parameters <- c(\"theta\", \"mu.theta\", \"sigma.theta\")\n", 80 | "\n", 81 | "bugs> ## Not run: \n", 82 | "bugs> ##D ## You may need to edit \"bugs.directory\",\n", 83 | "bugs> ##D ## also you need write access in the working directory:\n", 84 | "bugs> ##D schools.sim <- bugs(data, inits, parameters, model.file,\n", 85 | "bugs> ##D n.chains=3, n.iter=5000,\n", 86 | "bugs> ##D bugs.directory=\"c:/Program Files/WinBUGS14/\")\n", 87 | "bugs> ##D print(schools.sim)\n", 88 | "bugs> ##D plot(schools.sim)\n", 89 | "bugs> ## End(Not run)\n", 90 | "bugs> \n", 91 | "bugs> \n", 92 | "bugs> \n" 93 | ] 94 | }, 95 | { 96 | "name": "stderr", 97 | "output_type": "stream", 98 | "text": [ 99 | "Warning message:\n", 100 | ": 命令 '/usr/bin/wine -w /home/tushuhei/.pyenv/versions/anaconda3-2.3.0/lib/R/library/R2WinBUGS/model/schools.txt' の実行は状態 2 を持ちました Warning message:\n", 101 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/history.odc' の実行は状態 2 を持ちました Warning message:\n", 102 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/data.txt' の実行は状態 2 を持ちました Warning message:\n", 103 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/coda' の実行は状態 2 を持ちました Warning message:\n", 104 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/log.odc' の実行は状態 2 を持ちました Warning message:\n", 105 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/log.txt' の実行は状態 2 を持ちました Warning message:\n", 106 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/inits1.txt' の実行は状態 2 を持ちました Warning message:\n", 107 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/inits2.txt' の実行は状態 2 を持ちました Warning message:\n", 108 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/inits3.txt' の実行は状態 2 を持ちました Warning message:\n", 109 | ": 命令 '/usr/bin/wine -w /tmp/RtmpsUYDZj/script.txt' の実行は状態 2 を持ちました " 110 | ] 111 | }, 112 | { 113 | "ename": "ERROR", 114 | "evalue": "Error in bugs.run(n.burnin, bugs.directory, WINE = WINE, useWINE = useWINE, : Look at the log file and\ntry again with 'debug=TRUE' to figure out what went wrong within Bugs.\n", 115 | "output_type": "error", 116 | "traceback": [ 117 | "Error in bugs.run(n.burnin, bugs.directory, WINE = WINE, useWINE = useWINE, : Look at the log file and\ntry again with 'debug=TRUE' to figure out what went wrong within Bugs.\n" 118 | ] 119 | }, 120 | { 121 | "ename": "ERROR", 122 | "evalue": "Error in eval(expr, envir, enclos): オブジェクト 'schools.sim' がありません \n", 123 | "output_type": "error", 124 | "traceback": [ 125 | "Error in eval(expr, envir, enclos): オブジェクト 'schools.sim' がありません \n" 126 | ] 127 | } 128 | ], 129 | "source": [] 130 | } 131 | ], 132 | "metadata": { 133 | "kernelspec": { 134 | "display_name": "R", 135 | "language": "R", 136 | "name": "ir" 137 | }, 138 | "language_info": { 139 | "codemirror_mode": "r", 140 | "file_extension": ".r", 141 | "mimetype": "text/x-r-source", 142 | "name": "R", 143 | "pygments_lexer": "r", 144 | "version": "3.2.2" 145 | } 146 | }, 147 | "nbformat": 4, 148 | "nbformat_minor": 0 149 | } 150 | -------------------------------------------------------------------------------- /R2WBwrapper.R: -------------------------------------------------------------------------------- 1 | # R2WBwrapper.R: a R2WinBUGS wrapper 2 | # KUBO Takuya (kubo@ees.hokudai.ac.jp) 3 | # DATE: 2014-04-25 4 | # This software is distributed under the terms of 5 | # the GNU General Public License Version 2, June 1991. 6 | 7 | cat("# reading \"R2WBwrapper.R\" (written by kubo@ees.hokudai.ac.jp)...\n") 8 | library(R2WinBUGS) 9 | library(coda) 10 | 11 | setG <- function(name, x) assign(name, x, envir = .GlobalEnv) 12 | 13 | # Clear ================================================================== 14 | clear.v.datanames <- function() 15 | { 16 | setG("v.datanames", NULL) 17 | } 18 | clear.param <- function() 19 | { 20 | setG("parameters.to.save", NULL) 21 | setG("list.inits", NULL) 22 | } 23 | clear.data.param <- function() 24 | { 25 | clear.v.datanames() 26 | clear.param() 27 | } 28 | 29 | # !!! Initialization !!! 30 | clear.data.param() 31 | 32 | # Data =================================================================== 33 | set.data.sub <- function(name, val) 34 | { 35 | if (is.null(val)) stop("# ERROR: no data for", name, "\n") 36 | ditem <- val 37 | setG(name, ditem) 38 | } 39 | 40 | set.data <- function(name = NA, val = NA, list.data = NA) 41 | { 42 | if (!is.na(list.data)) { 43 | v.datanames <- c(v.datanames, names(list.data)) 44 | setG("v.datanames", v.datanames) 45 | for (name in v.datanames) set.data.sub(name, list.data[[name]]) 46 | } else if (!is.na(name)) { 47 | v.datanames <- c(v.datanames, name) 48 | setG("v.datanames", v.datanames) 49 | if (length(dim(val)) < 2) val <- as.vector(val) 50 | set.data.sub(name, val) 51 | } else { 52 | stop("# Error: set either (name, val) or list.data") 53 | } 54 | } 55 | 56 | # Parameters ============================================================= 57 | 58 | # Examples: 59 | # set.param("a", 0, save = FALSE) 60 | # set.param("b", function() rnorm(100, mean = 0, sd = 0.1)) 61 | # set.param("c", NA) 62 | set.param <- function(name, val = NA, save = TRUE) 63 | { 64 | parameters.to.save <- get("parameters.to.save", envir = .GlobalEnv) 65 | list.inits <- get("list.inits", envir = .GlobalEnv) 66 | if (save) { 67 | parameters.to.save <- c(parameters.to.save, name) 68 | } 69 | setG("parameters.to.save", parameters.to.save) 70 | if (any(is.na(val))) return() # do not initialize 71 | # parameter initialization 72 | if (class(val) == "numeric" & length(dim(val)) < 2) val <- as.vector(val) 73 | list.new <- list(val) 74 | names(list.new) <- name 75 | list.inits <- c(list.inits, list.new) 76 | setG("list.inits", list.inits) 77 | } 78 | 79 | # Calling WinBUGS ======================================================== 80 | bugscalling <- function( 81 | model.file = "model.bug.txt", 82 | debug = FALSE, 83 | n.chains = 3, 84 | inits, 85 | n.iter, n.burnin, n.thin, 86 | ... 87 | ) { 88 | WINEPATH <- "/usr/bin/winepath" 89 | sys.time <- system.time( 90 | post.bugs <- bugs( 91 | data = v.datanames, 92 | inits = inits, 93 | parameters.to.save = parameters.to.save, 94 | model.file = model.file, 95 | n.chains = n.chains, n.iter = n.iter, 96 | n.burnin = n.burnin, n.thin = n.thin, 97 | bugs.directory = paste( 98 | Sys.getenv("HOME"), 99 | ".wine/drive_c/Program\ Files/WinBUGS14/", 100 | sep = "/" 101 | ), 102 | #working.directory = NULL, 103 | clearWD = TRUE, 104 | useWINE = TRUE, 105 | newWINE = TRUE, 106 | WINE = "/usr/bin/wine", 107 | WINEPATH = WINEPATH, 108 | debug = debug, 109 | ... 110 | ) 111 | ) 112 | print(sys.time) 113 | return(post.bugs) 114 | } 115 | 116 | call.bugs <- function( 117 | file = "model.bug.txt", 118 | debug = FALSE, 119 | n.cores = 1, # number of cores, 1: non-parallel 120 | n.chains = 3, 121 | n.iter, n.burnin, n.thin, 122 | bugs.seed = NULL, 123 | ... 124 | ) { 125 | if (any(is.null(bugs.seed))) { 126 | bugs.seed <- sample(-10^6:10^6, 1) 127 | } 128 | model.file <- paste(getwd(), file, sep = "/") 129 | inits <- function() list.inits 130 | if (Sys.info()["sysname"] == "Linux") { 131 | if (n.cores > 1) { 132 | library(foreach) 133 | library(doMC) 134 | registerDoMC(cores = n.cores) 135 | list.bugs <- foreach(job = 1:n.chains) %dopar% { 136 | wd <- sprintf("tmp%i", job) # i.e. "tmp1", "tmp2", "tmp3" 137 | if (!any(dir() %in% wd)) dir.create(wd) 138 | bugscalling( 139 | model.file = model.file, 140 | n.chains = 1, 141 | debug = FALSE, 142 | inits = inits, 143 | bugs.seed = bugs.seed, 144 | working.directory = wd, 145 | n.iter = n.iter, n.burnin = n.burnin, n.thin = n.thin 146 | ) 147 | } 148 | post.bugs <- merge.bugs(list.bugs) 149 | } else { 150 | post.bugs <- bugscalling( 151 | model.file = model.file, n.chains = n.chains, debug = debug, 152 | inits = inits, 153 | n.iter = n.iter, n.burnin = n.burnin, n.thin = n.thin, 154 | ... 155 | ) 156 | } 157 | } else { 158 | post.bugs <- bugs( 159 | v.datanames, inits, parameters.to.save, model.file, 160 | n.chains = n.chains, n.iter = n.iter, 161 | n.burnin = n.burnin, n.thin = n.thin, 162 | bugs.directory = "c:/Program Files/WinBUGS14/", 163 | working.directory = NULL, 164 | clearWD = TRUE, 165 | debug = debug, 166 | bugs.seed = bugs.seed, 167 | ... 168 | ) 169 | } 170 | clear.data.param() # !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! 171 | post.bugs 172 | } 173 | 174 | # Post processings ======================================================= 175 | to.list <- function(x.bugs) mcmc.list( 176 | lapply( 177 | 1:x.bugs$n.chain, 178 | function(chain) as.mcmc(x.bugs$sims.array[, chain,]) 179 | ) 180 | ) 181 | 182 | to.mcmc <- function(x.bugs) as.mcmc(x.bugs$sims.matrix) 183 | 184 | pl <- function(key, x.bugs = post.bugs, ...) 185 | { 186 | cn <- colnames(to.mcmc(x.bugs)) 187 | if (!exists("post.list")) post.list <- to.list(x.bugs) 188 | if (length(key) == 1) { 189 | plot(post.list[,grep(key, cn),], ask = T, smooth = F, ...) 190 | } else { 191 | plot(post.list[,cn %in% key,], ask = T, smooth = F, ...) 192 | } 193 | } 194 | 195 | pg <- function(x.bugs = post.bugs, digits.summary = 3, ...) page( 196 | x.bugs, "print", digits.summary = digits.summary, ... 197 | ) 198 | 199 | choose.post <- function(key, alpha = 0.05, x.bugs = post.bugs) 200 | { 201 | x.mcmc <- to.mcmc(x.bugs) 202 | c.mcmc <- x.mcmc[, grep(key, colnames(x.mcmc))] 203 | for (i in colnames(c.mcmc)) { 204 | v.prob <- quantile( 205 | c.mcmc[, i], 206 | probs = c(alpha * 0.05, 0.50, 1 - alpha * 0.5) 207 | ) 208 | if (v.prob[1] * v.prob[3] > 0) { 209 | cat(sprintf( 210 | "%s\t%8.2f%8.2f%8.2f\n", 211 | i, v.prob[1], v.prob[2], v.prob[3] 212 | )) 213 | } 214 | } 215 | } 216 | 217 | # car.normal() =========================================================== 218 | get.cn.parameters <- function(vx, vy, vid) 219 | { # min(vx) == 1 and min(vy) == 1 220 | m <- matrix(0, max(vx) + 2, max(vy) + 2) 221 | n <- length(vid) 222 | for (i in 1:n) m[vx[i] + 1, vy[i] + 1] <- vid[i] 223 | v.range <- c(-1, 0, 1) + 1 # 8 neighbors + self (0, 0) 224 | neighbor.id <- sapply( 225 | 1:n, function(i) c(m[vx[i] + v.range, vy[i] + v.range]) 226 | )[-5,] # to remove self 227 | s.zero <- c(neighbor.id) == 0 228 | list( 229 | Adj = c(neighbor.id)[!s.zero], 230 | Num = apply(neighbor.id, 2, function(X) sum(X > 0)) 231 | ) 232 | } 233 | 234 | # merge.bugs() for parallel run using libray(foreach) 235 | merge.bugs <- function(list.bugs) 236 | { 237 | b1 <- list.bugs[[1]] 238 | m1 <- b1$sims.matrix 239 | mall <- matrix(numeric(0), 0, ncol(m1)) 240 | n.chains <- length(list.bugs) 241 | for (i in 1:n.chains) { 242 | mall <- rbind(mall, list.bugs[[i]]$sims.matrix) 243 | } 244 | sims.array <- array(mall, dim = c(nrow(m1), n.chains, ncol(m1))) 245 | dimnames(sims.array) <- list(NULL, NULL, colnames(m1)) 246 | as.bugs.array( 247 | sims.array = sims.array, 248 | model.file = b1$model.file, 249 | program = b1$program, 250 | DIC = TRUE, 251 | DICOutput = NULL, 252 | n.iter = b1$n.iter, 253 | n.burnin = b1$n.burnin, 254 | n.thin = b1$n.thin 255 | ) 256 | } 257 | 258 | -------------------------------------------------------------------------------- /11_spacial_bayes.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 6, 6 | "metadata": { 7 | "collapsed": false 8 | }, 9 | "outputs": [ 10 | { 11 | "data": { 12 | "image/png": "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", 13 | "image/svg+xml": [ 14 | "\n", 15 | "\n", 16 | "\n", 17 | "\n", 18 | "\n", 19 | "\n", 20 | "\n", 21 | "\n", 22 | "\n", 23 | "\n", 24 | "\n", 25 | "\n", 26 | "\n", 27 | "\n", 28 | "\n", 29 | "\n", 30 | "\n", 31 | "\n", 32 | "\n", 33 | "\n", 34 | "\n", 35 | "\n", 36 | "\n", 37 | "\n", 38 | "\n", 39 | "\n", 40 | "\n", 41 | "\n", 42 | "\n", 43 | "\n", 44 | "\n", 45 | "\n", 46 | "\n", 47 | "\n", 48 | "\n", 49 | "\n", 50 | "\n", 51 | "\n", 52 | "\n", 53 | "\n", 54 | "\n", 55 | "\n", 56 | "\n", 57 | "\n", 58 | "\n", 59 | "\n", 60 | "\n", 61 | "\n", 62 | "\n", 63 | "\n", 64 | "\n", 65 | "\n", 66 | "\n", 67 | "\n", 68 | "\n", 69 | "\n", 70 | "\n", 71 | "\n", 72 | "\n", 73 | "\n", 74 | "\n", 75 | "\n", 76 | "\n", 77 | "\n", 78 | "\n", 79 | "\n", 80 | "\n", 81 | "\n", 82 | "\n", 83 | "\n", 84 | "\n", 85 | "\n", 86 | "\n", 87 | "\n", 88 | "\n", 89 | "\n", 90 | "\n", 91 | "\n", 92 | "\n", 93 | "\n", 94 | "\n", 95 | "\n", 96 | "\n", 97 | "\n", 98 | "\n", 99 | "\n", 100 | "\n", 101 | "\n", 102 | "\n", 103 | "\n", 104 | "\n", 105 | "\n", 106 | "\n", 107 | "\n", 108 | "\n", 109 | "\n", 110 | "\n", 111 | "\n", 112 | "\n", 113 | "\n", 114 | "\n", 115 | "\n", 116 | "\n", 117 | "\n", 118 | "\n", 119 | "\n", 120 | "\n", 121 | "\n", 122 | "\n", 123 | "\n", 124 | "\n", 125 | "\n", 126 | "\n", 127 | "\n", 128 | "\n", 129 | "\n", 130 | "\n", 131 | " \n", 132 | "\n", 133 | "\n", 134 | " \n", 135 | " \n", 136 | "\n", 137 | "\n", 138 | " \n", 139 | " \n", 140 | "\n", 141 | "\n", 142 | " \n", 143 | " \n", 144 | "\n", 145 | "\n", 146 | " \n", 147 | " \n", 148 | "\n", 149 | "\n", 150 | " \n", 151 | " \n", 152 | "\n", 153 | "\n", 154 | "\n", 155 | "\n", 156 | "\n", 157 | "\n", 158 | "\n", 159 | " \n", 160 | "\n", 161 | "\n", 162 | " \n", 163 | "\n", 164 | "\n", 165 | " \n", 166 | " \n", 167 | "\n", 168 | "\n", 169 | " \n", 170 | " \n", 171 | "\n", 172 | "\n", 173 | "\n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | "\n", 180 | "\n", 181 | " \n", 182 | "\n", 183 | "\n", 184 | "\n" 185 | ], 186 | "text/plain": [ 187 | "plot without title" 188 | ] 189 | }, 190 | "metadata": { 191 | "image/svg+xml": { 192 | "isolated": true 193 | } 194 | }, 195 | "output_type": "display_data" 196 | } 197 | ], 198 | "source": [ 199 | "load(\"Y.RData\")\n", 200 | "plot(Y)" 201 | ] 202 | }, 203 | { 204 | "cell_type": "code", 205 | "execution_count": 9, 206 | "metadata": { 207 | "collapsed": false 208 | }, 209 | "outputs": [ 210 | { 211 | "data": { 212 | "text/plain": [ 213 | " Min. 1st Qu. Median Mean 3rd Qu. Max. \n", 214 | " 0.00 7.00 11.00 10.88 15.00 19.00 " 215 | ] 216 | }, 217 | "execution_count": 9, 218 | "metadata": {}, 219 | "output_type": "execute_result" 220 | }, 221 | { 222 | "data": { 223 | "text/html": [ 224 | "27.3730612244898" 225 | ], 226 | "text/latex": [ 227 | "27.3730612244898" 228 | ], 229 | "text/markdown": [ 230 | "27.3730612244898" 231 | ], 232 | "text/plain": [ 233 | "[1] 27.37306" 234 | ] 235 | }, 236 | "execution_count": 9, 237 | "metadata": {}, 238 | "output_type": "execute_result" 239 | } 240 | ], 241 | "source": [ 242 | "summary(Y)\n", 243 | "var(Y)" 244 | ] 245 | }, 246 | { 247 | "cell_type": "code", 248 | "execution_count": null, 249 | "metadata": { 250 | "collapsed": true 251 | }, 252 | "outputs": [], 253 | "source": [ 254 | "平均 10.88 に対して、分散 27.37 と、過分散になっている。" 255 | ] 256 | }, 257 | { 258 | "cell_type": "code", 259 | "execution_count": 14, 260 | "metadata": { 261 | "collapsed": false 262 | }, 263 | "outputs": [ 264 | { 265 | "name": "stdout", 266 | "output_type": "stream", 267 | "text": [ 268 | "Compiling model graph\n", 269 | " Resolving undeclared variables\n", 270 | " Allocating nodes\n", 271 | "Deleting model\n", 272 | "\n" 273 | ] 274 | }, 275 | { 276 | "ename": "ERROR", 277 | "evalue": "Error in jags.model(file = \"car.bug.txt\", data = list.data, inits = inits, : RUNTIME ERROR:\nCompilation error on line 7.\nUnknown distribution: car.normal\n\n\n", 278 | "output_type": "error", 279 | "traceback": [ 280 | "Error in jags.model(file = \"car.bug.txt\", data = list.data, inits = inits, : RUNTIME ERROR:\nCompilation error on line 7.\nUnknown distribution: car.normal\n\n\n" 281 | ] 282 | }, 283 | { 284 | "ename": "ERROR", 285 | "evalue": "Error in object[[name, exact = TRUE]]: 添え字が許される範囲外です \n", 286 | "output_type": "error", 287 | "traceback": [ 288 | "Error in object[[name, exact = TRUE]]: 添え字が許される範囲外です \n" 289 | ] 290 | }, 291 | { 292 | "ename": "ERROR", 293 | "evalue": "Error in model$iter: $ operator is invalid for atomic vectors\n", 294 | "output_type": "error", 295 | "traceback": [ 296 | "Error in model$iter: $ operator is invalid for atomic vectors\n" 297 | ] 298 | }, 299 | { 300 | "ename": "ERROR", 301 | "evalue": "Error in summary(x): オブジェクト 'x' がありません \n", 302 | "output_type": "error", 303 | "traceback": [ 304 | "Error in summary(x): オブジェクト 'x' がありません \n" 305 | ] 306 | }, 307 | { 308 | "ename": "ERROR", 309 | "evalue": "Error in plot(x): オブジェクト 'x' がありません \n", 310 | "output_type": "error", 311 | "traceback": [ 312 | "Error in plot(x): オブジェクト 'x' がありません \n" 313 | ] 314 | } 315 | ], 316 | "source": [ 317 | "library(rjags)\n", 318 | "Adj <- c(sapply(2:(length(Y) - 1), function(a) c(a - 1, a + 1)))\n", 319 | "\n", 320 | "list.data <- list(\n", 321 | " N.site = length(Y),\n", 322 | " Y = Y,\n", 323 | " Adj = c(2, Adj, length(Y) - 1),\n", 324 | " Weights = rep(1, 2 * length(Y) - 2),\n", 325 | " Num = c(1, rep(2, length(Y) - 2), 1)\n", 326 | "\n", 327 | ")\n", 328 | "\n", 329 | "inits <- list(\n", 330 | " beta = 0,\n", 331 | " r = rnorm(length(Y), 0, 0.1),\n", 332 | " s = 1\n", 333 | ")\n", 334 | "\n", 335 | "m <- jags.model(\n", 336 | " file = \"car.bug.txt\",\n", 337 | " data = list.data,\n", 338 | " inits = inits,\n", 339 | " n.chains = 3\n", 340 | ")\n", 341 | "\n", 342 | "update(m, 100)\n", 343 | "\n", 344 | "x <- coda.samples(\n", 345 | " m,\n", 346 | " c(\"beta\", \"s\", \"r[1]\", \"r[2]\", \"r[3]\"),\n", 347 | " thin = 10,\n", 348 | " n.iter = 10000\n", 349 | ")\n", 350 | "\n", 351 | "print(summary(x))\n", 352 | "plot(x)" 353 | ] 354 | }, 355 | { 356 | "cell_type": "markdown", 357 | "metadata": {}, 358 | "source": [ 359 | "JAGS には car.normal が実装されていない。。" 360 | ] 361 | } 362 | ], 363 | "metadata": { 364 | "kernelspec": { 365 | "display_name": "R", 366 | "language": "R", 367 | "name": "ir" 368 | }, 369 | "language_info": { 370 | "codemirror_mode": "r", 371 | "file_extension": ".r", 372 | "mimetype": "text/x-r-source", 373 | "name": "R", 374 | "pygments_lexer": "r", 375 | "version": "3.2.2" 376 | } 377 | }, 378 | "nbformat": 4, 379 | "nbformat_minor": 0 380 | } 381 | -------------------------------------------------------------------------------- /8_mcmc.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 13, 6 | "metadata": { 7 | "collapsed": false 8 | }, 9 | "outputs": [ 10 | { 11 | "data": { 12 | "text/html": [ 13 | "0.45625" 14 | ], 15 | "text/latex": [ 16 | "0.45625" 17 | ], 18 | "text/markdown": [ 19 | "0.45625" 20 | ], 21 | "text/plain": [ 22 | "[1] 0.45625" 23 | ] 24 | }, 25 | "execution_count": 13, 26 | "metadata": {}, 27 | "output_type": "execute_result" 28 | }, 29 | { 30 | "data": { 31 | "image/png": "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", 32 | "image/svg+xml": [ 33 | "\n", 34 | "\n", 35 | "\n", 36 | "\n", 37 | "\n", 38 | "\n", 39 | "\n", 40 | "\n", 41 | "\n", 42 | "\n", 43 | "\n", 44 | "\n", 45 | "\n", 46 | "\n", 47 | "\n", 48 | "\n", 49 | "\n", 50 | "\n", 51 | "\n", 52 | "\n", 53 | "\n", 54 | "\n", 55 | "\n", 56 | "\n", 57 | "\n", 58 | "\n", 59 | "\n", 60 | "\n", 61 | "\n", 62 | "\n", 63 | "\n", 64 | "\n", 65 | "\n", 66 | "\n", 67 | "\n", 68 | "\n", 69 | "\n", 70 | "\n", 71 | "\n", 72 | "\n", 73 | "\n", 74 | "\n", 75 | "\n", 76 | "\n", 77 | "\n", 78 | "\n", 79 | "\n", 80 | "\n", 81 | "\n", 82 | "\n", 83 | "\n", 84 | "\n", 85 | "\n", 86 | "\n", 87 | "\n", 88 | "\n", 89 | "\n", 90 | "\n", 91 | "\n", 92 | "\n", 93 | "\n", 94 | "\n", 95 | "\n", 96 | "\n", 97 | "\n", 98 | "\n", 99 | "\n", 100 | "\n", 101 | "\n", 102 | "\n", 103 | "\n", 104 | "\n", 105 | "\n", 106 | "\n", 107 | "\n", 108 | "\n", 109 | "\n", 110 | "\n", 111 | "\n", 112 | "\n", 113 | "\n", 114 | "\n", 115 | "\n", 116 | "\n", 117 | "\n", 118 | "\n", 119 | "\n", 120 | "\n", 121 | "\n", 122 | "\n", 123 | "\n", 124 | "\n", 125 | "\n", 126 | "\n", 127 | "\n", 128 | "\n", 129 | "\n", 130 | "\n", 131 | "\n", 132 | "\n", 133 | "\n", 134 | "\n", 135 | "\n", 136 | "\n", 137 | "\n", 138 | "\n", 139 | "\n", 140 | "\n", 141 | "\n", 142 | "\n", 143 | "\n", 144 | "\n", 145 | "\n", 146 | "\n", 147 | "\n", 148 | "\n", 149 | "\n", 150 | "\n", 151 | "\n", 152 | "\n", 153 | "\n", 154 | "\n", 155 | "\n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | "\n", 174 | "\n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | "\n", 180 | "\n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | "\n", 191 | "\n", 192 | "\n", 193 | "\n", 194 | "\n", 195 | "\n", 196 | "\n", 197 | "\n", 198 | " \n", 199 | "\n", 200 | "\n", 201 | " \n", 202 | "\n", 203 | "\n", 204 | " \n", 205 | "\n", 206 | "\n", 207 | " \n", 208 | "\n", 209 | "\n", 210 | " \n", 211 | "\n", 212 | "\n", 213 | "\n", 214 | "\n", 215 | "\n", 216 | "\n", 217 | "\n", 218 | "\n", 219 | "\n", 220 | "\n", 221 | " \n", 222 | "\n", 223 | "\n", 224 | " \n", 225 | "\n", 226 | "\n", 227 | " \n", 228 | "\n", 229 | "\n", 230 | " \n", 231 | "\n", 232 | "\n", 233 | " \n", 234 | "\n", 235 | "\n", 236 | " \n", 237 | "\n", 238 | "\n", 239 | " \n", 240 | "\n", 241 | "\n", 242 | "\n", 243 | "\n", 244 | "\n", 245 | "\n", 246 | "\n", 247 | "\n", 248 | "\n", 249 | "\n", 250 | "\n", 251 | "\n", 252 | "\n" 253 | ], 254 | "text/plain": [ 255 | "Plot with title “Histogram of data”" 256 | ] 257 | }, 258 | "metadata": { 259 | "image/svg+xml": { 260 | "isolated": true 261 | } 262 | }, 263 | "output_type": "display_data" 264 | } 265 | ], 266 | "source": [ 267 | "data <- c(4,3,4,5,5,2,3,1,4,0,1,5,5,6,5,4,4,5,3,4)\n", 268 | "sum(data) / (8 * 20)\n", 269 | "hist(data, breaks=seq(-0.5, 8.5, 1))\n", 270 | "xx <- seq(0, 8, 1)\n", 271 | "lines(xx, dbinom(xx, 8, 0.45)*length(data))" 272 | ] 273 | } 274 | ], 275 | "metadata": { 276 | "kernelspec": { 277 | "display_name": "R", 278 | "language": "R", 279 | "name": "ir" 280 | }, 281 | "language_info": { 282 | "codemirror_mode": "r", 283 | "file_extension": ".r", 284 | "mimetype": "text/x-r-source", 285 | "name": "R", 286 | "pygments_lexer": "r", 287 | "version": "3.2.2" 288 | } 289 | }, 290 | "nbformat": 4, 291 | "nbformat_minor": 0 292 | } 293 | -------------------------------------------------------------------------------- /5_stat_test.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 21, 6 | "metadata": { 7 | "collapsed": false 8 | }, 9 | "outputs": [ 10 | { 11 | "data": { 12 | "text/html": [ 13 | "4.51394107885181" 14 | ], 15 | "text/latex": [ 16 | "4.51394107885181" 17 | ], 18 | "text/markdown": [ 19 | "4.51394107885181" 20 | ], 21 | "text/plain": [ 22 | "[1] 4.513941" 23 | ] 24 | }, 25 | "execution_count": 21, 26 | "metadata": {}, 27 | "output_type": "execute_result" 28 | } 29 | ], 30 | "source": [ 31 | "d <- read.csv('data3a.csv')\n", 32 | "fit1 <- glm(y ~ 1, data=d, family=poisson)\n", 33 | "fit2 <- glm(y ~ x, data=d, family=poisson)\n", 34 | "fit1$deviance - fit2$deviance" 35 | ] 36 | }, 37 | { 38 | "cell_type": "markdown", 39 | "metadata": {}, 40 | "source": [ 41 | "# PB法(パラメトリックブートストラップ法)・・・乱数生成に基づくアプローチ" 42 | ] 43 | }, 44 | { 45 | "cell_type": "code", 46 | "execution_count": 23, 47 | "metadata": { 48 | "collapsed": false 49 | }, 50 | "outputs": [ 51 | { 52 | "data": { 53 | "text/html": [ 54 | "0.347400942400384" 55 | ], 56 | "text/latex": [ 57 | "0.347400942400384" 58 | ], 59 | "text/markdown": [ 60 | "0.347400942400384" 61 | ], 62 | "text/plain": [ 63 | "[1] 0.3474009" 64 | ] 65 | }, 66 | "execution_count": 23, 67 | "metadata": {}, 68 | "output_type": "execute_result" 69 | } 70 | ], 71 | "source": [ 72 | "d$y.rnd = rpois(100, lambda = mean(d$y))\n", 73 | "fit1 <- glm(y.rnd ~ 1, data=d, family=poisson)\n", 74 | "fit2 <- glm(y.rnd ~ x, data=d, family=poisson)\n", 75 | "fit1$deviance - fit2$deviance" 76 | ] 77 | }, 78 | { 79 | "cell_type": "markdown", 80 | "metadata": {}, 81 | "source": [ 82 | "以上、帰無仮説(一定モデル)を仮定して、逸脱度の差を計算するのが、PB方の1ステップに相当する。これを繰り返すことで、逸脱度の差の分布を得ることができる。" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 24, 88 | "metadata": { 89 | "collapsed": false 90 | }, 91 | "outputs": [ 92 | { 93 | "data": { 94 | "text/plain": [ 95 | " Min. 1st Qu. Median Mean 3rd Qu. Max. \n", 96 | " 0.000001 0.095000 0.443000 0.957700 1.269000 10.340000 " 97 | ] 98 | }, 99 | "execution_count": 24, 100 | "metadata": {}, 101 | "output_type": "execute_result" 102 | } 103 | ], 104 | "source": [ 105 | "get.dd <- function(d) {\n", 106 | " n.sample <- nrow(d)\n", 107 | " y.mean <- mean(d$y)\n", 108 | " d$y.rnd <- rpois(n.sample, lambda = y.mean)\n", 109 | " fit1 <- glm(y.rnd ~ 1, data=d, family=poisson)\n", 110 | " fit2 <- glm(y.rnd ~ x, data=d, family=poisson)\n", 111 | " fit1$deviance - fit2$deviance\n", 112 | "}\n", 113 | "\n", 114 | "pb <- function(d, n.bootstrap) {\n", 115 | " replicate(n.bootstrap, get.dd(d))\n", 116 | "}\n", 117 | "\n", 118 | "dd12 <- pb(d, n.bootstrap = 1000)\n", 119 | "summary(dd12)" 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "execution_count": 26, 125 | "metadata": { 126 | "collapsed": false 127 | }, 128 | "outputs": [ 129 | { 130 | "data": { 131 | "image/png": "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", 132 | "image/svg+xml": [ 133 | "\n", 134 | "\n", 135 | "\n", 136 | "\n", 137 | "\n", 138 | "\n", 139 | "\n", 140 | "\n", 141 | "\n", 142 | "\n", 143 | "\n", 144 | "\n", 145 | "\n", 146 | "\n", 147 | "\n", 148 | "\n", 149 | "\n", 150 | "\n", 151 | "\n", 152 | "\n", 153 | "\n", 154 | "\n", 155 | "\n", 156 | "\n", 157 | "\n", 158 | "\n", 159 | "\n", 160 | "\n", 161 | "\n", 162 | "\n", 163 | "\n", 164 | "\n", 165 | "\n", 166 | "\n", 167 | "\n", 168 | "\n", 169 | "\n", 170 | "\n", 171 | "\n", 172 | "\n", 173 | "\n", 174 | "\n", 175 | "\n", 176 | "\n", 177 | "\n", 178 | "\n", 179 | "\n", 180 | "\n", 181 | "\n", 182 | "\n", 183 | "\n", 184 | "\n", 185 | "\n", 186 | "\n", 187 | "\n", 188 | "\n", 189 | "\n", 190 | "\n", 191 | "\n", 192 | "\n", 193 | "\n", 194 | "\n", 195 | "\n", 196 | "\n", 197 | "\n", 198 | "\n", 199 | "\n", 200 | "\n", 201 | "\n", 202 | "\n", 203 | "\n", 204 | "\n", 205 | "\n", 206 | "\n", 207 | "\n", 208 | "\n", 209 | "\n", 210 | "\n", 211 | "\n", 212 | "\n", 213 | "\n", 214 | "\n", 215 | "\n", 216 | "\n", 217 | "\n", 218 | "\n", 219 | "\n", 220 | "\n", 221 | "\n", 222 | "\n", 223 | "\n", 224 | "\n", 225 | "\n", 226 | "\n", 227 | "\n", 228 | "\n", 229 | "\n", 230 | "\n", 231 | "\n", 232 | "\n", 233 | "\n", 234 | "\n", 235 | "\n", 236 | "\n", 237 | "\n", 238 | "\n", 239 | "\n", 240 | "\n", 241 | "\n", 242 | "\n", 243 | "\n", 244 | "\n", 245 | "\n", 246 | "\n", 247 | "\n", 248 | "\n", 249 | "\n", 250 | "\n", 251 | "\n", 252 | "\n", 253 | "\n", 254 | "\n", 255 | "\n", 256 | "\n", 257 | "\n", 258 | "\n", 259 | " \n", 260 | "\n", 261 | "\n", 262 | "\n", 263 | "\n", 264 | "\n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | "\n", 283 | "\n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | "\n", 289 | "\n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | "\n", 300 | "\n", 301 | "\n", 302 | "\n", 303 | "\n", 304 | "\n", 305 | "\n", 306 | "\n", 307 | "\n", 308 | " \n", 309 | "\n", 310 | "\n", 311 | " \n", 312 | "\n", 313 | "\n", 314 | " \n", 315 | "\n", 316 | "\n", 317 | " \n", 318 | "\n", 319 | "\n", 320 | " \n", 321 | "\n", 322 | "\n", 323 | " \n", 324 | " \n", 325 | "\n", 326 | "\n", 327 | "\n", 328 | "\n", 329 | "\n", 330 | "\n", 331 | "\n", 332 | "\n", 333 | "\n", 334 | "\n", 335 | "\n", 336 | " \n", 337 | "\n", 338 | "\n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | "\n", 343 | "\n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | "\n", 348 | "\n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | "\n", 353 | "\n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | "\n", 358 | "\n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | "\n", 363 | "\n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | "\n", 368 | "\n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | "\n", 373 | "\n", 374 | "\n", 375 | "\n", 376 | "\n", 377 | "\n", 378 | "\n", 379 | "\n", 380 | "\n", 381 | "\n", 382 | "\n", 383 | "\n", 384 | "\n", 385 | "\n", 386 | "\n", 387 | "\n", 388 | "\n" 389 | ], 390 | "text/plain": [ 391 | "Plot with title “Histogram of dd12”" 392 | ] 393 | }, 394 | "metadata": { 395 | "image/svg+xml": { 396 | "isolated": true 397 | } 398 | }, 399 | "output_type": "display_data" 400 | } 401 | ], 402 | "source": [ 403 | "hist(dd12)\n", 404 | "abline(v=4.5, lty = 2)" 405 | ] 406 | }, 407 | { 408 | "cell_type": "code", 409 | "execution_count": 27, 410 | "metadata": { 411 | "collapsed": false 412 | }, 413 | "outputs": [ 414 | { 415 | "data": { 416 | "text/html": [ 417 | "29" 418 | ], 419 | "text/latex": [ 420 | "29" 421 | ], 422 | "text/markdown": [ 423 | "29" 424 | ], 425 | "text/plain": [ 426 | "[1] 29" 427 | ] 428 | }, 429 | "execution_count": 27, 430 | "metadata": {}, 431 | "output_type": "execute_result" 432 | } 433 | ], 434 | "source": [ 435 | "sum(dd12 >= 4.5)" 436 | ] 437 | }, 438 | { 439 | "cell_type": "code", 440 | "execution_count": 29, 441 | "metadata": { 442 | "collapsed": false 443 | }, 444 | "outputs": [ 445 | { 446 | "data": { 447 | "text/html": [ 448 | "0.028" 449 | ], 450 | "text/latex": [ 451 | "0.028" 452 | ], 453 | "text/markdown": [ 454 | "0.028" 455 | ], 456 | "text/plain": [ 457 | "[1] 0.028" 458 | ] 459 | }, 460 | "execution_count": 29, 461 | "metadata": {}, 462 | "output_type": "execute_result" 463 | } 464 | ], 465 | "source": [ 466 | "P <- 28 / 1000\n", 467 | "P" 468 | ] 469 | }, 470 | { 471 | "cell_type": "markdown", 472 | "metadata": {}, 473 | "source": [ 474 | "したがって、P < 0.05 なので、有意差がある。帰無仮説(一定モデル)は棄却されて x モデルが残るので、これを採択する。" 475 | ] 476 | }, 477 | { 478 | "cell_type": "markdown", 479 | "metadata": {}, 480 | "source": [ 481 | "# $\\chi^2$分布を使った近似計算法" 482 | ] 483 | }, 484 | { 485 | "cell_type": "code", 486 | "execution_count": 30, 487 | "metadata": { 488 | "collapsed": false 489 | }, 490 | "outputs": [ 491 | { 492 | "data": { 493 | "text/html": [ 494 | "\n", 495 | "\n", 496 | "\n", 497 | "\t\n", 498 | "\t\n", 499 | "\n", 500 | "
Resid. DfResid. DevDfDeviancePr(>Chi)
19989.50694NANANA
29884.99314.5139410.03361969
\n" 501 | ], 502 | "text/latex": [ 503 | "\\begin{tabular}{r|lllll}\n", 504 | " & Resid. Df & Resid. Dev & Df & Deviance & Pr(>Chi)\\\\\n", 505 | "\\hline\n", 506 | "\t1 & 99 & 89.50694 & NA & NA & NA\\\\\n", 507 | "\t2 & 98 & 84.993 & 1 & 4.513941 & 0.03361969\\\\\n", 508 | "\\end{tabular}\n" 509 | ], 510 | "text/plain": [ 511 | "Analysis of Deviance Table\n", 512 | "\n", 513 | "Model 1: y ~ 1\n", 514 | "Model 2: y ~ x\n", 515 | " Resid. Df Resid. Dev Df Deviance Pr(>Chi) \n", 516 | "1 99 89.507 \n", 517 | "2 98 84.993 1 4.5139 0.03362 *\n", 518 | "---\n", 519 | "Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1" 520 | ] 521 | }, 522 | "execution_count": 30, 523 | "metadata": {}, 524 | "output_type": "execute_result" 525 | } 526 | ], 527 | "source": [ 528 | "fit1 <- glm(y ~ 1, data=d, family=poisson)\n", 529 | "fit2 <- glm(y ~ x, data=d, family=poisson)\n", 530 | "anova(fit1, fit2, test = \"Chisq\")" 531 | ] 532 | }, 533 | { 534 | "cell_type": "markdown", 535 | "metadata": {}, 536 | "source": [ 537 | "$\\chi^2$分布近似はサンプルサイズが大きい場合に有効な近似計算。サンプルサイズが小さいバアは、PB法を使ってシミュレーションするのが良い。\n", 538 | "等分散正規分布が仮定できる場合には、t分布(平均の差)やF分布(分散比)を使った方が正確な結果を得ることができる。" 539 | ] 540 | }, 541 | { 542 | "cell_type": "markdown", 543 | "metadata": {}, 544 | "source": [ 545 | "ただし、あくまで P 値は P 値であって、決して効果の大きさを言うものではない(それは効果量 effect size の仕事)" 546 | ] 547 | } 548 | ], 549 | "metadata": { 550 | "kernelspec": { 551 | "display_name": "R", 552 | "language": "R", 553 | "name": "ir" 554 | }, 555 | "language_info": { 556 | "codemirror_mode": "r", 557 | "file_extension": ".r", 558 | "mimetype": "text/x-r-source", 559 | "name": "R", 560 | "pygments_lexer": "r", 561 | "version": "3.2.2" 562 | } 563 | }, 564 | "nbformat": 4, 565 | "nbformat_minor": 0 566 | } 567 | --------------------------------------------------------------------------------