Example #1
0
    def maxlag_selection(self):
        '''
        最大滞后阶数选择
        :return: 不同准则下最优滞后阶数
        '''
        self.data_prepro()
        Y, Y_future, Y_exog, Y_exog_future = self.prepare_Y(0, -10)

        model = VAR(endog=Y, exog=Y_exog)
        ics = defaultdict(list)
        for p in range(self.maxlags + 1):
            result = model._estimate_var(p, offset=self.maxlags - p)
            for k, v in iteritems(result.info_criteria):
                ics[k].append(v)
        selected_orders = dict(
            (k, np.array(v).argmin()) for k, v in iteritems(ics))
        t_str = get_ic_table(ics, selected_orders)
        t_str += '\n%s' % str(selected_orders)
        self.model = model
        self.InfoText.delete(0.0, tkinter.END)
        self.InfoText.insert(0.0, t_str)