├── .gitignore
├── Power.ipynb
├── Randomization inference in networks.ipynb
├── Randomization inference.ipynb
├── Using covariates.ipynb
├── cai_data
├── cai.adjacency.RData
└── cai.main.tsv
├── prep_data.R
└── pseudo_facebook_small.tsv
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 |
5 | # C extensions
6 | *.so
7 |
8 | # Distribution / packaging
9 | .Python
10 | env/
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | *.egg-info/
23 | .installed.cfg
24 | *.egg
25 |
26 | # PyInstaller
27 | # Usually these files are written by a python script from a template
28 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
29 | *.manifest
30 | *.spec
31 |
32 | # Installer logs
33 | pip-log.txt
34 | pip-delete-this-directory.txt
35 |
36 | # Unit test / coverage reports
37 | htmlcov/
38 | .tox/
39 | .coverage
40 | .coverage.*
41 | .cache
42 | nosetests.xml
43 | coverage.xml
44 | *,cover
45 |
46 | # Translations
47 | *.mo
48 | *.pot
49 |
50 | # Django stuff:
51 | *.log
52 |
53 | # Sphinx documentation
54 | docs/_build/
55 |
56 | # PyBuilder
57 | target/
58 |
59 | # iPython
60 | .ipynb_checkpoints
61 |
62 | pseudo_facebook.tsv
63 |
--------------------------------------------------------------------------------
/Power.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Consequences of low power"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {
14 | "collapsed": false
15 | },
16 | "outputs": [
17 | {
18 | "name": "stderr",
19 | "output_type": "stream",
20 | "text": [
21 | "Loading required package: iterators\n",
22 | "Loading required package: parallel\n"
23 | ]
24 | }
25 | ],
26 | "source": [
27 | "library(foreach)\n",
28 | "library(doMC)\n",
29 | "registerDoMC(4)\n",
30 | "library(ggplot2)\n",
31 | "theme_set(theme_bw())\n",
32 | "library(repr)\n",
33 | "options(repr.plot.width=6, repr.plot.height=4)"
34 | ]
35 | },
36 | {
37 | "cell_type": "code",
38 | "execution_count": 2,
39 | "metadata": {
40 | "collapsed": false
41 | },
42 | "outputs": [
43 | {
44 | "data": {
45 | "text/plain": [
46 | "\n",
47 | " Two-sample t test power calculation \n",
48 | "\n",
49 | " n = 50\n",
50 | " delta = 0.1\n",
51 | " sd = 1\n",
52 | " sig.level = 0.05\n",
53 | " power = 0.0715\n",
54 | " alternative = two.sided\n",
55 | "\n",
56 | "NOTE: n is number in *each* group\n"
57 | ]
58 | },
59 | "execution_count": 2,
60 | "metadata": {},
61 | "output_type": "execute_result"
62 | }
63 | ],
64 | "source": [
65 | "\n",
66 | "power.t.test(n = 50, delta = .1, sig.level = .05)"
67 | ]
68 | },
69 | {
70 | "cell_type": "code",
71 | "execution_count": 3,
72 | "metadata": {
73 | "collapsed": false
74 | },
75 | "outputs": [
76 | {
77 | "data": {
78 | "text/html": [
79 | "
\n",
80 | " | est | p |
\n",
81 | "\n",
82 | "\t1 | -0.000216 | 0.999 |
\n",
83 | "\n",
84 | "
\n"
85 | ],
86 | "text/latex": [
87 | "\\begin{tabular}{r|ll}\n",
88 | " & est & p\\\\\n",
89 | "\\hline\n",
90 | "\t1 & -0.000216 & 0.999\\\\\n",
91 | "\\end{tabular}\n"
92 | ],
93 | "text/plain": [
94 | " est p\n",
95 | "1 -0.000216 0.999"
96 | ]
97 | },
98 | "execution_count": 3,
99 | "metadata": {},
100 | "output_type": "execute_result"
101 | }
102 | ],
103 | "source": [
104 | "do.sim <- function(n, delta) {\n",
105 | " z <- rep(0:1, each = n)\n",
106 | " y <- z * delta + rnorm(n * 2)\n",
107 | " \n",
108 | " r <- t.test(y ~ z)\n",
109 | " data.frame(est = unname(r$estimate[2] - r$estimate[1]), p = r$p.value)\n",
110 | "}\n",
111 | "do.sim(50, .1)"
112 | ]
113 | },
114 | {
115 | "cell_type": "code",
116 | "execution_count": 4,
117 | "metadata": {
118 | "collapsed": false
119 | },
120 | "outputs": [],
121 | "source": [
122 | "results <- foreach(i = 1:1e4, .combine = rbind) %dopar% do.sim(50, .1)"
123 | ]
124 | },
125 | {
126 | "cell_type": "code",
127 | "execution_count": 5,
128 | "metadata": {
129 | "collapsed": false
130 | },
131 | "outputs": [
132 | {
133 | "data": {
134 | "text/plain": [
135 | " est p \n",
136 | " Min. :-0.694 Min. :0.000 \n",
137 | " 1st Qu.:-0.036 1st Qu.:0.199 \n",
138 | " Median : 0.100 Median :0.447 \n",
139 | " Mean : 0.099 Mean :0.461 \n",
140 | " 3rd Qu.: 0.231 3rd Qu.:0.711 \n",
141 | " Max. : 0.980 Max. :1.000 "
142 | ]
143 | },
144 | "execution_count": 5,
145 | "metadata": {},
146 | "output_type": "execute_result"
147 | }
148 | ],
149 | "source": [
150 | "summary(results)"
151 | ]
152 | },
153 | {
154 | "cell_type": "code",
155 | "execution_count": 6,
156 | "metadata": {
157 | "collapsed": false
158 | },
159 | "outputs": [
160 | {
161 | "name": "stderr",
162 | "output_type": "stream",
163 | "text": [
164 | "stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this.\n"
165 | ]
166 | },
167 | {
168 | "data": {
169 | "image/png": "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YAiHv9uX2iEQeIFVq1bJgAEDZP78+bLffvuZK1T++uuvEr6cuEyePFmOPvpoY6QBcd++fU0ArVdRC19G3lw1sXLlyvLoo4/K9ddfL9999520atVKNNDWFL4suVx44YXy8ssvm2X+IIAAAggEQ4AhHMFoZ2qJQCAFNNDVAPfzzz+XiRMnytatW2Xz5s3y7rvvyoYNG6Rfv36il5TWpEGw9j7fdttt8ttvv5nnlyxZYgJpXafb6tjn4uJiOfTQQ0UvQa2PCZ4D+dKi0gggEHABAuiAvwCoPgJ+FpgyZYoJns8++2z505/+ZHqMtb6nn366XHfddbJixQp5/vnnDcG3335r7s866yypVauWedymTRuZMGGCPPLII2boh1nJHwQQQACBwAsQQAf+JQAAAv4V0LHMmk499VRZvHhxzE2DY03aO63ptNNOM/c6jGPIkCEybdo02blzp/Ts2dME2w0aNDDP8wcBBBBAAAHGQPMaQAAB3wr06tVL/vWvf5VZv5NPPlk++OADk2f8+PFyyy23yLZt28xylSpVpEePHnLPPfdIp06dIvthGrsIBQ8QQACBQAowC0cgm51KIxAMgapVq5qKTpo0SUrrQdYTC6101VVXmQukvPfeezJz5kyZMWOGmb1j1qxZZlmDbRICCCCAAAIE0LwGEEDAtwLW9HMaJFtDNKzK6kmBOnyjYcOGZtXKlSvNmGgdL927d29z0ydGjhwpw4YNMycLEkBbetwjgAACwRZgDHSw25/aI+BrAR3PrFPNPfjgg1JUVBRTV52WTk8mnDt3rlmvM23okA+dLzo6tW/f3ixWr149sjo3N9eMj46s4AECCCCAQKAEsu8Np0DVmMoigEBgBJo0aSJr1qwxJwT++9//lho1api5nEeMGCEvvviimff5b3/7m/HQIR461d3s2bNF54nWeaFfffVV+etf/yq7du2Sxx9/XBo3bmzy6vrly5ebfW/ZskWOPfbYwJhSUQQQQACB8HUAwvOk/ueKAGgggAACPhTQuZr1QigPPPBA5ORA7ZX+n//5HxkzZkxkCIdWXae9u+OOO0xgrMuaTy+48txzz8WcRPjhhx9K//79zYVW2rZtK998841mJyGAAAIIBESAADogDU01EUBA5McffzQXSdHLb0efPBhtowH3L7/8YoJjvWBKafl0G70YS+3atcU6WTF6PzxGAAEEEPCvAAG0f9uWmiGAAAIIIIAAAgg4IMBJhA6gsksEEEAAAQQQQAAB/woQQPu3bakZAggggAACCCCAgAMCBNAOoLJLBBBAAAEEEEAAAf8KEED7t22pGQIIIIAAAggggIADAgTQDqCySwQQQAABBBBAAAH/ChBA+7dtqRkCCCCAAAIIIICAAwIE0A6gsksEEEAAAQQQQAAB/woQQPu3bakZAggggAACCCCAgAMCBNAOoLJLBBBAAAEEEEAAAf8KEED7t22pGQIIIIAAAggggIADAgTQDqCySwQQQAABBBBAAAH/ChBA+7dtqRkCCCCAAAIIIICAAwIE0A6gsksEEEAAAQQQQAAB/woQQPu3bakZAggggAACCCCAgAMCBNAOoLJLBBBAAAEEEEAAAf8KEED7t22pGQIIIIAAAggggIADAv8fQualiRQ90MUAAAAASUVORK5CYII=",
170 | "image/svg+xml": [
171 | "\n",
172 | "\n"
532 | ],
533 | "text/plain": [
534 | "plot without title"
535 | ]
536 | },
537 | "metadata": {
538 | "image/svg+xml": {
539 | "isolated": true
540 | }
541 | },
542 | "output_type": "display_data"
543 | }
544 | ],
545 | "source": [
546 | "ggplot(\n",
547 | " aes(x = est, fill = p < 0.05),\n",
548 | " data = results\n",
549 | ") +\n",
550 | "geom_histogram()"
551 | ]
552 | },
553 | {
554 | "cell_type": "markdown",
555 | "metadata": {},
556 | "source": [
557 | "## Overestimating effects"
558 | ]
559 | },
560 | {
561 | "cell_type": "code",
562 | "execution_count": 7,
563 | "metadata": {
564 | "collapsed": false
565 | },
566 | "outputs": [
567 | {
568 | "data": {
569 | "text/plain": [
570 | " Min. 1st Qu. Median Mean 3rd Qu. Max. \n",
571 | " -0.694 -0.036 0.100 0.099 0.231 0.980 "
572 | ]
573 | },
574 | "execution_count": 7,
575 | "metadata": {},
576 | "output_type": "execute_result"
577 | }
578 | ],
579 | "source": [
580 | "summary(results$est)"
581 | ]
582 | },
583 | {
584 | "cell_type": "code",
585 | "execution_count": 8,
586 | "metadata": {
587 | "collapsed": false
588 | },
589 | "outputs": [
590 | {
591 | "data": {
592 | "text/plain": [
593 | " Min. 1st Qu. Median Mean 3rd Qu. Max. \n",
594 | " -0.694 0.407 0.452 0.395 0.514 0.980 "
595 | ]
596 | },
597 | "execution_count": 8,
598 | "metadata": {},
599 | "output_type": "execute_result"
600 | }
601 | ],
602 | "source": [
603 | "summary(results$est[results$p < 0.05])"
604 | ]
605 | },
606 | {
607 | "cell_type": "markdown",
608 | "metadata": {},
609 | "source": [
610 | "Gelman and Carlin call the \"exaggeration factor: the expected (absolute) value of the estimate divided by the effect size, if it is statistically significantly different from zero.\""
611 | ]
612 | },
613 | {
614 | "cell_type": "code",
615 | "execution_count": 9,
616 | "metadata": {
617 | "collapsed": false
618 | },
619 | "outputs": [
620 | {
621 | "data": {
622 | "text/html": [
623 | "0.476724715735216"
624 | ],
625 | "text/latex": [
626 | "0.476724715735216"
627 | ],
628 | "text/markdown": [
629 | "0.476724715735216"
630 | ],
631 | "text/plain": [
632 | "[1] 0.477"
633 | ]
634 | },
635 | "execution_count": 9,
636 | "metadata": {},
637 | "output_type": "execute_result"
638 | }
639 | ],
640 | "source": [
641 | "mean(abs(results$est[results$p < 0.05]))"
642 | ]
643 | },
644 | {
645 | "cell_type": "code",
646 | "execution_count": 10,
647 | "metadata": {
648 | "collapsed": false
649 | },
650 | "outputs": [
651 | {
652 | "data": {
653 | "text/html": [
654 | "4.76724715735216"
655 | ],
656 | "text/latex": [
657 | "4.76724715735216"
658 | ],
659 | "text/markdown": [
660 | "4.76724715735216"
661 | ],
662 | "text/plain": [
663 | "[1] 4.77"
664 | ]
665 | },
666 | "execution_count": 10,
667 | "metadata": {},
668 | "output_type": "execute_result"
669 | }
670 | ],
671 | "source": [
672 | "mean(abs(results$est[results$p < 0.05])) / .1"
673 | ]
674 | },
675 | {
676 | "cell_type": "markdown",
677 | "metadata": {},
678 | "source": [
679 | "That is, we get estimates that are almost 5 times too large.\n",
680 | "\n",
681 | "We also get estimates with the wrong sign."
682 | ]
683 | },
684 | {
685 | "cell_type": "code",
686 | "execution_count": 11,
687 | "metadata": {
688 | "collapsed": false
689 | },
690 | "outputs": [
691 | {
692 | "data": {
693 | "text/plain": [
694 | "\n",
695 | " -1 1 \n",
696 | " 75 740 "
697 | ]
698 | },
699 | "execution_count": 11,
700 | "metadata": {},
701 | "output_type": "execute_result"
702 | }
703 | ],
704 | "source": [
705 | "table(sign(results$est[results$p < 0.05]))"
706 | ]
707 | },
708 | {
709 | "cell_type": "code",
710 | "execution_count": 12,
711 | "metadata": {
712 | "collapsed": false
713 | },
714 | "outputs": [
715 | {
716 | "data": {
717 | "text/html": [
718 | "0.0920245398773006"
719 | ],
720 | "text/latex": [
721 | "0.0920245398773006"
722 | ],
723 | "text/markdown": [
724 | "0.0920245398773006"
725 | ],
726 | "text/plain": [
727 | "[1] 0.092"
728 | ]
729 | },
730 | "execution_count": 12,
731 | "metadata": {},
732 | "output_type": "execute_result"
733 | }
734 | ],
735 | "source": [
736 | "mean(results$est[results$p < 0.05] < 0)"
737 | ]
738 | },
739 | {
740 | "cell_type": "markdown",
741 | "metadata": {},
742 | "source": [
743 | "This isn't the worst possible case. Many experiments have even lower power.\n",
744 | "\n",
745 | "### In combination with bad stopping rules\n",
746 | "\n",
747 | "Low power also makes the use of stopping rules more problematic.\n",
748 | "\n",
749 | "Here we do a simulation where we start with some n in each of treatment and control. Then check whether we have a significant result. If not, add some incremental n to each condition. Repeat until there is a significant result or we hit a maximum n."
750 | ]
751 | },
752 | {
753 | "cell_type": "code",
754 | "execution_count": 13,
755 | "metadata": {
756 | "collapsed": true
757 | },
758 | "outputs": [],
759 | "source": [
760 | "add.data <- function(n, d, z = c(), y = c()) {\n",
761 | " z.new <- rep(0:1, each = n)\n",
762 | " y.new <- z.new * d + rnorm(n * 2)\n",
763 | " z <- c(z, z.new)\n",
764 | " y <- c(y, y.new)\n",
765 | " t <- t.test(y ~ z)\n",
766 | " list(z = z, y = y, t = t)\n",
767 | "}\n",
768 | "\n",
769 | "do.stopping.rule.sim <- function(n, d, n.inc, n.max) {\n",
770 | " r <- list(z = c(), y = c())\n",
771 | " while (TRUE) {\n",
772 | " nc <- length(r$z) / 2\n",
773 | " if (nc + n.inc >= n.max)\n",
774 | " break;\n",
775 | " ni <- if(nc == 0) n else n.inc\n",
776 | " r <- add.data(ni, d, r$z, r$y)\n",
777 | " if (r$t$p.value < 0.05)\n",
778 | " break;\n",
779 | " }\n",
780 | " r\n",
781 | "}"
782 | ]
783 | },
784 | {
785 | "cell_type": "code",
786 | "execution_count": 14,
787 | "metadata": {
788 | "collapsed": false
789 | },
790 | "outputs": [
791 | {
792 | "data": {
793 | "text/plain": [
794 | "\n",
795 | "\tWelch Two Sample t-test\n",
796 | "\n",
797 | "data: y by z\n",
798 | "t = -0.7, df = 200, p-value = 0.5\n",
799 | "alternative hypothesis: true difference in means is not equal to 0\n",
800 | "95 percent confidence interval:\n",
801 | " -0.361 0.172\n",
802 | "sample estimates:\n",
803 | "mean in group 0 mean in group 1 \n",
804 | " -0.0166 0.0780 \n"
805 | ]
806 | },
807 | "execution_count": 14,
808 | "metadata": {},
809 | "output_type": "execute_result"
810 | }
811 | ],
812 | "source": [
813 | "# one run, with no true effect\n",
814 | "do.stopping.rule.sim(n = 20, d = 0, n.inc = 2, n.max = 120)$t"
815 | ]
816 | },
817 | {
818 | "cell_type": "markdown",
819 | "metadata": {},
820 | "source": [
821 | "Run many simulations of experiments run with this stopping rule:"
822 | ]
823 | },
824 | {
825 | "cell_type": "code",
826 | "execution_count": 18,
827 | "metadata": {
828 | "collapsed": true
829 | },
830 | "outputs": [],
831 | "source": [
832 | "set.seed(8001)\n",
833 | "sr <- foreach(i = 1:1e3, .combine = rbind) %dopar% {\n",
834 | " r <- do.stopping.rule.sim(20, 0, 5, 50)\n",
835 | " data.frame(est = r$t$estimate[2] - r$t$estimate[1],\n",
836 | " p = r$t$p.value,\n",
837 | " n = length(r$z)\n",
838 | " )\n",
839 | " }"
840 | ]
841 | },
842 | {
843 | "cell_type": "code",
844 | "execution_count": 19,
845 | "metadata": {
846 | "collapsed": false
847 | },
848 | "outputs": [
849 | {
850 | "data": {
851 | "text/plain": [
852 | " est p n \n",
853 | " Min. :-1.073 Min. :0.000 Min. :40.0 \n",
854 | " 1st Qu.:-0.154 1st Qu.:0.216 1st Qu.:90.0 \n",
855 | " Median :-0.022 Median :0.506 Median :90.0 \n",
856 | " Mean :-0.015 Mean :0.486 Mean :85.7 \n",
857 | " 3rd Qu.: 0.128 3rd Qu.:0.751 3rd Qu.:90.0 \n",
858 | " Max. : 1.003 Max. :0.998 Max. :90.0 "
859 | ]
860 | },
861 | "execution_count": 19,
862 | "metadata": {},
863 | "output_type": "execute_result"
864 | }
865 | ],
866 | "source": [
867 | "summary(sr)"
868 | ]
869 | },
870 | {
871 | "cell_type": "code",
872 | "execution_count": 20,
873 | "metadata": {
874 | "collapsed": false
875 | },
876 | "outputs": [
877 | {
878 | "data": {
879 | "text/html": [
880 | "0.13"
881 | ],
882 | "text/latex": [
883 | "0.13"
884 | ],
885 | "text/markdown": [
886 | "0.13"
887 | ],
888 | "text/plain": [
889 | "[1] 0.13"
890 | ]
891 | },
892 | "execution_count": 20,
893 | "metadata": {},
894 | "output_type": "execute_result"
895 | }
896 | ],
897 | "source": [
898 | "mean(sr$p < 0.05)"
899 | ]
900 | },
901 | {
902 | "cell_type": "markdown",
903 | "metadata": {},
904 | "source": [
905 | "That is, rather than Type I error rate of 5%, we have 13%."
906 | ]
907 | },
908 | {
909 | "cell_type": "code",
910 | "execution_count": null,
911 | "metadata": {
912 | "collapsed": true
913 | },
914 | "outputs": [],
915 | "source": []
916 | }
917 | ],
918 | "metadata": {
919 | "kernelspec": {
920 | "display_name": "R",
921 | "language": "R",
922 | "name": "ir"
923 | },
924 | "language_info": {
925 | "codemirror_mode": "r",
926 | "file_extension": ".r",
927 | "mimetype": "text/x-r-source",
928 | "name": "R",
929 | "pygments_lexer": "r",
930 | "version": "3.2.2"
931 | }
932 | },
933 | "nbformat": 4,
934 | "nbformat_minor": 0
935 | }
936 |
--------------------------------------------------------------------------------
/Randomization inference in networks.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Randomization inference for spillovers in networks\n",
8 | "\n",
9 | "This uses data from:\n",
10 | "Cai, Jing, Alain De Janvry, and Elisabeth Sadoulet. 2015. \"Social Networks and the Decision to Insure.\" American Economic Journal: Applied Economics, 7(2): 81-108.\n",
11 | "https://www.aeaweb.org/articles.php?doi=10.1257/app.20130442\n",
12 | "\n",
13 | "That paper examines spillover effects in rural Chinese farmers being encouraged to sign up for insurance. Households were randomly assigned to different periods in which to be encouraged to get insurance and whether that encouragement was 'intensive'.\n",
14 | "\n",
15 | "\"The social network survey asked household heads to list five close friends, either within or outside the village, with whom they most frequently discuss rice production or financial issues. Respondents were asked to rank these friends based on which one would be consulted first, second, etc.\"\n",
16 | "\n",
17 | "We are essentially re-doing Table 2 column 2 (there are some minor differences because of how we have simplified things a bit).\n"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 8,
23 | "metadata": {
24 | "collapsed": true
25 | },
26 | "outputs": [],
27 | "source": [
28 | "options(digits = 3)\n",
29 | "library(ggplot2)\n",
30 | "theme_set(theme_bw())\n",
31 | "options(repr.plot.width = 6)\n",
32 | "options(repr.plot.height = 4)\n",
33 | "\n",
34 | "library(icsw)\n",
35 | "library(foreach)\n",
36 | "library(Matrix)\n",
37 | "library(lfe)"
38 | ]
39 | },
40 | {
41 | "cell_type": "code",
42 | "execution_count": 9,
43 | "metadata": {
44 | "collapsed": false
45 | },
46 | "outputs": [],
47 | "source": [
48 | "cai <- read.table(\"cai_data/cai.main.tsv\", sep = \"\\t\")"
49 | ]
50 | },
51 | {
52 | "cell_type": "code",
53 | "execution_count": 10,
54 | "metadata": {
55 | "collapsed": false
56 | },
57 | "outputs": [
58 | {
59 | "data": {
60 | "text/html": [
61 | "\n",
62 | " | id | address | region | village | takeup_survey | age | male | delay | intensive | info_none | intensive.nondelay.peers | n.peers |
\n",
63 | "\n",
64 | "\t1 | 1111385 | fusheng67 | 1 | fusheng | 1 | 37 | 1 | 0 | 1 | 1 | 0 | 4 |
\n",
65 | "\t2 | 1111035 | fusheng21 | 1 | fusheng | 1 | 60 | 1 | 0 | 1 | 1 | 0 | 0 |
\n",
66 | "\t3 | 1111363 | fusheng5 | 1 | fusheng | 0 | 56 | 1 | 0 | 0 | 1 | 0 | 3 |
\n",
67 | "\t4 | 1111042 | fusheng21 | 1 | fusheng | 1 | 57 | 1 | 0 | 0 | 1 | 1 | 1 |
\n",
68 | "\t5 | 1111045 | fusheng21 | 1 | fusheng | 1 | 45 | 1 | 1 | 0 | 1 | 2 | 4 |
\n",
69 | "\t6 | 1111038 | fusheng21 | 1 | fusheng | 1 | 61 | 1 | 1 | 1 | 1 | 0 | 4 |
\n",
70 | "\n",
71 | "
\n"
72 | ],
73 | "text/latex": [
74 | "\\begin{tabular}{r|llllllllllll}\n",
75 | " & id & address & region & village & takeup_survey & age & male & delay & intensive & info_none & intensive.nondelay.peers & n.peers\\\\\n",
76 | "\\hline\n",
77 | "\t1 & 1111385 & fusheng67 & 1 & fusheng & 1 & 37 & 1 & 0 & 1 & 1 & 0 & 4\\\\\n",
78 | "\t2 & 1111035 & fusheng21 & 1 & fusheng & 1 & 60 & 1 & 0 & 1 & 1 & 0 & 0\\\\\n",
79 | "\t3 & 1111363 & fusheng5 & 1 & fusheng & 0 & 56 & 1 & 0 & 0 & 1 & 0 & 3\\\\\n",
80 | "\t4 & 1111042 & fusheng21 & 1 & fusheng & 1 & 57 & 1 & 0 & 0 & 1 & 1 & 1\\\\\n",
81 | "\t5 & 1111045 & fusheng21 & 1 & fusheng & 1 & 45 & 1 & 1 & 0 & 1 & 2 & 4\\\\\n",
82 | "\t6 & 1111038 & fusheng21 & 1 & fusheng & 1 & 61 & 1 & 1 & 1 & 1 & 0 & 4\\\\\n",
83 | "\\end{tabular}\n"
84 | ],
85 | "text/plain": [
86 | " id address region village takeup_survey age male delay intensive info_none intensive.nondelay.peers n.peers\n",
87 | "1 1111385 fusheng67 1 fusheng 1 37 1 0 1 1 0 4\n",
88 | "2 1111035 fusheng21 1 fusheng 1 60 1 0 1 1 0 0\n",
89 | "3 1111363 fusheng5 1 fusheng 0 56 1 0 0 1 0 3\n",
90 | "4 1111042 fusheng21 1 fusheng 1 57 1 0 0 1 1 1\n",
91 | "5 1111045 fusheng21 1 fusheng 1 45 1 1 0 1 2 4\n",
92 | "6 1111038 fusheng21 1 fusheng 1 61 1 1 1 1 0 4"
93 | ]
94 | },
95 | "execution_count": 10,
96 | "metadata": {},
97 | "output_type": "execute_result"
98 | }
99 | ],
100 | "source": [
101 | "head(cai)"
102 | ]
103 | },
104 | {
105 | "cell_type": "markdown",
106 | "metadata": {},
107 | "source": [
108 | "The main outcome is whether they sign for insurance `takeup_survey`."
109 | ]
110 | },
111 | {
112 | "cell_type": "code",
113 | "execution_count": 11,
114 | "metadata": {
115 | "collapsed": false,
116 | "scrolled": true
117 | },
118 | "outputs": [
119 | {
120 | "name": "stderr",
121 | "output_type": "stream",
122 | "text": [
123 | " [[ suppressing 10 column names ‘1111385’, ‘1111035’, ‘1111363’ ... ]]\n",
124 | " [[ suppressing 10 column names ‘1111385’, ‘1111035’, ‘1111363’ ... ]]\n"
125 | ]
126 | },
127 | {
128 | "data": {
129 | "text/plain": [
130 | "10 x 10 sparse Matrix of class \"dgCMatrix\"\n",
131 | " \n",
132 | "1111385 . . . . . . . . . .\n",
133 | "1111035 . . . . . . . . . .\n",
134 | "1111363 . . . . . . . . . .\n",
135 | "1111042 . . . . . . . . . .\n",
136 | "1111045 . . . . . . . 1 . .\n",
137 | "1111038 . . . . . . . 1 1 .\n",
138 | "1111034 . . . . . . . . . 1\n",
139 | "1111055 . . . . 1 . . . . .\n",
140 | "1111050 . . . . 1 1 . 1 . 1\n",
141 | "1111031 . . . . 1 . . 1 . ."
142 | ]
143 | },
144 | "execution_count": 11,
145 | "metadata": {},
146 | "output_type": "execute_result"
147 | }
148 | ],
149 | "source": [
150 | "load(\"cai_data/cai.adjacency.RData\")\n",
151 | "A[1:10,1:10]"
152 | ]
153 | },
154 | {
155 | "cell_type": "markdown",
156 | "metadata": {},
157 | "source": [
158 | "Now let's estimate the relationship between how many peers were given the strong encouragement to sign up for insurance in the prior period, `intensive.nondelay.peers` and the outcome `takeup_survey`. We will only do this for egos who didn't get the treatment in the prior period and who didn't receive information, as part of their treatment, about the adoption rates in their area. (This is also what the paper does.)"
159 | ]
160 | },
161 | {
162 | "cell_type": "markdown",
163 | "metadata": {},
164 | "source": [
165 | "Now we can get a point estimate for the effects of peer treatments:"
166 | ]
167 | },
168 | {
169 | "cell_type": "code",
170 | "execution_count": 12,
171 | "metadata": {
172 | "collapsed": false
173 | },
174 | "outputs": [
175 | {
176 | "data": {
177 | "text/plain": [
178 | "\n",
179 | "Call:\n",
180 | "lm(formula = takeup_survey ~ intensive + I(intensive.nondelay.peers/n.peers) + \n",
181 | " factor(n.peers), data = cai)\n",
182 | "\n",
183 | "Residuals:\n",
184 | " Min 1Q Median 3Q Max \n",
185 | "-0.576 -0.451 -0.373 0.533 0.688 \n",
186 | "\n",
187 | "Coefficients:\n",
188 | " Estimate Std. Error t value Pr(>|t|) \n",
189 | "(Intercept) 0.3116 0.0340 9.16 < 2e-16 ***\n",
190 | "intensive 0.0779 0.0148 5.26 1.5e-07 ***\n",
191 | "I(intensive.nondelay.peers/n.peers) 0.0508 0.0295 1.72 0.08469 . \n",
192 | "factor(n.peers)2 0.0563 0.0389 1.45 0.14796 \n",
193 | "factor(n.peers)3 0.0610 0.0361 1.69 0.09071 . \n",
194 | "factor(n.peers)4 0.0833 0.0350 2.38 0.01746 * \n",
195 | "factor(n.peers)5 0.1356 0.0354 3.83 0.00013 ***\n",
196 | "---\n",
197 | "Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n",
198 | "\n",
199 | "Residual standard error: 0.494 on 4514 degrees of freedom\n",
200 | " (256 observations deleted due to missingness)\n",
201 | "Multiple R-squared: 0.0124,\tAdjusted R-squared: 0.0111 \n",
202 | "F-statistic: 9.42 on 6 and 4514 DF, p-value: 2.62e-10\n"
203 | ]
204 | },
205 | "execution_count": 12,
206 | "metadata": {},
207 | "output_type": "execute_result"
208 | }
209 | ],
210 | "source": [
211 | "lm.1 <- lm(\n",
212 | " takeup_survey ~ intensive + I(intensive.nondelay.peers/n.peers) + factor(n.peers),\n",
213 | " data = cai\n",
214 | ")\n",
215 | "summary(lm.1)"
216 | ]
217 | },
218 | {
219 | "cell_type": "markdown",
220 | "metadata": {},
221 | "source": [
222 | "There could be something here. We see both an effect of one's own treatment, and an effect of the fraction of peers treated in the early period.\n",
223 | "\n",
224 | "Note that depending on your number of peers, the fraction of treated peers can only take on some values. This violates the 'positivity' support assumption for causal inference. Even if this worked with the number of treated peers, and considered only 0 or more than 0 treated peers, the propensity scores would be heterogeneous. The author attempt to deal with this by adding the indicators for each number of friends.\n",
225 | "\n",
226 | "Make a function that, given the data (or permuted data) computes our test statistic -- the regression coefficient from above. We can see that it gives the same results as before:"
227 | ]
228 | },
229 | {
230 | "cell_type": "code",
231 | "execution_count": 13,
232 | "metadata": {
233 | "collapsed": false
234 | },
235 | "outputs": [
236 | {
237 | "name": "stdout",
238 | "output_type": "stream",
239 | "text": [
240 | "I(z.peers/n.peers) \n",
241 | " 0.0508 \n"
242 | ]
243 | }
244 | ],
245 | "source": [
246 | "peer.regression.coef <- function(z, z.peers, n.peers, y) {\n",
247 | " coef(lm(y ~ z + I(z.peers / n.peers) + factor(n.peers)))[3]\n",
248 | "}\n",
249 | "\n",
250 | "obs.coef <- with(\n",
251 | " cai,\n",
252 | " peer.regression.coef(intensive, intensive.nondelay.peers, n.peers, takeup_survey)\n",
253 | ")\n",
254 | "print(obs.coef)"
255 | ]
256 | },
257 | {
258 | "cell_type": "markdown",
259 | "metadata": {},
260 | "source": [
261 | "Now we write a function to do the focal-auxillary permuation and compute the test statistic for each permutation."
262 | ]
263 | },
264 | {
265 | "cell_type": "code",
266 | "execution_count": 14,
267 | "metadata": {
268 | "collapsed": true
269 | },
270 | "outputs": [],
271 | "source": [
272 | "do.focal.aux.permutation <- function(adj.mat, z, n.peers, y,\n",
273 | " is.focal, R = 1e3,\n",
274 | " fnc = peer.regression.coef) {\n",
275 | " foreach(i = 1:R, .combine = 'c') %do% {\n",
276 | " zp <- z\n",
277 | " zp[!is.focal] <- sample(z[!is.focal]) # permute treatments for auxillary vertices only\n",
278 | " zp.peers <- as.vector(adj.mat %*% zp) # re-compute number of peers treated\n",
279 | " fnc(z[is.focal], zp.peers[is.focal], n.peers[is.focal], y[is.focal])\n",
280 | " }\n",
281 | "}\n"
282 | ]
283 | },
284 | {
285 | "cell_type": "markdown",
286 | "metadata": {},
287 | "source": [
288 | "We can now call this function to draw from the distribution of the test statistic under the null of no spillovers (but possible direct effects).\n",
289 | "\n",
290 | "Just for illustration, let's start by just selecting a random 2000 units as focal units."
291 | ]
292 | },
293 | {
294 | "cell_type": "markdown",
295 | "metadata": {},
296 | "source": [
297 | "Actually in the paper, they mainly don't focus on contemporaneous influence. Rather the authors look for effects of the assignment of peers treated in period 1 on egos only assigned in round 2."
298 | ]
299 | },
300 | {
301 | "cell_type": "code",
302 | "execution_count": 15,
303 | "metadata": {
304 | "collapsed": false
305 | },
306 | "outputs": [
307 | {
308 | "data": {
309 | "text/plain": [
310 | " Min. 1st Qu. Median Mean 3rd Qu. Max. \n",
311 | "-0.0371 0.0434 0.0661 0.0650 0.0883 0.1760 "
312 | ]
313 | },
314 | "execution_count": 15,
315 | "metadata": {},
316 | "output_type": "execute_result"
317 | }
318 | ],
319 | "source": [
320 | "\n",
321 | "cai$is.focal <- sample(c(rep(TRUE, 2000), rep(FALSE, nrow(cai) - 2000)))\n",
322 | "\n",
323 | "null.coefs <- do.focal.aux.permutation(\n",
324 | " A,\n",
325 | " cai$intensive,\n",
326 | " cai$n.peers, cai$takeup_survey,\n",
327 | " cai$is.focal,\n",
328 | " R = 1e3\n",
329 | ")\n",
330 | "\n",
331 | "summary(null.coefs)"
332 | ]
333 | },
334 | {
335 | "cell_type": "code",
336 | "execution_count": 16,
337 | "metadata": {
338 | "collapsed": false
339 | },
340 | "outputs": [
341 | {
342 | "name": "stdout",
343 | "output_type": "stream",
344 | "text": [
345 | "I(z.peers/n.peers) \n",
346 | " 0.0449 \n"
347 | ]
348 | }
349 | ],
350 | "source": [
351 | "obs.coef <- with(\n",
352 | " subset(cai, is.focal),\n",
353 | " peer.regression.coef(intensive, intensive.nondelay.peers, n.peers, takeup_survey)\n",
354 | ")\n",
355 | "print(obs.coef)"
356 | ]
357 | },
358 | {
359 | "cell_type": "code",
360 | "execution_count": 17,
361 | "metadata": {
362 | "collapsed": false
363 | },
364 | "outputs": [
365 | {
366 | "data": {
367 | "text/html": [
368 | "0.526"
369 | ],
370 | "text/latex": [
371 | "0.526"
372 | ],
373 | "text/markdown": [
374 | "0.526"
375 | ],
376 | "text/plain": [
377 | "[1] 0.526"
378 | ]
379 | },
380 | "execution_count": 17,
381 | "metadata": {},
382 | "output_type": "execute_result"
383 | }
384 | ],
385 | "source": [
386 | "two.sided.p.value.perm <- function(obs, null.draws) {\n",
387 | " lower.p <- mean(obs > null.draws)\n",
388 | " upper.p <- mean(obs < null.draws)\n",
389 | " 2 * min(lower.p, upper.p)\n",
390 | "}\n",
391 | "\n",
392 | "two.sided.p.value.perm(obs.coef, null.coefs)"
393 | ]
394 | },
395 | {
396 | "cell_type": "markdown",
397 | "metadata": {},
398 | "source": [
399 | "So actually this doesn't look statistically significant...\n",
400 | "\n",
401 | "But, in fact, in the paper they focus their analysis a bit more in a couple ways. They can restrict attention to households treated in the second period.\n",
402 | "\n",
403 | "Another way is to restrict attention to households that were not, as part of the treatment, randomly assigned to get information about insurance adoption in their area. Perhaps that social information would reduce the impact of other social info. These are identified with `info_none == 1` if you want to try that."
404 | ]
405 | },
406 | {
407 | "cell_type": "code",
408 | "execution_count": 18,
409 | "metadata": {
410 | "collapsed": false
411 | },
412 | "outputs": [
413 | {
414 | "name": "stdout",
415 | "output_type": "stream",
416 | "text": [
417 | "I(z.peers/n.peers) \n",
418 | " 0.0508 \n"
419 | ]
420 | }
421 | ],
422 | "source": [
423 | "# a relevant subset\n",
424 | "cai$relevant.case <- with(cai, delay == 1 )\n",
425 | "\n",
426 | "obs.coef <- with(\n",
427 | " cai,\n",
428 | " peer.regression.coef(intensive, intensive.nondelay.peers, n.peers, takeup_survey)\n",
429 | ")\n",
430 | "print(obs.coef)"
431 | ]
432 | },
433 | {
434 | "cell_type": "markdown",
435 | "metadata": {},
436 | "source": [
437 | "Since only some units have relevant outcomes now, we can make all of them the focal units."
438 | ]
439 | },
440 | {
441 | "cell_type": "code",
442 | "execution_count": 19,
443 | "metadata": {
444 | "collapsed": false
445 | },
446 | "outputs": [
447 | {
448 | "data": {
449 | "text/plain": [
450 | " Min. 1st Qu. Median Mean 3rd Qu. Max. \n",
451 | "-0.0155 0.0467 0.0632 0.0630 0.0787 0.1340 "
452 | ]
453 | },
454 | "execution_count": 19,
455 | "metadata": {},
456 | "output_type": "execute_result"
457 | }
458 | ],
459 | "source": [
460 | "cai$is.focal <- cai$relevant.case\n",
461 | "\n",
462 | "null.coefs <- do.focal.aux.permutation(\n",
463 | " A,\n",
464 | " cai$intensive,\n",
465 | " cai$n.peers, cai$takeup_survey,\n",
466 | " cai$is.focal,\n",
467 | " R = 1e3\n",
468 | ")\n",
469 | "\n",
470 | "summary(null.coefs)"
471 | ]
472 | },
473 | {
474 | "cell_type": "code",
475 | "execution_count": 20,
476 | "metadata": {
477 | "collapsed": false
478 | },
479 | "outputs": [
480 | {
481 | "name": "stdout",
482 | "output_type": "stream",
483 | "text": [
484 | "I(z.peers/n.peers) \n",
485 | " 0.169 \n"
486 | ]
487 | }
488 | ],
489 | "source": [
490 | "obs.coef <- with(\n",
491 | " subset(cai, is.focal),\n",
492 | " peer.regression.coef(intensive, intensive.nondelay.peers, n.peers, takeup_survey)\n",
493 | ")\n",
494 | "print(obs.coef)"
495 | ]
496 | },
497 | {
498 | "cell_type": "code",
499 | "execution_count": 21,
500 | "metadata": {
501 | "collapsed": false
502 | },
503 | "outputs": [
504 | {
505 | "data": {
506 | "text/html": [
507 | "0"
508 | ],
509 | "text/latex": [
510 | "0"
511 | ],
512 | "text/markdown": [
513 | "0"
514 | ],
515 | "text/plain": [
516 | "[1] 0"
517 | ]
518 | },
519 | "execution_count": 21,
520 | "metadata": {},
521 | "output_type": "execute_result"
522 | }
523 | ],
524 | "source": [
525 | "two.sided.p.value.perm(obs.coef, null.coefs)"
526 | ]
527 | },
528 | {
529 | "cell_type": "markdown",
530 | "metadata": {},
531 | "source": [
532 | "So the p-value is very close to 0. For this subpopulation, there is strong evidence of a spillover effect."
533 | ]
534 | },
535 | {
536 | "cell_type": "code",
537 | "execution_count": null,
538 | "metadata": {
539 | "collapsed": true
540 | },
541 | "outputs": [],
542 | "source": []
543 | }
544 | ],
545 | "metadata": {
546 | "kernelspec": {
547 | "display_name": "R",
548 | "language": "R",
549 | "name": "ir"
550 | },
551 | "language_info": {
552 | "codemirror_mode": "r",
553 | "file_extension": ".r",
554 | "mimetype": "text/x-r-source",
555 | "name": "R",
556 | "pygments_lexer": "r",
557 | "version": "3.2.2"
558 | }
559 | },
560 | "nbformat": 4,
561 | "nbformat_minor": 0
562 | }
563 |
--------------------------------------------------------------------------------
/Using covariates.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Using covariates to increase precision"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 67,
13 | "metadata": {
14 | "collapsed": false
15 | },
16 | "outputs": [],
17 | "source": [
18 | "options(digits = 2)\n",
19 | "library(foreach)\n",
20 | "library(doMC)\n",
21 | "registerDoMC(cores = 4)\n",
22 | "library(ggplot2)\n",
23 | "theme_set(theme_bw())\n",
24 | "library(repr)\n",
25 | "options(repr.plot.width=6, repr.plot.height=4)"
26 | ]
27 | },
28 | {
29 | "cell_type": "markdown",
30 | "metadata": {},
31 | "source": [
32 | "Synthetic Facebook data set from https://www.udacity.com/wiki/ud651#!#data-sets.\n",
33 | "We are working with a subset of this to make the simulations fast."
34 | ]
35 | },
36 | {
37 | "cell_type": "code",
38 | "execution_count": 42,
39 | "metadata": {
40 | "collapsed": false
41 | },
42 | "outputs": [],
43 | "source": [
44 | "ps <- read.table(\"pseudo_facebook_small.tsv\", header = TRUE)"
45 | ]
46 | },
47 | {
48 | "cell_type": "code",
49 | "execution_count": 72,
50 | "metadata": {
51 | "collapsed": false
52 | },
53 | "outputs": [
54 | {
55 | "data": {
56 | "text/html": [
57 | "\n",
58 | "\t- 10000
\n",
59 | "\t- 15
\n",
60 | "
\n"
61 | ],
62 | "text/latex": [
63 | "\\begin{enumerate*}\n",
64 | "\\item 10000\n",
65 | "\\item 15\n",
66 | "\\end{enumerate*}\n"
67 | ],
68 | "text/markdown": [
69 | "1. 10000\n",
70 | "2. 15\n",
71 | "\n",
72 | "\n"
73 | ],
74 | "text/plain": [
75 | "[1] 10000 15"
76 | ]
77 | },
78 | "execution_count": 72,
79 | "metadata": {},
80 | "output_type": "execute_result"
81 | },
82 | {
83 | "data": {
84 | "text/plain": [
85 | " Min. 1st Qu. Median Mean 3rd Qu. Max. \n",
86 | " 0 1 10 149 76 13600 "
87 | ]
88 | },
89 | "execution_count": 72,
90 | "metadata": {},
91 | "output_type": "execute_result"
92 | },
93 | {
94 | "data": {
95 | "text/plain": [
96 | " Min. 1st Qu. Median Mean 3rd Qu. Max. \n",
97 | " 0 229 411 539 672 2820 "
98 | ]
99 | },
100 | "execution_count": 72,
101 | "metadata": {},
102 | "output_type": "execute_result"
103 | }
104 | ],
105 | "source": [
106 | "dim(ps)\n",
107 | "summary(ps$likes)\n",
108 | "summary(ps$tenure)"
109 | ]
110 | },
111 | {
112 | "cell_type": "markdown",
113 | "metadata": {},
114 | "source": [
115 | "# Simulate estimates under the sharp null\n",
116 | "Simulation that computes simple difference in means and regression adjustment estimators. We use two regression adjustments: one with a single linear term and one with an interaction term with the covariate centered. See Lin (2013) in Annals of Applied Statistics."
117 | ]
118 | },
119 | {
120 | "cell_type": "code",
121 | "execution_count": 73,
122 | "metadata": {
123 | "collapsed": false
124 | },
125 | "outputs": [],
126 | "source": [
127 | "do.sim <- function(x, y, nt = round(n / 2)) {\n",
128 | " n <- length(x)\n",
129 | " \n",
130 | " z.c <- rep(0, n)\n",
131 | " z.c[sample.int(n, nt)] <- 1\n",
132 | " \n",
133 | " tau.sd <- unname(coef(lm(y ~ z.c))[2]) # unadjusted\n",
134 | " tau.adj <- unname(coef(lm(y ~ z.c + x))[2]) # regression adjustment\n",
135 | " \n",
136 | " # interaction w centered covariate:\n",
137 | " x0 <- x - mean(x)\n",
138 | " tau.adj.int <- unname(coef(lm(y ~ z.c * x0))[2])\n",
139 | " \n",
140 | " c(th.sd = tau.sd, th.adj = tau.adj, th.adj.int = tau.adj.int)\n",
141 | "}"
142 | ]
143 | },
144 | {
145 | "cell_type": "markdown",
146 | "metadata": {},
147 | "source": [
148 | "Do a single simulation:"
149 | ]
150 | },
151 | {
152 | "cell_type": "code",
153 | "execution_count": 66,
154 | "metadata": {
155 | "collapsed": false,
156 | "scrolled": true
157 | },
158 | "outputs": [
159 | {
160 | "data": {
161 | "text/html": [
162 | "\n",
163 | "\t- th.sd
\n",
164 | "\t\t- 0.0513337038631001
\n",
165 | "\t- th.adj
\n",
166 | "\t\t- 0.0596912108653627
\n",
167 | "\t- th.adj.int
\n",
168 | "\t\t- 0.058737335222844
\n",
169 | "
\n"
170 | ],
171 | "text/latex": [
172 | "\\begin{description*}\n",
173 | "\\item[th.sd] 0.0513337038631001\n",
174 | "\\item[th.adj] 0.0596912108653627\n",
175 | "\\item[th.adj.int] 0.058737335222844\n",
176 | "\\end{description*}\n"
177 | ],
178 | "text/markdown": [
179 | "th.sd\n",
180 | ": 0.0513337038631001th.adj\n",
181 | ": 0.0596912108653627th.adj.int\n",
182 | ": 0.058737335222844\n",
183 | "\n"
184 | ],
185 | "text/plain": [
186 | " th.sd th.adj th.adj.int \n",
187 | " 0.051 0.060 0.059 "
188 | ]
189 | },
190 | "execution_count": 66,
191 | "metadata": {},
192 | "output_type": "execute_result"
193 | }
194 | ],
195 | "source": [
196 | "with(ps, do.sim(tenure, log1p(likes), nt = 2000))"
197 | ]
198 | },
199 | {
200 | "cell_type": "markdown",
201 | "metadata": {},
202 | "source": [
203 | "The estimates, as we should expect, are quite similar. But we really want to compare their variance and error across many possible randomizations.\n",
204 | "\n",
205 | "Do many simulations:"
206 | ]
207 | },
208 | {
209 | "cell_type": "code",
210 | "execution_count": 59,
211 | "metadata": {
212 | "collapsed": false
213 | },
214 | "outputs": [],
215 | "source": [
216 | "sr <- foreach(i = 1:1e3, .combine = rbind) %dopar%\n",
217 | " with(ps, do.sim(tenure, log1p(likes), nt = 2000))"
218 | ]
219 | },
220 | {
221 | "cell_type": "code",
222 | "execution_count": 60,
223 | "metadata": {
224 | "collapsed": false
225 | },
226 | "outputs": [
227 | {
228 | "data": {
229 | "text/plain": [
230 | " th.sd th.adj th.adj.int \n",
231 | " Min. :-0.182 Min. :-0.182 Min. :-0.184 \n",
232 | " 1st Qu.:-0.039 1st Qu.:-0.038 1st Qu.:-0.038 \n",
233 | " Median : 0.000 Median : 0.000 Median : 0.000 \n",
234 | " Mean : 0.000 Mean : 0.000 Mean : 0.000 \n",
235 | " 3rd Qu.: 0.038 3rd Qu.: 0.036 3rd Qu.: 0.036 \n",
236 | " Max. : 0.191 Max. : 0.190 Max. : 0.190 "
237 | ]
238 | },
239 | "execution_count": 60,
240 | "metadata": {},
241 | "output_type": "execute_result"
242 | }
243 | ],
244 | "source": [
245 | "summary(sr)"
246 | ]
247 | },
248 | {
249 | "cell_type": "code",
250 | "execution_count": 61,
251 | "metadata": {
252 | "collapsed": false
253 | },
254 | "outputs": [
255 | {
256 | "data": {
257 | "text/html": [
258 | "\n",
259 | "\t- th.sd
\n",
260 | "\t\t- 0.0580209274316362
\n",
261 | "\t- th.adj
\n",
262 | "\t\t- 0.0573698971473993
\n",
263 | "\t- th.adj.int
\n",
264 | "\t\t- 0.0574078054448429
\n",
265 | "
\n"
266 | ],
267 | "text/latex": [
268 | "\\begin{description*}\n",
269 | "\\item[th.sd] 0.0580209274316362\n",
270 | "\\item[th.adj] 0.0573698971473993\n",
271 | "\\item[th.adj.int] 0.0574078054448429\n",
272 | "\\end{description*}\n"
273 | ],
274 | "text/markdown": [
275 | "th.sd\n",
276 | ": 0.0580209274316362th.adj\n",
277 | ": 0.0573698971473993th.adj.int\n",
278 | ": 0.0574078054448429\n",
279 | "\n"
280 | ],
281 | "text/plain": [
282 | " th.sd th.adj th.adj.int \n",
283 | " 0.058 0.057 0.057 "
284 | ]
285 | },
286 | "execution_count": 61,
287 | "metadata": {},
288 | "output_type": "execute_result"
289 | }
290 | ],
291 | "source": [
292 | "apply(sr, 2, sd)"
293 | ]
294 | },
295 | {
296 | "cell_type": "code",
297 | "execution_count": 62,
298 | "metadata": {
299 | "collapsed": false
300 | },
301 | "outputs": [
302 | {
303 | "data": {
304 | "text/html": [
305 | "\n",
306 | "\t- th.sd
\n",
307 | "\t\t- 0.000182805467572636
\n",
308 | "\t- th.adj
\n",
309 | "\t\t- 0.000250078723388885
\n",
310 | "\t- th.adj.int
\n",
311 | "\t\t- 0.000304896568073275
\n",
312 | "
\n"
313 | ],
314 | "text/latex": [
315 | "\\begin{description*}\n",
316 | "\\item[th.sd] 0.000182805467572636\n",
317 | "\\item[th.adj] 0.000250078723388885\n",
318 | "\\item[th.adj.int] 0.000304896568073275\n",
319 | "\\end{description*}\n"
320 | ],
321 | "text/markdown": [
322 | "th.sd\n",
323 | ": 0.000182805467572636th.adj\n",
324 | ": 0.000250078723388885th.adj.int\n",
325 | ": 0.000304896568073275\n",
326 | "\n"
327 | ],
328 | "text/plain": [
329 | " th.sd th.adj th.adj.int \n",
330 | " 0.00018 0.00025 0.00030 "
331 | ]
332 | },
333 | "execution_count": 62,
334 | "metadata": {},
335 | "output_type": "execute_result"
336 | }
337 | ],
338 | "source": [
339 | "apply(sr, 2, mean)"
340 | ]
341 | },
342 | {
343 | "cell_type": "code",
344 | "execution_count": 63,
345 | "metadata": {
346 | "collapsed": false
347 | },
348 | "outputs": [
349 | {
350 | "data": {
351 | "text/html": [
352 | "\n",
353 | "\t- th.sd
\n",
354 | "\t\t- 0.0579921978359688
\n",
355 | "\t- th.adj
\n",
356 | "\t\t- 0.0573417503480001
\n",
357 | "\t- th.adj.int
\n",
358 | "\t\t- 0.0573799044246692
\n",
359 | "
\n"
360 | ],
361 | "text/latex": [
362 | "\\begin{description*}\n",
363 | "\\item[th.sd] 0.0579921978359688\n",
364 | "\\item[th.adj] 0.0573417503480001\n",
365 | "\\item[th.adj.int] 0.0573799044246692\n",
366 | "\\end{description*}\n"
367 | ],
368 | "text/markdown": [
369 | "th.sd\n",
370 | ": 0.0579921978359688th.adj\n",
371 | ": 0.0573417503480001th.adj.int\n",
372 | ": 0.0573799044246692\n",
373 | "\n"
374 | ],
375 | "text/plain": [
376 | " th.sd th.adj th.adj.int \n",
377 | " 0.058 0.057 0.057 "
378 | ]
379 | },
380 | "execution_count": 63,
381 | "metadata": {},
382 | "output_type": "execute_result"
383 | }
384 | ],
385 | "source": [
386 | "rmses <- sqrt(apply(sr, 2, function(x) mean(x^2)))\n",
387 | "rmses"
388 | ]
389 | },
390 | {
391 | "cell_type": "markdown",
392 | "metadata": {},
393 | "source": [
394 | "Reduction in root mean squared error for tau:"
395 | ]
396 | },
397 | {
398 | "cell_type": "code",
399 | "execution_count": 64,
400 | "metadata": {
401 | "collapsed": false
402 | },
403 | "outputs": [
404 | {
405 | "data": {
406 | "text/html": [
407 | "\n",
408 | "\t- th.sd
\n",
409 | "\t\t- 0
\n",
410 | "\t- th.adj
\n",
411 | "\t\t- 0.0112161206548594
\n",
412 | "\t- th.adj.int
\n",
413 | "\t\t- 0.0105582032436756
\n",
414 | "
\n"
415 | ],
416 | "text/latex": [
417 | "\\begin{description*}\n",
418 | "\\item[th.sd] 0\n",
419 | "\\item[th.adj] 0.0112161206548594\n",
420 | "\\item[th.adj.int] 0.0105582032436756\n",
421 | "\\end{description*}\n"
422 | ],
423 | "text/markdown": [
424 | "th.sd\n",
425 | ": 0th.adj\n",
426 | ": 0.0112161206548594th.adj.int\n",
427 | ": 0.0105582032436756\n",
428 | "\n"
429 | ],
430 | "text/plain": [
431 | " th.sd th.adj th.adj.int \n",
432 | " 0.000 0.011 0.011 "
433 | ]
434 | },
435 | "execution_count": 64,
436 | "metadata": {},
437 | "output_type": "execute_result"
438 | }
439 | ],
440 | "source": [
441 | "1 - rmses / rmses[1]"
442 | ]
443 | },
444 | {
445 | "cell_type": "markdown",
446 | "metadata": {},
447 | "source": [
448 | "This isn't much reduction. That doesn't mean there isn't clear evidence of tenure being related to likes; we can clearly detect a relationships, but mainly because we have a large N, not because there is a strong association:"
449 | ]
450 | },
451 | {
452 | "cell_type": "code",
453 | "execution_count": 65,
454 | "metadata": {
455 | "collapsed": false
456 | },
457 | "outputs": [
458 | {
459 | "data": {
460 | "text/plain": [
461 | "\n",
462 | "Call:\n",
463 | "lm(formula = log1p(likes) ~ tenure, data = ps)\n",
464 | "\n",
465 | "Residuals:\n",
466 | " Min 1Q Median 3Q Max \n",
467 | "-3.925 -2.120 -0.217 1.659 6.745 \n",
468 | "\n",
469 | "Coefficients:\n",
470 | " Estimate Std. Error t value Pr(>|t|) \n",
471 | "(Intercept) 2.233249 0.033869 65.9 <2e-16 ***\n",
472 | "tenure 0.000795 0.000048 16.6 <2e-16 ***\n",
473 | "---\n",
474 | "Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1\n",
475 | "\n",
476 | "Residual standard error: 2.2 on 9998 degrees of freedom\n",
477 | "Multiple R-squared: 0.0268,\tAdjusted R-squared: 0.0267 \n",
478 | "F-statistic: 275 on 1 and 9998 DF, p-value: <2e-16\n"
479 | ]
480 | },
481 | "execution_count": 65,
482 | "metadata": {},
483 | "output_type": "execute_result"
484 | }
485 | ],
486 | "source": [
487 | "summary(lm(log1p(likes) ~ tenure, data = ps))"
488 | ]
489 | },
490 | {
491 | "cell_type": "code",
492 | "execution_count": 68,
493 | "metadata": {
494 | "collapsed": false
495 | },
496 | "outputs": [
497 | {
498 | "name": "stderr",
499 | "output_type": "stream",
500 | "text": [
501 | "geom_smooth: method=\"auto\" and size of largest group is >=1000, so using gam with formula: y ~ s(x, bs = \"cs\"). Use 'method = x' to change the smoothing method.\n"
502 | ]
503 | },
504 | {
505 | "data": {
506 | "image/png": "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CugggTE7CZAACZAACZAACZCAdwKw/66rq/N+MoyOUkCHUWOyKiRAAiRAAiRAAiQwlQQaGhokEiZRUkBPZS/js0mABEiABEiABEggTAhgLgFsnyMhUUBHQiuzjiRAAiRAAiRAAiRgMgGYbhieSEx+1JTfngJ6ypuABSABEiABEiABEiABZxMYGBiQ5uZmZ1ciiNJTQAcBi1lJgARIgARIgARIgAQ8CWD0Ge7pIiVRQEdKS7OeJEACJEACJEACJGACgd7eXkHglEhKFNCR1NqsKwmQAAmQAAmQAAmEmEBtbW2I72j/21FA27+NWEISIAESIAESIAESsCWBrq4u6ejosGXZzCwUBbSZdHlvEiABEiABEiABEghjAtXV1WFcO99Vo4D2zYZnSIAESIAESIAESIAEfBCA3TPsnyMxUUBHYquzziRAAiRAAiRAAiQwCQLw9xyJts8GMgpogwTXJEACJEACJEACJEACARFoamqSwcHBgPKGYyYK6HBsVdaJBEiABEiABEiABEwigJDd8PscyYkCOpJbn3UnARIgARIgARIggSAJRFLIbl9oKKB9keFxEiABEiABEiABEiABNwL9/f0C841ITxTQkd4DWH8SIAESIAESIAESCJBAJE8cdEVEAe1Kg9skQAIkQAIkQAIkQAJeCfT09EhbW5vXc5F2kAI60lqc9SUBEiABEiABEiCBAyAQqUFTvKGigPZGhcdIgARIgARIgARIgATGCWDkubu7e3w/0I0PtqUFmtVR+WIdVVoWlgRIgARIgARIgARIwFICo6OjUlNTE/Qz//Vavjz8fLEMyIh85aKgL7f1BRyBtnXzsHAkQAIkQAIkQAIkMLUEGhoaZGBgIKhCbNyeKo+8UCQZqYNy9rKgLnVEZgpoRzQTC0kCJEACJEACJEAC1hNAtMH6+vqgHtzQGi93PlIh0VEi37l0t+RlB3W5IzJTQDuimVhIEiABEiABEiABErCeANzWjYyMBPzggcEoue1vFdLVGytXnLlPZlcEbzcd8MOmMCMF9BTC56NJgARIgARIgARIwK4EMGmwpaUlqOL98YlSqapNliULm+W0o5uDutZJmSmgndRaLCsJkAAJkAAJkAAJWEQgWLd1z7yRK29syJbp03rkqrP3WVTKqXkMBfTUcOdTSYAESIAESIAESMC2BDDyjMApgaYtO1Pkb89Ok7SU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IIDewxWwp0+vIep69eq1p7PB+RFAAAEEEEAAgdAIEECHpqoKm9Hq6mo/q2Dnzp0Le2COhgACCCCAAAIIRFyAADriFZyueJqKW0PU1dTUpFvNMgQQQAABBBBAAIFmBAigm8GJ4qpu3bpZv379GKIuipVLmRBAAAEEEECgJAIE0CVh3vMn0RB1++yzj3Xv3n3PZ4YcIIAAAggggAACIRYggA5x5eWadc0mqC4bml2QhAACCCCAAAIIINA6AQLo1vmV/d66SXDAgAHWti1VXfaVRQYRQAABBBBAIBQCRFWhqKb8Mqnh6RoaGujvnB8feyGAAAIIIIAAAmkFCKDTsoR7oYao042CdXV14S4IuUcAAQQQQAABBMpQgAC6DCulNVnSlNzq71xbW9uaw7AvAggggAACCCCAQAYBAugMMGFczJTcYaw18owAAggggAACYRMggA5bjWXIL1NyZ4BhMQIIIIAAAgggUGABAugCg5b6cBpdo3///talS5dSn5rzIYAAAggggAACFSlAAB3iamdK7hBXHllHAAEEEEAAgdAKhCKAfuqpp+zxxx+3/fff30aPHm1t2rQJLXihMq4puTWzIBaFEuU4CCCAAAIIIIBAbgJlHYlu3brVB80TJ060hQsX2rhx4+yUU06xnTt35la6iG7Vt29f322D4DmiFUyxEEAAAQQQQKCsBco6gJ4+fbopiF65cqU98MADtmzZMrvvvvts3rx5ZY1arMypv/OQIUOsvr6+WKfguAgggAACCCCAAAJZBMo2gI7FYjZz5kw788wzTcOzKY0YMcImTJhgs2bNylKs6K3u0KGDDRs2zDp16hS9wlEiBBBAAAEEEEAgRAJl2wd67dq1tm3bNjv44IOTOPX63nvvTVoWvNixY4fNmTMneNnkUUF5GFP37t19f+eqqqowZp88I4AAAggggAACkRIo2wD61Vdf9dA9evRIAtfNc1u2bLFNmzZZ586dk9apu8eUKVOSliW+mDp1qr399tuJi4r6XH21laft27fndR71ce7Zs6fV1NTYunXr8jpGOe+kLzTBlxr6c2euKX0x/PDDD40vUOmNgutIPhilN9JSvQ+V8v0vc07Kcw3XUfZ6kZE+17iOMlvt3r3br+T9KLORPs+UFMsVKwX1UKzj67hlG0C/8847vtypXRY6duzol2/evLlJAK1uDgsWLPDr0/2z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F17wM669/vrr1tjYaEcccUTG6YrVwvvYY4/ZI488Yv3797cvfOELpkmUHn30UTv22GOtb9++PlOLFi3yraXdu3e3e+65xy677DJbvXp1kwyrhVozmR566KG2995728KFC/12Y8aMsaOOOsrat2+ftM+LL75o9957r59aOVihLiIK1vW4c+dOu/nmm+PlCLbRuR9++GHT/gMHDvTTe48cOTJY7R9VhvXr19tJJ51ky5cv92XSjHSaulktv3vttVd8+z/96U/2xhtv2KRJk5JagtU3W1M+y0b5V3r33Xd9uUaNGmWbN2+2O++80zRVtGa169ixo98ml/xpQ81gpq4cmib45JNP9vvyDwIIIFASAfdmT0IAAQQqTuCzn/1szL3Jxv7zn//Ey37hhRfGXDeIWFVVVax3797+sU2bNjEtd8FofDs9cd0wYnV1df4YPXr0iLVr1y7WtWvX2Nlnn+2XuaA5vv0DDzwQmzZtWswFj36ZCxhjnTp1iq8Pnvz973/3+06ZMiXWp0+fWOfOnWPDhw/3+XABtT9nsK0ev/e97/ntV61aFV/80ksv+e1VNv2pLKecckp8vQs2Y64F3C93M8r58qqMF198ccxNtxvfznUB8QY///nP/bZuRlV/PB1T+Q/Koh3SWWr5e++95/c54YQT9NIn12Lsl+l8KlOQz6VLl/r1uebv/4fzrjrGs88+GyziEQEEECi6gFpLSAgggEDFCaQGfbNnz/bBnJavXbvWe7gW2Nj48eP9cgV2Qfrggw9iruUz5lqUYw899JBfrED8W9/6VjwgdDf1BZs3ecwWQCsgdK25se3bt/t9n3rqqVh9fb0/p84dpOOOO84HucHrxMchQ4bEFCAnJte67fPnWtVjrsXYr3It1THXL9svnzdvXnxzBdAKvnXeG2+80QfDb731Vsx1FfHb/uhHP4pvm2oZrGgugFZA/qUvfSl23333xQLbluQvOIdrSff5mTt3brCIRwQQQKDoAgTQRSfmBAggUI4CiUGfWl7VmtytW7fYhg0bkrLruhnEGhoafIuxniv96le/8kGbAsvE5IbEi7l+zn5dawJotX5v3bo18dCxmTNn+uPOmjUrvlzbHXLIIfHXiU/SBdAK+hWcqxU4MalcrnuID8aDVmgF0Nr2pptuStw05rq4+OVaH6REy2CZHpsLoF33lpjrApO4uf+CkGv+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",
507 | "image/svg+xml": [
508 | "\n",
509 | "\n"
816 | ],
817 | "text/plain": [
818 | "plot without title"
819 | ]
820 | },
821 | "metadata": {
822 | "image/svg+xml": {
823 | "isolated": true
824 | }
825 | },
826 | "output_type": "display_data"
827 | }
828 | ],
829 | "source": [
830 | "ggplot(\n",
831 | " aes(x = log1p(tenure), y = log1p(likes)),\n",
832 | " data = ps\n",
833 | ") + \n",
834 | "geom_smooth()"
835 | ]
836 | },
837 | {
838 | "cell_type": "markdown",
839 | "metadata": {},
840 | "source": [
841 | "## Exercises\n",
842 | "Compare regression adjustment with post-stratification and blocking (ie pre-stratification).\n",
843 | "\n",
844 | "Conduct similar analysis of another data set."
845 | ]
846 | },
847 | {
848 | "cell_type": "code",
849 | "execution_count": null,
850 | "metadata": {
851 | "collapsed": true
852 | },
853 | "outputs": [],
854 | "source": []
855 | }
856 | ],
857 | "metadata": {
858 | "kernelspec": {
859 | "display_name": "R",
860 | "language": "R",
861 | "name": "ir"
862 | },
863 | "language_info": {
864 | "codemirror_mode": "r",
865 | "file_extension": ".r",
866 | "mimetype": "text/x-r-source",
867 | "name": "R",
868 | "pygments_lexer": "r",
869 | "version": "3.2.2"
870 | }
871 | },
872 | "nbformat": 4,
873 | "nbformat_minor": 0
874 | }
875 |
--------------------------------------------------------------------------------
/cai_data/cai.adjacency.RData:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/deaneckles/randomization_inference/97b851c079853b1d546acc68db7c5fd45cc82e3e/cai_data/cai.adjacency.RData
--------------------------------------------------------------------------------
/prep_data.R:
--------------------------------------------------------------------------------
1 | library(igraph)
2 | library(foreign)
3 | library(Matrix)
4 | library(lfe)
5 | library(dplyr)
6 | library(foreach)
7 |
8 | cain.all <- read.dta("cai_data/0422allinforawnet.dta")
9 | cais.all <- read.dta("cai_data/0422survey.dta")
10 |
11 | cai.all <- read.csv("cai_data/0422analysis.csv")
12 | cai.all$id <- as.character(cai.all$id)
13 |
14 | cain.all <- subset(cain.all, !is.na(network_id) & network_id != 99)
15 |
16 | cain <- cain.all
17 |
18 | cain.el <- apply(as.matrix(cain[, c("id", "network_id")]), 2, as.character)
19 | cain.el <- cain.el[!is.na(cain.el[, 2]), ]
20 |
21 | ids.in.net <- unique(c(cain.el[, 1], cain.el[, 2]))
22 | egos.in.net <- unique(cain.el[, 1])
23 | ids.in.survey <- unique(cai.all$id)
24 | ids.in.net.only <- ids.in.net[!ids.in.net %in% ids.in.survey]
25 | egos.in.net.only <- egos.in.net[!egos.in.net %in% ids.in.survey]
26 | ids.in.survey.only <- ids.in.survey[!ids.in.survey %in% ids.in.net]
27 |
28 | cai <- subset(cai.all, id %in% egos.in.net)
29 |
30 | g <- graph_from_edgelist(cain.el, directed = TRUE)
31 |
32 | cain.peer.summary <- cain[!duplicated(cain$network_id),] %>%
33 | select(
34 | id = network_id,
35 | village = network_village,
36 | address = network_address,
37 | takeup_survey, delay, intensive, understanding
38 | ) %>%
39 | mutate(id = as.character(id)) %>%
40 | filter(!is.na(intensive))
41 |
42 | peers.in.net <- unique(cain.peer.summary$id)
43 | ids.in.survey <- unique(cai.all$id)
44 | peers.in.net.only <- peers.in.net[!peers.in.net %in% ids.in.survey]
45 |
46 | caic <- bind_rows(
47 | cai,
48 | cain.peer.summary[cain.peer.summary$id %in% peers.in.net.only,]
49 | )
50 |
51 | head(vertex_attr(g, 'name'))
52 | tmp.name <- vertex_attr(g, 'name')
53 | caic$name <- caic$id
54 | vertex_attr(g, index = as.character(caic$id)) <- as.list(caic)
55 | vertex_attr(g, 'name') <- tmp.name
56 | head(vertex_attr(g, 'id'))
57 | head(vertex_attr(g, 'name'))
58 | head(vertex_attr(g, 'village'))
59 |
60 | g1 <- induced_subgraph(g, V(g)[which(!is.na(V(g)$intensive))])
61 |
62 | # make adjacency matrix
63 | A <- as_adj(g1, sparse = TRUE, names = T)
64 | A.df <- as.data.frame(vertex_attr(g1))
65 |
66 | A.df$intensive.0 <- ifelse(is.na(A.df$intensive), 0, A.df$intensive)
67 | A.df$delay.0 <- ifelse(is.na(A.df$delay), 0, A.df$delay)
68 | A.df$intensive.peers <- as.vector(A %*% A.df$intensive.0)
69 | A.df$intensive.nond.peers <- as.vector(A %*% (A.df$intensive.0 * (1-A.df$delay.0)))
70 | A.df$default.peers <- as.vector(A %*% A.df$default)
71 | A.df$n.peers <- rowSums(A)
72 | A.df$n.elig.peers <- as.vector(A %*% !is.na(A.df$intensive))
73 |
74 | # compare my counts with the data
75 | with(A.df, table(
76 | round(network_obs * network_rate_preintensive),
77 | intensive.nond.peers,
78 | useNA = "ifany"
79 | ))
80 |
81 | with(A.df, table(
82 | network_obs,
83 | n.peers,
84 | useNA = "ifany"
85 | ))
86 |
87 | with(A.df, table(
88 | n.peers,
89 | n.elig.peers
90 | ))
91 |
92 | tmp <- merge(
93 | cain.s, A.df %>% select(id, intensive.nond.peers, network_obs, network_rate_preintensive))
94 |
95 | with(tmp, table(
96 | round(network_obs * network_rate_preintensive),
97 | n.intensive.pre,
98 | useNA = "ifany"
99 | ))
100 |
101 | ###
102 | # write simplified data
103 | A.df.to.write <- A.df %>%
104 | select(
105 | id, address, region, village, takeup_survey, age, male,
106 | delay, intensive, info_none, intensive.nondelay.peers = intensive.nond.peers, n.peers
107 | )
108 |
109 | write.table(
110 | A.df.to.write,
111 | file = "cai_data/cai.main.tsv",
112 | row.names = TRUE,
113 | sep = "\t"
114 | )
115 |
116 | save(A, file = "cai_data/cai.adjacency.RData")
117 |
--------------------------------------------------------------------------------