def explained_variance(self):
self.tree.root._v=<NUM_LIT:0><EOL>for n in self.tree.get_nonterminals(order='<STR_LIT>'):<EOL><INDENT>for c in n:<EOL><INDENT>c._v = n._v + self.branch_value(c)<EOL><DEDENT><DEDENT>raw = np.array([(self.tip_value(n), n._v) for n in self.tree.get_terminals()<EOL>if self.tip_value(n) is not None])<EOL>return np.corrcoef(raw.T)[<NUM_LIT:0>,<NUM_LIT:1>]<EOL>
calculate standard explained variance

        Returns
        -------
        float
            r-value of the root-to-tip distance and time.
            independent of regression model, but dependent on root choice