Diff of /talk/GrahamGroup.tex [000000] .. [171cba]

Switch to unified view

a b/talk/GrahamGroup.tex
1
2
% Default to the notebook output style
3
4
    
5
6
7
% Inherit from the specified cell style.
8
9
10
11
12
    
13
\documentclass{article}
14
15
    
16
    
17
    \usepackage{graphicx} % Used to insert images
18
    \usepackage{adjustbox} % Used to constrain images to a maximum size 
19
    \usepackage{color} % Allow colors to be defined
20
    \usepackage{enumerate} % Needed for markdown enumerations to work
21
    \usepackage{geometry} % Used to adjust the document margins
22
    \usepackage{amsmath} % Equations
23
    \usepackage{amssymb} % Equations
24
    \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support
25
    \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document
26
    \usepackage{fancyvrb} % verbatim replacement that allows latex
27
    \usepackage{grffile} % extends the file name processing of package graphics 
28
                         % to support a larger range 
29
    % The hyperref package gives us a pdf with properly built
30
    % internal navigation ('pdf bookmarks' for the table of contents,
31
    % internal cross-reference links, web links for URLs, etc.)
32
    \usepackage{hyperref}
33
    \usepackage{longtable} % longtable support required by pandoc >1.10
34
    \usepackage{booktabs}  % table support for pandoc > 1.12.2
35
    
36
37
    
38
    
39
    \definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
40
    \definecolor{darkorange}{rgb}{.71,0.21,0.01}
41
    \definecolor{darkgreen}{rgb}{.12,.54,.11}
42
    \definecolor{myteal}{rgb}{.26, .44, .56}
43
    \definecolor{gray}{gray}{0.45}
44
    \definecolor{lightgray}{gray}{.95}
45
    \definecolor{mediumgray}{gray}{.8}
46
    \definecolor{inputbackground}{rgb}{.95, .95, .85}
47
    \definecolor{outputbackground}{rgb}{.95, .95, .95}
48
    \definecolor{traceback}{rgb}{1, .95, .95}
49
    % ansi colors
50
    \definecolor{red}{rgb}{.6,0,0}
51
    \definecolor{green}{rgb}{0,.65,0}
52
    \definecolor{brown}{rgb}{0.6,0.6,0}
53
    \definecolor{blue}{rgb}{0,.145,.698}
54
    \definecolor{purple}{rgb}{.698,.145,.698}
55
    \definecolor{cyan}{rgb}{0,.698,.698}
56
    \definecolor{lightgray}{gray}{0.5}
57
    
58
    % bright ansi colors
59
    \definecolor{darkgray}{gray}{0.25}
60
    \definecolor{lightred}{rgb}{1.0,0.39,0.28}
61
    \definecolor{lightgreen}{rgb}{0.48,0.99,0.0}
62
    \definecolor{lightblue}{rgb}{0.53,0.81,0.92}
63
    \definecolor{lightpurple}{rgb}{0.87,0.63,0.87}
64
    \definecolor{lightcyan}{rgb}{0.5,1.0,0.83}
65
    
66
    % commands and environments needed by pandoc snippets
67
    % extracted from the output of `pandoc -s`
68
    \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
69
    % Add ',fontsize=\small' for more characters per line
70
    \newenvironment{Shaded}{}{}
71
    \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}}
72
    \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}}
73
    \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
74
    \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
75
    \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
76
    \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
77
    \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
78
    \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}}
79
    \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}}
80
    \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
81
    \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}}
82
    \newcommand{\RegionMarkerTok}[1]{{#1}}
83
    \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
84
    \newcommand{\NormalTok}[1]{{#1}}
85
    
86
    % Define a nice break command that doesn't care if a line doesn't already
87
    % exist.
88
    \def\br{\hspace*{\fill} \\* }
89
    % Math Jax compatability definitions
90
    \def\gt{>}
91
    \def\lt{<}
92
    % Document parameters
93
    \title{GrahamGroup}
94
    
95
    
96
    
97
98
    % Pygments definitions
99
    
100
\makeatletter
101
\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax%
102
    \let\PY@ul=\relax \let\PY@tc=\relax%
103
    \let\PY@bc=\relax \let\PY@ff=\relax}
104
\def\PY@tok#1{\csname PY@tok@#1\endcsname}
105
\def\PY@toks#1+{\ifx\relax#1\empty\else%
106
    \PY@tok{#1}\expandafter\PY@toks\fi}
107
\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{%
108
    \PY@it{\PY@bf{\PY@ff{#1}}}}}}}
109
\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}}
110
111
\expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
112
\expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
113
\expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
114
\expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf}
115
\expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
116
\expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
117
\expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
118
\expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
119
\expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
120
\expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}}
121
\expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit}
122
\expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
123
\expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
124
\expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
125
\expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}}
126
\expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
127
\expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
128
\expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}}
129
\expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}}
130
\expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
131
\expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}}
132
\expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}}
133
\expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
134
\expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
135
\expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
136
\expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}}
137
\expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
138
\expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}}
139
\expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
140
\expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
141
\expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
142
\expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
143
\expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
144
\expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
145
\expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
146
\expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
147
\expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
148
\expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
149
\expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
150
\expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
151
\expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
152
\expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}
153
\expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
154
\expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
155
\expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}}
156
\expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
157
\expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
158
\expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
159
\expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
160
\expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
161
\expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
162
\expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
163
\expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
164
\expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
165
\expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}}
166
\expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
167
\expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
168
\expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
169
\expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}}
170
\expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
171
172
\def\PYZbs{\char`\\}
173
\def\PYZus{\char`\_}
174
\def\PYZob{\char`\{}
175
\def\PYZcb{\char`\}}
176
\def\PYZca{\char`\^}
177
\def\PYZam{\char`\&}
178
\def\PYZlt{\char`\<}
179
\def\PYZgt{\char`\>}
180
\def\PYZsh{\char`\#}
181
\def\PYZpc{\char`\%}
182
\def\PYZdl{\char`\$}
183
\def\PYZhy{\char`\-}
184
\def\PYZsq{\char`\'}
185
\def\PYZdq{\char`\"}
186
\def\PYZti{\char`\~}
187
% for compatibility with earlier versions
188
\def\PYZat{@}
189
\def\PYZlb{[}
190
\def\PYZrb{]}
191
\makeatother
192
193
194
    % Exact colors from NB
195
    \definecolor{incolor}{rgb}{0.0, 0.0, 0.5}
196
    \definecolor{outcolor}{rgb}{0.545, 0.0, 0.0}
197
198
199
200
    
201
    % Prevent overflowing lines due to hard-to-break entities
202
    \sloppy 
203
    % Setup hyperref package
204
    \hypersetup{
205
      breaklinks=true,  % so long urls are correctly broken across lines
206
      colorlinks=true,
207
      urlcolor=blue,
208
      linkcolor=darkorange,
209
      citecolor=darkgreen,
210
      }
211
    % Slightly bigger margins than the latex defaults
212
    
213
    \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}
214
    
215
    
216
217
    \begin{document}
218
    
219
    
220
    \maketitle
221
    
222
    
223
224
    
225
226
    \section{Robust Extraction of Quantitative Information from Histology Images}
227
228
229
230
    \paragraph{Quentin Caudron Romain Garnier \emph{with Bryan Grenfell and Andrea
231
Graham}}
232
233
234
235
    \subsubsection{Outline}
236
237
238
    \begin{itemize}
239
\itemsep1pt\parskip0pt\parsep0pt
240
\item
241
  Image processing
242
\item
243
  Extracted measures
244
\item
245
  Preliminary analysis
246
\item
247
  Future directions
248
\end{itemize}
249
250
    \begin{enumerate}
251
\def\labelenumi{\arabic{enumi}.}
252
\setcounter{enumi}{3}
253
\itemsep1pt\parskip0pt\parsep0pt
254
\item
255
  Age as random effect \textless{}---
256
\end{enumerate}
257
258
{[}``interface\_hepatitis'', ``confluent\_necrosis'',
259
``portal\_inflammation'', ``ln\_ap\_ri''{]}
260
261
    \begin{Verbatim}[commandchars=\\\{\}]
262
{\color{incolor}In [{\color{incolor}3}]:} \PY{k}{def} \PY{n+nf}{normalise}\PY{p}{(}\PY{n}{df}\PY{p}{,} \PY{n}{skip} \PY{o}{=} \PY{p}{[}\PY{p}{]}\PY{p}{)} \PY{p}{:}
263
            \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n}{df}\PY{o}{.}\PY{n}{columns} \PY{p}{:}
264
                \PY{k}{if} \PY{n}{i} \PY{o+ow}{not} \PY{o+ow}{in} \PY{n}{skip} \PY{p}{:}
265
                    \PY{n}{df}\PY{p}{[}\PY{n}{i}\PY{p}{]} \PY{o}{\PYZhy{}}\PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{o}{.}\PY{n}{mean}\PY{p}{(}\PY{p}{)}
266
                    \PY{n}{df}\PY{p}{[}\PY{n}{i}\PY{p}{]} \PY{o}{/}\PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{o}{.}\PY{n}{std}\PY{p}{(}\PY{p}{)}
267
            \PY{k}{return} \PY{n}{df}
268
        
269
        
270
        
271
        
272
        
273
        
274
        \PY{k}{def} \PY{n+nf}{rescale}\PY{p}{(}\PY{n}{df}\PY{p}{,} \PY{n}{skip} \PY{o}{=} \PY{p}{[}\PY{p}{]}\PY{p}{)} \PY{p}{:}
275
            \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n}{df}\PY{o}{.}\PY{n}{columns} \PY{p}{:}
276
                \PY{k}{if} \PY{n}{i} \PY{o+ow}{not} \PY{o+ow}{in} \PY{n}{skip} \PY{p}{:}
277
                    \PY{n}{df}\PY{p}{[}\PY{n}{i}\PY{p}{]} \PY{o}{\PYZhy{}}\PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{o}{.}\PY{n}{min}\PY{p}{(}\PY{p}{)}
278
                    \PY{n}{df}\PY{p}{[}\PY{n}{i}\PY{p}{]} \PY{o}{/}\PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{o}{.}\PY{n}{max}\PY{p}{(}\PY{p}{)}
279
            \PY{k}{return} \PY{n}{df}
280
        
281
        
282
        
283
        \PY{c}{\PYZsh{} Remove a layer from a list}
284
        \PY{k}{def} \PY{n+nf}{delayer}\PY{p}{(}\PY{n}{m}\PY{p}{)} \PY{p}{:}
285
            \PY{n}{out} \PY{o}{=} \PY{p}{[}\PY{p}{]}
286
            \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n}{m} \PY{p}{:}
287
                \PY{k}{if} \PY{n+nb}{isinstance}\PY{p}{(}\PY{n}{i}\PY{p}{,} \PY{n+nb}{list}\PY{p}{)} \PY{p}{:}
288
                    \PY{k}{for} \PY{n}{j} \PY{o+ow}{in} \PY{n}{i} \PY{p}{:}
289
                        \PY{n}{out}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{j}\PY{p}{)}
290
                \PY{k}{else} \PY{p}{:}
291
                    \PY{n}{out}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{i}\PY{p}{)}
292
            \PY{k}{return} \PY{n}{out}
293
        
294
        
295
        
296
        
297
        
298
        
299
        
300
        \PY{c}{\PYZsh{} Remove all layers from a list}
301
        \PY{k}{def} \PY{n+nf}{flatten}\PY{p}{(}\PY{n}{m}\PY{p}{)} \PY{p}{:}
302
            \PY{n}{out} \PY{o}{=} \PY{n}{m}\PY{p}{[}\PY{p}{:}\PY{p}{]}
303
        
304
            \PY{k}{while} \PY{n}{out} \PY{o}{!=} \PY{n}{delayer}\PY{p}{(}\PY{n}{out}\PY{p}{)} \PY{p}{:}
305
                \PY{n}{out} \PY{o}{=} \PY{n}{delayer}\PY{p}{(}\PY{n}{out}\PY{p}{)}
306
        
307
            \PY{k}{return} \PY{n}{out}
308
        
309
        
310
        
311
        
312
        
313
        
314
        
315
        
316
        \PY{c}{\PYZsh{} Generate all combinations of objects in a list}
317
        \PY{k}{def} \PY{n+nf}{combinatorial}\PY{p}{(}\PY{n}{l}\PY{p}{)} \PY{p}{:}
318
            \PY{n}{out} \PY{o}{=} \PY{p}{[}\PY{p}{]}
319
        
320
            \PY{k}{for} \PY{n}{numel} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{l}\PY{p}{)}\PY{p}{)} \PY{p}{:}
321
                \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n}{itertools}\PY{o}{.}\PY{n}{combinations}\PY{p}{(}\PY{n}{l}\PY{p}{,} \PY{n}{numel}\PY{o}{+}\PY{l+m+mi}{1}\PY{p}{)} \PY{p}{:}
322
                    \PY{n}{out}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n+nb}{list}\PY{p}{(}\PY{n}{i}\PY{p}{)}\PY{p}{)}
323
        
324
            \PY{k}{return} \PY{n}{out}
325
        
326
        
327
        
328
        
329
        
330
        
331
        
332
        
333
        
334
        
335
        \PY{k}{def} \PY{n+nf}{pcaplot}\PY{p}{(}\PY{n}{df}\PY{p}{)} \PY{p}{:}
336
        
337
            \PY{c}{\PYZsh{} PCA}
338
            \PY{n}{pca} \PY{o}{=} \PY{n}{decomposition}\PY{o}{.}\PY{n}{PCA}\PY{p}{(}\PY{n}{whiten} \PY{o}{=} \PY{n+nb+bp}{True}\PY{p}{)}
339
            \PY{n}{pca}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{n}{df}\PY{p}{)}
340
            \PY{n}{p1} \PY{o}{=} \PY{n}{pca}\PY{o}{.}\PY{n}{components\PYZus{}}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]} \PY{o}{/} \PY{n}{np}\PY{o}{.}\PY{n}{abs}\PY{p}{(}\PY{n}{pca}\PY{o}{.}\PY{n}{components\PYZus{}}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{max}\PY{p}{(}\PY{p}{)} \PY{o}{*} \PY{n}{np}\PY{o}{.}\PY{n}{sqrt}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{)}\PY{o}{/}\PY{l+m+mi}{2}
341
            \PY{n}{p2} \PY{o}{=} \PY{n}{pca}\PY{o}{.}\PY{n}{components\PYZus{}}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{]} \PY{o}{/} \PY{n}{np}\PY{o}{.}\PY{n}{abs}\PY{p}{(}\PY{n}{pca}\PY{o}{.}\PY{n}{components\PYZus{}}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{max}\PY{p}{(}\PY{p}{)} \PY{o}{*} \PY{n}{np}\PY{o}{.}\PY{n}{sqrt}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{)}\PY{o}{/}\PY{l+m+mi}{2}
342
        
343
            \PY{c}{\PYZsh{} Normalise}
344
            \PY{n}{norms} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{max}\PY{p}{(}\PY{p}{[}\PY{n}{np}\PY{o}{.}\PY{n}{sqrt}\PY{p}{(}\PY{p}{(}\PY{n}{np}\PY{o}{.}\PY{n}{array}\PY{p}{(}\PY{n+nb}{zip}\PY{p}{(}\PY{n}{p1}\PY{p}{,} \PY{n}{p2}\PY{p}{)}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{)}\PY{o}{*}\PY{o}{*}\PY{l+m+mi}{2}\PY{p}{)}\PY{o}{.}\PY{n}{sum}\PY{p}{(}\PY{p}{)}\PY{p}{)} \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{p1}\PY{p}{)}\PY{p}{)}\PY{p}{]}\PY{p}{)}
345
            \PY{n}{c} \PY{o}{=} \PY{n}{plt}\PY{o}{.}\PY{n}{Circle}\PY{p}{(} \PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,} \PY{l+m+mi}{0}\PY{p}{)}\PY{p}{,} \PY{n}{radius} \PY{o}{=} \PY{l+m+mi}{1}\PY{p}{,} \PY{n}{alpha} \PY{o}{=} \PY{l+m+mf}{0.2}\PY{p}{)}
346
            \PY{n}{plt}\PY{o}{.}\PY{n}{axes}\PY{p}{(}\PY{n}{aspect} \PY{o}{=} \PY{l+m+mi}{1}\PY{p}{)}
347
            \PY{n}{plt}\PY{o}{.}\PY{n}{gca}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{add\PYZus{}artist}\PY{p}{(}\PY{n}{c}\PY{p}{)}
348
        
349
            \PY{n}{plt}\PY{o}{.}\PY{n}{scatter}\PY{p}{(}\PY{n}{p1} \PY{o}{/} \PY{n}{norms}\PY{p}{,} \PY{n}{p2} \PY{o}{/} \PY{n}{norms}\PY{p}{)}
350
            \PY{n}{plt}\PY{o}{.}\PY{n}{xlim}\PY{p}{(}\PY{p}{[}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{]}\PY{p}{)}
351
            \PY{n}{plt}\PY{o}{.}\PY{n}{ylim}\PY{p}{(}\PY{p}{[}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{]}\PY{p}{)}
352
        
353
            \PY{k}{for} \PY{n}{i}\PY{p}{,} \PY{n}{text} \PY{o+ow}{in} \PY{n+nb}{enumerate}\PY{p}{(}\PY{n}{df}\PY{o}{.}\PY{n}{columns}\PY{p}{)} \PY{p}{:}
354
                \PY{n}{plt}\PY{o}{.}\PY{n}{annotate}\PY{p}{(}\PY{n}{text}\PY{p}{,} \PY{n}{xy} \PY{o}{=} \PY{p}{[}\PY{n}{p1}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{,} \PY{n}{p2}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{]}\PY{p}{)}
355
        
356
            \PY{n}{plt}\PY{o}{.}\PY{n}{tight\PYZus{}layout}\PY{p}{(}\PY{p}{)}
357
        
358
        
359
        
360
        
361
        
362
        
363
        
364
        
365
        
366
        
367
        
368
        \PY{k}{def} \PY{n+nf}{test\PYZus{}all\PYZus{}linear}\PY{p}{(}\PY{n}{df}\PY{p}{,} \PY{n}{y}\PY{p}{,} \PY{n}{x}\PY{p}{,} \PY{n}{return\PYZus{}significant} \PY{o}{=} \PY{n+nb+bp}{False}\PY{p}{,} \PY{n}{group} \PY{o}{=} \PY{n+nb+bp}{None}\PY{p}{)} \PY{p}{:}
369
        
370
            \PY{c}{\PYZsh{} All possible combinations of independent variables}
371
            \PY{n}{independent} \PY{o}{=} \PY{n}{combinatorial}\PY{p}{(}\PY{n}{x}\PY{p}{)}
372
        
373
            \PY{n}{fits} \PY{o}{=} \PY{p}{\PYZob{}}\PY{p}{\PYZcb{}}
374
            \PY{n}{pval} \PY{o}{=} \PY{p}{\PYZob{}}\PY{p}{\PYZcb{}}
375
            \PY{n}{linmodels} \PY{o}{=} \PY{p}{\PYZob{}}\PY{p}{\PYZcb{}}
376
            \PY{n}{qsum} \PY{o}{=} \PY{p}{\PYZob{}}\PY{p}{\PYZcb{}}
377
            \PY{n}{aic} \PY{o}{=} \PY{p}{\PYZob{}}\PY{p}{\PYZcb{}}
378
        
379
            \PY{c}{\PYZsh{} For all dependent variables, one at a time}
380
            \PY{k}{for} \PY{n}{dependent} \PY{o+ow}{in} \PY{n}{y} \PY{p}{:}
381
        
382
                \PY{k}{print} \PY{l+s}{\PYZdq{}}\PY{l+s}{Fitting for }\PY{l+s+si}{\PYZpc{}s}\PY{l+s}{.}\PY{l+s}{\PYZdq{}} \PY{o}{\PYZpc{}} \PY{n}{dependent}
383
        
384
                \PY{c}{\PYZsh{} For all combinations of independent variables}
385
                \PY{k}{for} \PY{n}{covariate} \PY{o+ow}{in} \PY{n}{independent} \PY{p}{:}
386
        
387
                    \PY{c}{\PYZsh{} Standard mixed model}
388
                    \PY{k}{if} \PY{n}{group} \PY{o+ow}{is} \PY{n+nb+bp}{None} \PY{p}{:}
389
        
390
                        \PY{c}{\PYZsh{} Fit a linear model}
391
                        \PY{n}{subset} \PY{o}{=} \PY{n}{delayer}\PY{p}{(}\PY{p}{[}\PY{n}{covariate}\PY{p}{,} \PY{n}{dependent}\PY{p}{]}\PY{p}{)}
392
                        \PY{n}{df2} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{delayer}\PY{p}{(}\PY{n}{subset}\PY{p}{)}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
393
                        \PY{n}{df2}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{ones}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{df2}\PY{p}{)}\PY{p}{)}
394
                        
395
                        \PY{n}{ols} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df2}\PY{p}{[}\PY{n}{dependent}\PY{p}{]}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df2}\PY{p}{[}\PY{n}{delayer}\PY{p}{(}\PY{p}{[}\PY{n}{covariate}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{)}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}
396
        
397
                        \PY{c}{\PYZsh{} Save the results}
398
                        \PY{k}{if} \PY{p}{(}\PY{n}{return\PYZus{}significant} \PY{o+ow}{and} \PY{n}{ols}\PY{o}{.}\PY{n}{f\PYZus{}pvalue} \PY{o}{\PYZlt{}} \PY{l+m+mf}{0.05}\PY{p}{)} \PY{o+ow}{or} \PY{p}{(}\PY{o+ow}{not} \PY{n}{return\PYZus{}significant}\PY{p}{)} \PY{p}{:}
399
                            \PY{n}{linmodels}\PY{o}{.}\PY{n}{setdefault}\PY{p}{(}\PY{n}{dependent}\PY{p}{,} \PY{p}{[}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{ols}\PY{p}{)}
400
                            \PY{n}{fits}\PY{o}{.}\PY{n}{setdefault}\PY{p}{(}\PY{n}{dependent}\PY{p}{,} \PY{p}{[}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{ols}\PY{o}{.}\PY{n}{rsquared}\PY{p}{)}
401
                            \PY{n}{pval}\PY{o}{.}\PY{n}{setdefault}\PY{p}{(}\PY{n}{dependent}\PY{p}{,} \PY{p}{[}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{ols}\PY{o}{.}\PY{n}{f\PYZus{}pvalue}\PY{p}{)}
402
                            \PY{n}{aic}\PY{o}{.}\PY{n}{setdefault}\PY{p}{(}\PY{n}{dependent}\PY{p}{,} \PY{p}{[}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{ols}\PY{o}{.}\PY{n}{aic}\PY{p}{)}
403
        
404
        
405
                    \PY{c}{\PYZsh{} Mixed effects model}
406
                    \PY{k}{else} \PY{p}{:}
407
                        \PY{n}{subset} \PY{o}{=} \PY{n}{delayer}\PY{p}{(}\PY{p}{[}\PY{n}{covariate}\PY{p}{,} \PY{n}{dependent}\PY{p}{,} \PY{n}{group}\PY{p}{]}\PY{p}{)}
408
                        \PY{n}{df2} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{n}{delayer}\PY{p}{(}\PY{n}{subset}\PY{p}{)}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
409
        
410
                        \PY{c}{\PYZsh{} Fit a mixed effects model}
411
                        \PY{n}{ols} \PY{o}{=} \PY{n}{MixedLM}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df2}\PY{p}{[}\PY{n}{dependent}\PY{p}{]}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df2}\PY{p}{[}\PY{n}{covariate}\PY{p}{]}\PY{p}{,} \PY{n}{groups} \PY{o}{=} \PY{n}{df2}\PY{p}{[}\PY{n}{group}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}
412
        
413
                        \PY{c}{\PYZsh{} Calculate AIC}
414
                        \PY{n}{linmodels}\PY{o}{.}\PY{n}{setdefault}\PY{p}{(}\PY{n}{dependent}\PY{p}{,} \PY{p}{[}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{ols}\PY{p}{)}
415
                        \PY{n}{fits}\PY{o}{.}\PY{n}{setdefault}\PY{p}{(}\PY{n}{dependent}\PY{p}{,} \PY{p}{[}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{l+m+mi}{2} \PY{o}{*} \PY{p}{(}\PY{n}{ols}\PY{o}{.}\PY{n}{k\PYZus{}fe} \PY{o}{+} \PY{l+m+mi}{1}\PY{p}{)} \PY{o}{\PYZhy{}} \PY{l+m+mi}{2} \PY{o}{*} \PY{n}{ols}\PY{o}{.}\PY{n}{llf}\PY{p}{)}
416
                        \PY{n}{pval}\PY{o}{.}\PY{n}{setdefault}\PY{p}{(}\PY{n}{dependent}\PY{p}{,} \PY{p}{[}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{ols}\PY{o}{.}\PY{n}{pvalues}\PY{p}{)}
417
        
418
            \PY{k}{if} \PY{n}{group} \PY{o+ow}{is} \PY{o+ow}{not} \PY{n+nb+bp}{None} \PY{p}{:}
419
                \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n}{y} \PY{p}{:}
420
                    \PY{n}{f} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{array}\PY{p}{(}\PY{n}{fits}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{)}
421
                    \PY{n}{models} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{array}\PY{p}{(}\PY{n}{linmodels}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{)}
422
                    \PY{n}{idx} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{where}\PY{p}{(}\PY{n}{f} \PY{o}{\PYZhy{}} \PY{n}{f}\PY{o}{.}\PY{n}{min}\PY{p}{(}\PY{p}{)} \PY{o}{\PYZlt{}}\PY{o}{=} \PY{l+m+mi}{2}\PY{p}{)}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}
423
                    \PY{n}{bestmodelDoF} \PY{o}{=} \PY{p}{[}\PY{n}{j}\PY{o}{.}\PY{n}{k\PYZus{}fe} \PY{k}{for} \PY{n}{j} \PY{o+ow}{in} \PY{n}{np}\PY{o}{.}\PY{n}{array}\PY{p}{(}\PY{n}{linmodels}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{)}\PY{p}{[}\PY{n}{idx}\PY{p}{]}\PY{p}{]}
424
                    \PY{n}{bestmodels} \PY{o}{=} \PY{p}{[}\PY{n}{idx}\PY{p}{[}\PY{n}{j}\PY{p}{]} \PY{k}{for} \PY{n}{j} \PY{o+ow}{in} \PY{n}{np}\PY{o}{.}\PY{n}{where}\PY{p}{(}\PY{n}{bestmodelDoF} \PY{o}{==} \PY{n}{np}\PY{o}{.}\PY{n}{min}\PY{p}{(}\PY{n}{bestmodelDoF}\PY{p}{)}\PY{p}{)}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{]}
425
                    \PY{n}{qsum}\PY{p}{[}\PY{n}{i}\PY{p}{]} \PY{o}{=} \PY{n}{models}\PY{p}{[}\PY{n}{idx}\PY{p}{[}\PY{n}{np}\PY{o}{.}\PY{n}{where}\PY{p}{(}\PY{n}{f}\PY{p}{[}\PY{n}{bestmodels}\PY{p}{]} \PY{o}{==} \PY{n}{np}\PY{o}{.}\PY{n}{min}\PY{p}{(}\PY{n}{f}\PY{p}{[}\PY{n}{bestmodels}\PY{p}{]}\PY{p}{)}\PY{p}{)}\PY{p}{]}\PY{p}{]}
426
        
427
        
428
                \PY{k}{return} \PY{n}{linmodels}\PY{p}{,} \PY{n}{fits}\PY{p}{,} \PY{n}{pval}\PY{p}{,} \PY{n}{qsum}
429
        
430
            \PY{k}{return} \PY{n}{linmodels}\PY{p}{,} \PY{n}{fits}\PY{p}{,} \PY{n}{pval}\PY{p}{,} \PY{n}{aic}
431
        
432
            
433
                
434
        
435
        
436
        
437
        
438
        
439
        
440
        
441
        
442
        
443
        
444
        
445
        
446
        
447
        
448
        
449
        \PY{k}{def} \PY{n+nf}{summary}\PY{p}{(}\PY{n}{models}\PY{p}{)} \PY{p}{:}
450
        
451
            \PY{c}{\PYZsh{} Generate list of everything}
452
            \PY{n}{r2} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{array}\PY{p}{(}\PY{p}{[}\PY{n}{m}\PY{o}{.}\PY{n}{r2} \PY{k}{for} \PY{n}{dependent} \PY{o+ow}{in} \PY{n}{models}\PY{o}{.}\PY{n}{keys}\PY{p}{(}\PY{p}{)} \PY{k}{for} \PY{n}{m} \PY{o+ow}{in} \PY{n}{models}\PY{p}{[}\PY{n}{dependent}\PY{p}{]}\PY{p}{]}\PY{p}{)}
453
            \PY{n}{p} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{array}\PY{p}{(}\PY{p}{[}\PY{n}{m}\PY{o}{.}\PY{n}{f\PYZus{}stat}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{p\PYZhy{}value}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{k}{for} \PY{n}{dependent} \PY{o+ow}{in} \PY{n}{models}\PY{o}{.}\PY{n}{keys}\PY{p}{(}\PY{p}{)} \PY{k}{for} \PY{n}{m} \PY{o+ow}{in} \PY{n}{models}\PY{p}{[}\PY{n}{dependent}\PY{p}{]}\PY{p}{]}\PY{p}{)}
454
            \PY{n}{mod} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{array}\PY{p}{(}\PY{p}{[}\PY{n}{m} \PY{k}{for} \PY{n}{dependent} \PY{o+ow}{in} \PY{n}{models}\PY{o}{.}\PY{n}{keys}\PY{p}{(}\PY{p}{)} \PY{k}{for} \PY{n}{m} \PY{o+ow}{in} \PY{n}{models}\PY{p}{[}\PY{n}{dependent}\PY{p}{]}\PY{p}{]}\PY{p}{)}
455
            \PY{n}{dependent} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{array}\PY{p}{(}\PY{p}{[}\PY{n}{dependent} \PY{k}{for} \PY{n}{dependent} \PY{o+ow}{in} \PY{n}{models}\PY{o}{.}\PY{n}{keys}\PY{p}{(}\PY{p}{)} \PY{k}{for} \PY{n}{m} \PY{o+ow}{in} \PY{n}{models}\PY{p}{[}\PY{n}{dependent}\PY{p}{]}\PY{p}{]}\PY{p}{)}
456
        
457
            \PY{c}{\PYZsh{} Sort by R2}
458
            \PY{n}{idx} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{argsort}\PY{p}{(}\PY{n}{r2}\PY{p}{)}\PY{p}{[}\PY{p}{:}\PY{p}{:}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{]}
459
        
460
            \PY{c}{\PYZsh{} Output string}
461
            \PY{n}{s} \PY{o}{=} \PY{l+s}{\PYZdq{}}\PY{l+s+si}{\PYZpc{}d}\PY{l+s}{ significant regressions.}\PY{l+s+se}{\PYZbs{}n}\PY{l+s+se}{\PYZbs{}n}\PY{l+s}{\PYZdq{}} \PY{o}{\PYZpc{}} \PY{n+nb}{len}\PY{p}{(}\PY{n}{r2}\PY{p}{)}
462
            \PY{n}{s} \PY{o}{+}\PY{o}{=} \PY{l+s}{\PYZdq{}}\PY{l+s}{Ten most correlated :}\PY{l+s+se}{\PYZbs{}n}\PY{l+s+se}{\PYZbs{}n}\PY{l+s}{\PYZdq{}}
463
        
464
            \PY{c}{\PYZsh{} Print a summary of the top ten correlations}
465
            \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n}{idx}\PY{p}{[}\PY{p}{:}\PY{l+m+mi}{10}\PY{p}{]} \PY{p}{:}
466
                \PY{n}{s} \PY{o}{+}\PY{o}{=} \PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s+si}{\PYZpc{}s}\PY{l+s}{ \PYZti{} }\PY{l+s+si}{\PYZpc{}s}\PY{l+s+se}{\PYZbs{}n}\PY{l+s}{\PYZdq{}} \PY{o}{\PYZpc{}} \PY{p}{(}\PY{n}{dependent}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{ + }\PY{l+s}{\PYZdq{}}\PY{o}{.}\PY{n}{join}\PY{p}{(}\PY{n}{mod}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{o}{.}\PY{n}{x}\PY{o}{.}\PY{n}{columns}\PY{p}{[}\PY{p}{:}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{)}\PY{p}{)}\PY{p}{)}
467
                \PY{n}{s} \PY{o}{+}\PY{o}{=} \PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{R\PYZca{}2 = }\PY{l+s+si}{\PYZpc{}f}\PY{l+s+se}{\PYZbs{}t}\PY{l+s}{p = }\PY{l+s+si}{\PYZpc{}f}\PY{l+s+se}{\PYZbs{}n}\PY{l+s+se}{\PYZbs{}n}\PY{l+s}{\PYZdq{}} \PY{o}{\PYZpc{}} \PY{p}{(}\PY{n}{r2}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{,} \PY{n}{p}\PY{p}{[}\PY{n}{i}\PY{p}{]}\PY{p}{)}\PY{p}{)}
468
        
469
            \PY{k}{print} \PY{n}{s}
470
            
471
            
472
            
473
            
474
            
475
            
476
            
477
        \PY{k}{def} \PY{n+nf}{rstr}\PY{p}{(}\PY{n}{y}\PY{p}{,} \PY{n}{x}\PY{p}{)} \PY{p}{:}
478
            \PY{n}{formatstr} \PY{o}{=} \PY{l+s}{\PYZdq{}}\PY{l+s+si}{\PYZpc{}s}\PY{l+s}{ \PYZti{} }\PY{l+s}{\PYZdq{}} \PY{o}{\PYZpc{}} \PY{n}{y}
479
            \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n}{x}\PY{p}{[}\PY{p}{:}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{]} \PY{p}{:}
480
                \PY{n}{formatstr} \PY{o}{+}\PY{o}{=} \PY{n+nb}{str}\PY{p}{(}\PY{n}{i}\PY{p}{)}
481
                \PY{n}{formatstr} \PY{o}{+}\PY{o}{=} \PY{l+s}{\PYZdq{}}\PY{l+s}{ + }\PY{l+s}{\PYZdq{}}
482
            \PY{n}{formatstr} \PY{o}{+}\PY{o}{=} \PY{n+nb}{str}\PY{p}{(}\PY{n}{x}\PY{p}{[}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{)}
483
            \PY{k}{return} \PY{n}{formatstr}
484
\end{Verbatim}
485
486
    \begin{Verbatim}[commandchars=\\\{\}]
487
{\color{incolor}In [{\color{incolor}14}]:} \PY{k+kn}{import} \PY{n+nn}{numpy} \PY{k+kn}{as} \PY{n+nn}{np}
488
         \PY{k+kn}{from} \PY{n+nn}{sklearn.neighbors} \PY{k+kn}{import} \PY{n}{KernelDensity}
489
         \PY{k+kn}{from} \PY{n+nn}{matplotlib} \PY{k+kn}{import} \PY{n}{rcParams}
490
         \PY{k+kn}{import} \PY{n+nn}{matplotlib.pyplot} \PY{k+kn}{as} \PY{n+nn}{plt}
491
         \PY{k+kn}{import} \PY{n+nn}{seaborn}
492
         \PY{k+kn}{import} \PY{n+nn}{pandas} \PY{k+kn}{as} \PY{n+nn}{pd}
493
         \PY{k+kn}{import} \PY{n+nn}{itertools}
494
         \PY{k+kn}{from} \PY{n+nn}{sklearn} \PY{k+kn}{import} \PY{n}{linear\PYZus{}model}\PY{p}{,} \PY{n}{ensemble}\PY{p}{,} \PY{n}{decomposition}\PY{p}{,} \PY{n}{cross\PYZus{}validation}\PY{p}{,} \PY{n}{preprocessing}
495
         \PY{k+kn}{from} \PY{n+nn}{statsmodels.regression.mixed\PYZus{}linear\PYZus{}model} \PY{k+kn}{import} \PY{n}{MixedLM}
496
         \PY{k+kn}{import} \PY{n+nn}{statsmodels.api} \PY{k+kn}{as} \PY{n+nn}{sm}
497
         \PY{k+kn}{from} \PY{n+nn}{statsmodels.regression.linear\PYZus{}model} \PY{k+kn}{import} \PY{n}{OLSResults}
498
         \PY{k+kn}{from} \PY{n+nn}{statsmodels.tools.tools} \PY{k+kn}{import} \PY{n}{add\PYZus{}constant}
499
         
500
         
501
         \PY{o}{\PYZpc{}}\PY{k}{matplotlib} \PY{n}{inline}
502
         \PY{n}{rcParams}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{figure.figsize}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{p}{(}\PY{l+m+mi}{14}\PY{p}{,} \PY{l+m+mi}{8}\PY{p}{)}
503
         
504
         
505
         \PY{c}{\PYZsh{} RAW DATA}
506
         
507
         \PY{n}{raw\PYZus{}physical} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{read\PYZus{}csv}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{../data/physical.csv}\PY{l+s}{\PYZdq{}}\PY{p}{)}
508
         \PY{n}{raw\PYZus{}histo} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{read\PYZus{}csv}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{../data/tawfik.csv}\PY{l+s}{\PYZdq{}}\PY{p}{)}
509
         \PY{n}{ent} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{read\PYZus{}csv}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{../4x/results/entropy.csv}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Unnamed: 0}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}
510
         \PY{n}{foci} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{read\PYZus{}csv}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{../4x/results/foci.csv}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Unnamed: 0}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}
511
         \PY{n}{lac} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{read\PYZus{}csv}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{../4x/results/normalised\PYZus{}lacunarity.csv}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Unnamed: 0}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}
512
         \PY{n}{gabor} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{read\PYZus{}csv}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{../4x/results/gabor\PYZus{}filters.csv}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Unnamed: 0}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}
513
         \PY{n}{ts} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{read\PYZus{}csv}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{../4x/results/tissue\PYZus{}sinusoid\PYZus{}ratio.csv}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Unnamed: 0}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}
514
         
515
         \PY{n}{raw\PYZus{}image} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{merge}\PY{p}{(}\PY{n}{lac}\PY{p}{,} \PY{n}{ent}\PY{p}{,}
516
            \PY{n}{on}\PY{o}{=}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Sheep}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Image}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{merge}\PY{p}{(}\PY{n}{foci}\PY{p}{,} 
517
            \PY{n}{on}\PY{o}{=}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Sheep}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Image}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{merge}\PY{p}{(}\PY{n}{gabor}\PY{p}{,}
518
            \PY{n}{on}\PY{o}{=}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Sheep}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Image}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{merge}\PY{p}{(}\PY{n}{ts}\PY{p}{,} 
519
             \PY{n}{on}\PY{o}{=}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Sheep}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Image}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{)}
520
         \PY{n}{raw\PYZus{}image}\PY{o}{.}\PY{n}{rename}\PY{p}{(}\PY{n}{columns} \PY{o}{=} \PY{p}{\PYZob{}} \PY{l+s}{\PYZdq{}}\PY{l+s}{meanSize}\PY{l+s}{\PYZdq{}} \PY{p}{:} \PY{l+s}{\PYZdq{}}\PY{l+s}{FociSize}\PY{l+s}{\PYZdq{}}\PY{p}{,} 
521
                                        \PY{l+s}{\PYZdq{}}\PY{l+s}{TSRatio}\PY{l+s}{\PYZdq{}} \PY{p}{:} \PY{l+s}{\PYZdq{}}\PY{l+s}{TissueToSinusoid}\PY{l+s}{\PYZdq{}}\PY{p}{,}
522
                                        \PY{l+s}{\PYZdq{}}\PY{l+s}{Count}\PY{l+s}{\PYZdq{}} \PY{p}{:} \PY{l+s}{\PYZdq{}}\PY{l+s}{FociCount}\PY{l+s}{\PYZdq{}} \PY{p}{\PYZcb{}}\PY{p}{,} \PY{n}{inplace}\PY{o}{=}\PY{n+nb+bp}{True}\PY{p}{)}
523
         
524
         
525
         
526
         \PY{c}{\PYZsh{} CLEAN DATA}
527
         
528
         \PY{n}{physcols} \PY{o}{=} \PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Weight}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Sex}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{AgeAtDeath}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Foreleg}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Hindleg}\PY{l+s}{\PYZdq{}}\PY{p}{]}
529
         \PY{n}{imagecols} \PY{o}{=} \PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Entropy}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Lacunarity}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Inflammation}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Scale}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Directionality}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{FociCount}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{FociSize}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{TissueToSinusoid}\PY{l+s}{\PYZdq{}}\PY{p}{]}
530
         \PY{n}{histcols} \PY{o}{=} \PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Lobular\PYZus{}collapse}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Interface\PYZus{}hepatitis}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Confluent\PYZus{}necrosis}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Ln\PYZus{}ap\PYZus{}ri}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Portal\PYZus{}inflammation}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{BD\PYZus{}hyperplasia}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Fibrosis}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{TawfikTotal}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Mean\PYZus{}hep\PYZus{}size}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Min\PYZus{}hep\PYZus{}size}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Max\PYZus{}hep\PYZus{}size}\PY{l+s}{\PYZdq{}}\PY{p}{]}
531
         
532
         
533
         
534
         
535
         
536
         \PY{c}{\PYZsh{} IMAGE}
537
         
538
         \PY{c}{\PYZsh{} Set FociSize to zero if FociCount is zero}
539
         \PY{c}{\PYZsh{} Drop stdSize}
540
         \PY{n}{image} \PY{o}{=} \PY{n}{raw\PYZus{}image}
541
         \PY{n}{image} \PY{o}{=} \PY{n}{image}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{stdSize}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}
542
         \PY{n}{image}\PY{o}{.}\PY{n}{FociSize}\PY{p}{[}\PY{n}{raw\PYZus{}image}\PY{o}{.}\PY{n}{FociCount} \PY{o}{==} \PY{l+m+mi}{0}\PY{p}{]} \PY{o}{=} \PY{l+m+mi}{0}
543
         
544
         
545
         
546
         \PY{c}{\PYZsh{} HISTO}
547
         
548
         \PY{n}{histo} \PY{o}{=} \PY{n}{raw\PYZus{}histo}
549
         \PY{n}{histo} \PY{o}{=} \PY{n}{histo}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Vessels}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Vacuol}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Pigment}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Std\PYZus{}hep\PYZus{}size}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}
550
         
551
         
552
         
553
         \PY{c}{\PYZsh{} PHYSICAL}
554
         
555
         \PY{n}{physical} \PY{o}{=} \PY{n}{raw\PYZus{}physical}
556
         \PY{n}{physical} \PY{o}{=} \PY{n}{physical}\PY{o}{.}\PY{n}{drop}\PY{p}{(}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{CurrTag}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{DeathDate}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Category}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}
557
         \PY{n}{physical}
558
         
559
         
560
         
561
         
562
         \PY{c}{\PYZsh{} COMPLETE DATASET}
563
         
564
         \PY{n}{raw\PYZus{}data} \PY{o}{=} \PY{n}{pd}\PY{o}{.}\PY{n}{merge}\PY{p}{(}\PY{n}{pd}\PY{o}{.}\PY{n}{merge}\PY{p}{(}\PY{n}{image}\PY{p}{,} \PY{n}{histo}\PY{p}{,} \PY{n}{on}\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{Sheep}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{n}{how}\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{outer}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{p}{,} \PY{n}{physical}\PY{p}{,} \PY{n}{on}\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{Sheep}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{n}{how}\PY{o}{=}\PY{l+s}{\PYZdq{}}\PY{l+s}{outer}\PY{l+s}{\PYZdq{}}\PY{p}{)}
565
         \PY{n}{raw\PYZus{}data}\PY{o}{.}\PY{n}{to\PYZus{}csv}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{../data/tentative\PYZus{}complete.csv}\PY{l+s}{\PYZdq{}}\PY{p}{)}
566
         
567
         
568
         
569
         
570
         \PY{c}{\PYZsh{} AVERAGED BY SHEEP}
571
         \PY{n}{data} \PY{o}{=} \PY{n}{raw\PYZus{}data}
572
         \PY{n}{data}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Inflammation}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{data}\PY{o}{.}\PY{n}{FociCount} \PY{o}{*} \PY{n}{data}\PY{o}{.}\PY{n}{FociSize}
573
         
574
         \PY{n}{sheep} \PY{o}{=} \PY{n}{rescale}\PY{p}{(}\PY{n}{data}\PY{o}{.}\PY{n}{groupby}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{Sheep}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{o}{.}\PY{n}{mean}\PY{p}{(}\PY{p}{)}\PY{p}{)}
575
         \PY{n}{age} \PY{o}{=} \PY{n}{rescale}\PY{p}{(}\PY{n}{data}\PY{o}{.}\PY{n}{groupby}\PY{p}{(}\PY{l+s}{\PYZdq{}}\PY{l+s}{AgeAtDeath}\PY{l+s}{\PYZdq{}}\PY{p}{)}\PY{o}{.}\PY{n}{mean}\PY{p}{(}\PY{p}{)}\PY{p}{)}
576
         
577
         
578
         
579
         
580
         
581
         
582
         
583
         \PY{c}{\PYZsh{} REGRESSIONS : fixed effects, grouped by sheep}
584
         
585
         \PY{n}{df} \PY{o}{=} \PY{n}{sheep}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Portal\PYZus{}inflammation}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{FociSize}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
586
         \PY{n}{df}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{ones}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{df}\PY{p}{)}\PY{p}{)}
587
         \PY{n}{portal\PYZus{}inflammation} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{Portal\PYZus{}inflammation}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{FociSize}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
588
         \PY{c}{\PYZsh{}portal\PYZus{}inflammation = portal\PYZus{}inflammation.summary()}
589
         \PY{k}{del} \PY{n}{portal\PYZus{}inflammation}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
590
         
591
         
592
         
593
         \PY{n}{df} \PY{o}{=} \PY{n}{sheep}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{BD\PYZus{}hyperplasia}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Scale}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Directionality}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{FociSize}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
594
         \PY{n}{df}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{ones}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{df}\PY{p}{)}\PY{p}{)}
595
         \PY{n}{hyperplasia} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{BD\PYZus{}hyperplasia}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{FociSize}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Scale}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Directionality}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
596
         \PY{c}{\PYZsh{}hyperplasia.summary()}
597
         \PY{k}{del} \PY{n}{hyperplasia}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
598
         
599
         
600
         
601
         
602
         
603
         
604
         \PY{c}{\PYZsh{} REGRESSIONS : fixed effects, grouped by age}
605
         
606
         \PY{n}{df} \PY{o}{=} \PY{n}{age}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Max\PYZus{}hep\PYZus{}size}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Entropy}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Directionality}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
607
         \PY{n}{df}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{ones}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{df}\PY{p}{)}\PY{p}{)}
608
         \PY{n}{maxhepsize} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{Max\PYZus{}hep\PYZus{}size}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Entropy}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Directionality}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
609
         \PY{k}{del} \PY{n}{maxhepsize}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
610
         
611
         
612
         
613
         
614
         \PY{n}{df} \PY{o}{=} \PY{n}{age}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Lobular\PYZus{}collapse}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{FociSize}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
615
         \PY{n}{df}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{ones}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{df}\PY{p}{)}\PY{p}{)}
616
         \PY{n}{lobular\PYZus{}collapse} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{Lobular\PYZus{}collapse}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{FociSize}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
617
         \PY{k}{del} \PY{n}{lobular\PYZus{}collapse}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
618
         
619
         
620
         \PY{n}{df} \PY{o}{=} \PY{n}{age}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Interface\PYZus{}hepatitis}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Lacunarity}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
621
         \PY{n}{df}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{ones}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{df}\PY{p}{)}\PY{p}{)}
622
         \PY{n}{interface\PYZus{}hepatitis} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{Interface\PYZus{}hepatitis}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Lacunarity}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
623
         \PY{k}{del} \PY{n}{interface\PYZus{}hepatitis}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
624
         
625
         
626
         \PY{n}{df} \PY{o}{=} \PY{n}{age}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Fibrosis}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Inflammation}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
627
         \PY{n}{df}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{ones}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{df}\PY{p}{)}\PY{p}{)}
628
         \PY{n}{fibrosis} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{Fibrosis}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Inflammation}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
629
         \PY{k}{del} \PY{n}{fibrosis}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
630
         
631
         
632
         
633
         
634
         \PY{c}{\PYZsh{} PCA}
635
         
636
         \PY{n}{s} \PY{o}{=} \PY{n}{sheep}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{n}{subset}\PY{o}{=}\PY{n}{delayer}\PY{p}{(}\PY{p}{[}\PY{n}{imagecols}\PY{p}{,} \PY{n}{histcols}\PY{p}{]}\PY{p}{)}\PY{p}{)}
637
         \PY{n}{pca} \PY{o}{=} \PY{n}{decomposition}\PY{o}{.}\PY{n}{PCA}\PY{p}{(}\PY{n}{n\PYZus{}components}\PY{o}{=}\PY{l+m+mi}{1}\PY{p}{)}
638
         \PY{n}{pcax} \PY{o}{=} \PY{n}{pca}\PY{o}{.}\PY{n}{fit\PYZus{}transform}\PY{p}{(}\PY{n}{s}\PY{p}{[}\PY{n}{imagecols}\PY{p}{]}\PY{p}{)}
639
         \PY{n}{pcay} \PY{o}{=} \PY{n}{pca}\PY{o}{.}\PY{n}{fit\PYZus{}transform}\PY{p}{(}\PY{n}{s}\PY{p}{[}\PY{n}{histcols}\PY{p}{]}\PY{p}{)}
640
         \PY{n}{pca} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{pcay}\PY{p}{[}\PY{p}{:}\PY{p}{,} \PY{l+m+mi}{0}\PY{p}{]}\PY{p}{[}\PY{p}{:}\PY{p}{,} \PY{n}{np}\PY{o}{.}\PY{n}{newaxis}\PY{p}{]}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{add\PYZus{}constant}\PY{p}{(}\PY{n}{pcax}\PY{p}{)}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
641
         \PY{k}{del} \PY{n}{pca}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
642
         
643
         
644
         
645
         
646
         
647
         \PY{c}{\PYZsh{} REGRESSIONS : mixed effects, intercept on age at death}
648
         
649
         \PY{n}{df} \PY{o}{=} \PY{n}{age}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Fibrosis}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Inflammation}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{o}{.}\PY{n}{dropna}\PY{p}{(}\PY{p}{)}
650
         \PY{n}{df}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{ones}\PY{p}{(}\PY{n+nb}{len}\PY{p}{(}\PY{n}{df}\PY{p}{)}\PY{p}{)}
651
         \PY{n}{fibrosis} \PY{o}{=} \PY{n}{sm}\PY{o}{.}\PY{n}{GLS}\PY{p}{(}\PY{n}{endog} \PY{o}{=} \PY{n}{df}\PY{o}{.}\PY{n}{Fibrosis}\PY{p}{,} \PY{n}{exog} \PY{o}{=} \PY{n}{df}\PY{p}{[}\PY{p}{[}\PY{l+s}{\PYZdq{}}\PY{l+s}{Inflammation}\PY{l+s}{\PYZdq{}}\PY{p}{,} \PY{l+s}{\PYZdq{}}\PY{l+s}{Intercept}\PY{l+s}{\PYZdq{}}\PY{p}{]}\PY{p}{]}\PY{p}{)}\PY{o}{.}\PY{n}{fit}\PY{p}{(}\PY{p}{)}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
652
         \PY{k}{del} \PY{n}{fibrosis}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
653
\end{Verbatim}
654
655
    \begin{Verbatim}[commandchars=\\\{\}]
656
{\color{incolor}In [{\color{incolor}19}]:} \PY{n}{a} \PY{o}{=} \PY{n}{portal\PYZus{}inflammation}\PY{o}{.}\PY{n}{summary}\PY{p}{(}\PY{p}{)}
657
         \PY{k}{del} \PY{n}{a}\PY{o}{.}\PY{n}{tables}\PY{p}{[}\PY{l+m+mi}{2}\PY{p}{]}
658
         \PY{n}{a}
659
\end{Verbatim}
660
661
            \begin{Verbatim}[commandchars=\\\{\}]
662
{\color{outcolor}Out[{\color{outcolor}19}]:} <class 'statsmodels.iolib.summary.Summary'>
663
         """
664
                                      GLS Regression Results                            
665
         ===============================================================================
666
         Dep. Variable:     Portal\_inflammation   R-squared:                       0.280
667
         Model:                             GLS   Adj. R-squared:                  0.273
668
         Method:                  Least Squares   F-statistic:                     37.34
669
         Date:                 Tue, 28 Oct 2014   Prob (F-statistic):           2.12e-08
670
         Time:                         23:35:30   Log-Likelihood:                 14.996
671
         No. Observations:                   98   AIC:                            -25.99
672
         Df Residuals:                       96   BIC:                            -20.82
673
         Df Model:                            1                                         
674
         Covariance Type:             nonrobust                                         
675
         ==============================================================================
676
                          coef    std err          t      P>|t|      [95.0\% Conf. Int.]
677
         ------------------------------------------------------------------------------
678
         FociSize       0.5627      0.092      6.111      0.000         0.380     0.746
679
         Intercept      0.3368      0.043      7.855      0.000         0.252     0.422
680
         ==============================================================================
681
         
682
         Warnings:
683
         [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
684
         """
685
\end{Verbatim}
686
        
687
688
    \subsection{Image Processing}
689
690
691
    
692
693
    
694
695
696
    \subsubsection{Extraction}
697
698
699
    \begin{itemize}
700
\itemsep1pt\parskip0pt\parsep0pt
701
\item
702
  Automagical
703
\item
704
  Reasonably quick
705
\end{itemize}
706
707
708
    \subsubsection{Robust}
709
710
711
    \begin{itemize}
712
\itemsep1pt\parskip0pt\parsep0pt
713
\item
714
  Invariant to staining, slicing, field-related variation
715
\item
716
  Capture intersample variation
717
\end{itemize}
718
719
    \begin{figure}[htbp]
720
\centering
721
\includegraphics{figures/robust3.jpg}
722
\caption{image}
723
\end{figure}
724
725
    \begin{figure}[htbp]
726
\centering
727
\includegraphics{figures/robust4.jpg}
728
\caption{image}
729
\end{figure}
730
731
    \begin{figure}[htbp]
732
\centering
733
\includegraphics{figures/robust1.jpg}
734
\caption{image}
735
\end{figure}
736
737
    \begin{figure}[htbp]
738
\centering
739
\includegraphics{figures/robust2.jpg}
740
\caption{image}
741
\end{figure}
742
743
744
    \subsection{Structural and Textural Measures}
745
746
747
    \begin{itemize}
748
\itemsep1pt\parskip0pt\parsep0pt
749
\item
750
  characteristic \textbf{scale} of sinusoid widths
751
\item
752
  \textbf{directional} amplitude of preferred sinusoid alignment
753
\item
754
  \textbf{tissue to sinusoid} ratio
755
\item
756
  \textbf{count} of inflammatory foci per image
757
\item
758
  \textbf{mean size} of inflammatory foci per image
759
\item
760
  information \textbf{entropy} of sinusoid distribution
761
\item
762
  \textbf{lacunarity} ( clustering ) of sinusoids
763
\end{itemize}
764
765
    
766
767
    \begin{figure}[htbp]
768
\centering
769
\includegraphics{figures/intra.png}
770
\caption{image}
771
\end{figure}
772
773
    \begin{figure}[htbp]
774
\centering
775
\includegraphics{figures/inter2.png}
776
\caption{image}
777
\end{figure}
778
779
780
    \subsection{Exploratory Analysis}
781
782
783
784
    \subsubsection{by individual}
785
786
787
    \begin{Verbatim}[commandchars=\\\{\}]
788
{\color{incolor}In [{\color{incolor}29}]:} \PY{n}{portal\PYZus{}inflammation}
789
\end{Verbatim}
790
791
            \begin{Verbatim}[commandchars=\\\{\}]
792
{\color{outcolor}Out[{\color{outcolor}29}]:} <class 'statsmodels.iolib.summary.Summary'>
793
         """
794
                                      GLS Regression Results                            
795
         ===============================================================================
796
         Dep. Variable:     Portal\_inflammation   R-squared:                       0.280
797
         Model:                             GLS   Adj. R-squared:                  0.273
798
         Method:                  Least Squares   F-statistic:                     37.34
799
         Date:                 Tue, 28 Oct 2014   Prob (F-statistic):           2.12e-08
800
         Time:                         23:40:10   Log-Likelihood:                 14.996
801
         No. Observations:                   98   AIC:                            -25.99
802
         Df Residuals:                       96   BIC:                            -20.82
803
         Df Model:                            1                                         
804
         Covariance Type:             nonrobust                                         
805
         ==============================================================================
806
                          coef    std err          t      P>|t|      [95.0\% Conf. Int.]
807
         ------------------------------------------------------------------------------
808
         FociSize       0.5627      0.092      6.111      0.000         0.380     0.746
809
         Intercept      0.3368      0.043      7.855      0.000         0.252     0.422
810
         ==============================================================================
811
         
812
         Warnings:
813
         [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
814
         """
815
\end{Verbatim}
816
        
817
    \begin{figure}[htbp]
818
\centering
819
\includegraphics{figures/portal_inflammation.png}
820
\caption{image}
821
\end{figure}
822
823
    \begin{Verbatim}[commandchars=\\\{\}]
824
{\color{incolor}In [{\color{incolor}31}]:} \PY{n}{hyperplasia}
825
\end{Verbatim}
826
827
            \begin{Verbatim}[commandchars=\\\{\}]
828
{\color{outcolor}Out[{\color{outcolor}31}]:} <class 'statsmodels.iolib.summary.Summary'>
829
         """
830
                                     GLS Regression Results                            
831
         ==============================================================================
832
         Dep. Variable:         BD\_hyperplasia   R-squared:                       0.306
833
         Model:                            GLS   Adj. R-squared:                  0.284
834
         Method:                 Least Squares   F-statistic:                     13.83
835
         Date:                Tue, 28 Oct 2014   Prob (F-statistic):           1.52e-07
836
         Time:                        23:40:10   Log-Likelihood:                -3.9632
837
         No. Observations:                  98   AIC:                             15.93
838
         Df Residuals:                      94   BIC:                             26.27
839
         Df Model:                           3                                         
840
         Covariance Type:            nonrobust                                         
841
         ==================================================================================
842
                              coef    std err          t      P>|t|      [95.0\% Conf. Int.]
843
         ----------------------------------------------------------------------------------
844
         FociSize           0.6698      0.113      5.902      0.000         0.444     0.895
845
         Scale              0.5811      0.243      2.394      0.019         0.099     1.063
846
         Directionality    -0.4419      0.190     -2.330      0.022        -0.819    -0.065
847
         Intercept         -0.0504      0.079     -0.642      0.523        -0.206     0.105
848
         ==================================================================================
849
         
850
         Warnings:
851
         [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
852
         """
853
\end{Verbatim}
854
        
855
    \begin{figure}[htbp]
856
\centering
857
\includegraphics{figures/hyperplasia.png}
858
\caption{image}
859
\end{figure}
860
861
    \begin{Verbatim}[commandchars=\\\{\}]
862
{\color{incolor}In [{\color{incolor}15}]:} \PY{n}{pca}
863
\end{Verbatim}
864
865
            \begin{Verbatim}[commandchars=\\\{\}]
866
{\color{outcolor}Out[{\color{outcolor}15}]:} <class 'statsmodels.iolib.summary.Summary'>
867
         """
868
                                     GLS Regression Results                            
869
         ==============================================================================
870
         Dep. Variable:                      y   R-squared:                       0.075
871
         Model:                            GLS   Adj. R-squared:                  0.065
872
         Method:                 Least Squares   F-statistic:                     7.723
873
         Date:                Wed, 29 Oct 2014   Prob (F-statistic):            0.00657
874
         Time:                        14:38:47   Log-Likelihood:                -70.082
875
         No. Observations:                  97   AIC:                             144.2
876
         Df Residuals:                      95   BIC:                             149.3
877
         Df Model:                           1                                         
878
         Covariance Type:            nonrobust                                         
879
         ==============================================================================
880
                          coef    std err          t      P>|t|      [95.0\% Conf. Int.]
881
         ------------------------------------------------------------------------------
882
         const      -2.949e-17      0.051  -5.77e-16      1.000        -0.102     0.102
883
         x1             0.3865      0.139      2.779      0.007         0.110     0.663
884
         ==============================================================================
885
         
886
         Warnings:
887
         [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
888
         """
889
\end{Verbatim}
890
        
891
    \begin{figure}[htbp]
892
\centering
893
\includegraphics{figures/pca.png}
894
\caption{image}
895
\end{figure}
896
897
898
    \subsection{Exploratory Analysis}
899
900
901
902
    \subsubsection{by age class}
903
904
905
    \begin{Verbatim}[commandchars=\\\{\}]
906
{\color{incolor}In [{\color{incolor}6}]:} \PY{n}{fibrosis}
907
\end{Verbatim}
908
909
            \begin{Verbatim}[commandchars=\\\{\}]
910
{\color{outcolor}Out[{\color{outcolor}6}]:} <class 'statsmodels.iolib.summary.Summary'>
911
        """
912
                                    GLS Regression Results                            
913
        ==============================================================================
914
        Dep. Variable:               Fibrosis   R-squared:                       0.800
915
        Model:                            GLS   Adj. R-squared:                  0.778
916
        Method:                 Least Squares   F-statistic:                     36.07
917
        Date:                Wed, 29 Oct 2014   Prob (F-statistic):           0.000201
918
        Time:                        11:13:48   Log-Likelihood:                 7.8003
919
        No. Observations:                  11   AIC:                            -11.60
920
        Df Residuals:                       9   BIC:                            -10.80
921
        Df Model:                           1                                         
922
        Covariance Type:            nonrobust                                         
923
        ================================================================================
924
                           coef    std err          t      P>|t|      [95.0\% Conf. Int.]
925
        --------------------------------------------------------------------------------
926
        Inflammation     1.0159      0.169      6.006      0.000         0.633     1.399
927
        Intercept       -0.0105      0.083     -0.126      0.902        -0.198     0.177
928
        ================================================================================
929
        
930
        Warnings:
931
        [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
932
        """
933
\end{Verbatim}
934
        
935
    \begin{figure}[htbp]
936
\centering
937
\includegraphics{figures/fibrosis.png}
938
\caption{image}
939
\end{figure}
940
941
    \begin{Verbatim}[commandchars=\\\{\}]
942
{\color{incolor}In [{\color{incolor}7}]:} \PY{n}{lobular\PYZus{}collapse}
943
\end{Verbatim}
944
945
            \begin{Verbatim}[commandchars=\\\{\}]
946
{\color{outcolor}Out[{\color{outcolor}7}]:} <class 'statsmodels.iolib.summary.Summary'>
947
        """
948
                                    GLS Regression Results                            
949
        ==============================================================================
950
        Dep. Variable:       Lobular\_collapse   R-squared:                       0.586
951
        Model:                            GLS   Adj. R-squared:                  0.540
952
        Method:                 Least Squares   F-statistic:                     12.73
953
        Date:                Wed, 29 Oct 2014   Prob (F-statistic):            0.00605
954
        Time:                        11:13:48   Log-Likelihood:                 2.2626
955
        No. Observations:                  11   AIC:                           -0.5252
956
        Df Residuals:                       9   BIC:                            0.2706
957
        Df Model:                           1                                         
958
        Covariance Type:            nonrobust                                         
959
        ==============================================================================
960
                         coef    std err          t      P>|t|      [95.0\% Conf. Int.]
961
        ------------------------------------------------------------------------------
962
        FociSize       1.1379      0.319      3.567      0.006         0.416     1.860
963
        Intercept      0.0460      0.159      0.289      0.779        -0.314     0.406
964
        ==============================================================================
965
        
966
        Warnings:
967
        [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
968
        """
969
\end{Verbatim}
970
        
971
    \begin{figure}[htbp]
972
\centering
973
\includegraphics{figures/lobular_collapse.png}
974
\caption{image}
975
\end{figure}
976
977
    \begin{Verbatim}[commandchars=\\\{\}]
978
{\color{incolor}In [{\color{incolor}8}]:} \PY{n}{interface\PYZus{}hepatitis}
979
\end{Verbatim}
980
981
            \begin{Verbatim}[commandchars=\\\{\}]
982
{\color{outcolor}Out[{\color{outcolor}8}]:} <class 'statsmodels.iolib.summary.Summary'>
983
        """
984
                                     GLS Regression Results                            
985
        ===============================================================================
986
        Dep. Variable:     Interface\_hepatitis   R-squared:                       0.659
987
        Model:                             GLS   Adj. R-squared:                  0.621
988
        Method:                  Least Squares   F-statistic:                     17.38
989
        Date:                 Wed, 29 Oct 2014   Prob (F-statistic):            0.00242
990
        Time:                         11:13:48   Log-Likelihood:                 2.3063
991
        No. Observations:                   11   AIC:                           -0.6126
992
        Df Residuals:                        9   BIC:                            0.1832
993
        Df Model:                            1                                         
994
        Covariance Type:             nonrobust                                         
995
        ==============================================================================
996
                         coef    std err          t      P>|t|      [95.0\% Conf. Int.]
997
        ------------------------------------------------------------------------------
998
        Lacunarity    -1.0224      0.245     -4.168      0.002        -1.577    -0.468
999
        Intercept      0.9504      0.143      6.669      0.000         0.628     1.273
1000
        ==============================================================================
1001
        
1002
        Warnings:
1003
        [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
1004
        """
1005
\end{Verbatim}
1006
        
1007
    \begin{figure}[htbp]
1008
\centering
1009
\includegraphics{figures/interface_hepatitis.png}
1010
\caption{image}
1011
\end{figure}
1012
1013
1014
    \subsection{Exploratory analysis}
1015
1016
1017
1018
    \subsubsection{with a random effect on age at death}
1019
1020
1021
    \begin{longtable}[c]{@{}lcl@{}}
1022
\toprule\addlinespace
1023
Dependent variable & Models AIC \textless{} 2 + AICmin & Primary
1024
explanatory variables ( ordered )
1025
\\\addlinespace
1026
\midrule\endhead
1027
Ishak score & 7 & entropy, tissue-to-sinusoid, focus count, focus size
1028
\\\addlinespace
1029
Lobular collapse & 5 & entropy, lacunarity, tissue-to-sinusoid, focus
1030
count
1031
\\\addlinespace
1032
Confluent necrosis & 1 & entropy
1033
\\\addlinespace
1034
Interface hepatitis & 2 & entropy, tissue-to-sinusoid
1035
\\\addlinespace
1036
Portal inflammation & 4 & entropy, focus size, lacunarity, focus count,
1037
scale, directionality
1038
\\\addlinespace
1039
Fibrosis & 2 & entropy, lacunarity, tissue-to-sinusoid
1040
\\\addlinespace
1041
Biliary hyperplasia & 1 & focus size
1042
\\\addlinespace
1043
Necrosis, apoptosis, random inflammation & 2 & entropy, lacunarity
1044
\\\addlinespace
1045
\bottomrule
1046
\end{longtable}
1047
1048
1049
    \paragraph{Measures we like}
1050
1051
1052
    \begin{itemize}
1053
\itemsep1pt\parskip0pt\parsep0pt
1054
\item
1055
  entropy consistently explains histological measures when controlled
1056
  for age
1057
\item
1058
  also important : tissue to sinusoid ratio, focus count and size,
1059
  lacunarity
1060
\end{itemize}
1061
1062
1063
    \subsection{Future directions}
1064
1065
1066
1067
    \subsubsection{Further exploration of the dataset}
1068
1069
1070
    \begin{itemize}
1071
\item
1072
  145 sheep ( 89 females )
1073
\item
1074
  11 age classes
1075
\item
1076
\end{itemize}
1077
1078
    \begin{itemize}
1079
\itemsep1pt\parskip0pt\parsep0pt
1080
\item
1081
  4460 entries across 27 variables
1082
\item
1083
  3330 with full image and histological information
1084
\item
1085
  1196 for which \textbf{complete} information is available
1086
\end{itemize}
1087
1088
1089
    \subsubsection{Narrow-field images}
1090
1091
1092
    \begin{itemize}
1093
\itemsep1pt\parskip0pt\parsep0pt
1094
\item
1095
  12536 images
1096
\item
1097
  spatial distribution of nuclei
1098
\end{itemize}
1099
1100
    \begin{figure}[htbp]
1101
\centering
1102
\includegraphics{figures/10.jpg}
1103
\caption{image}
1104
\end{figure}
1105
1106
    \begin{figure}[htbp]
1107
\centering
1108
\includegraphics{figures/Processed2.jpg}
1109
\caption{image}
1110
\end{figure}
1111
1112
    \begin{figure}[htbp]
1113
\centering
1114
\includegraphics{figures/Segmented.jpg}
1115
\caption{image}
1116
\end{figure}
1117
1118
    
1119
1120
1121
    % Add a bibliography block to the postdoc
1122
    
1123
    
1124
    
1125
    \end{document}