Beispiel #1
0
    def test_serialization_unfitted_model(self):
        # Setup
        instance = VineCopula('regular')

        # Run
        result = VineCopula.from_dict(instance.to_dict())

        # Check
        assert result.to_dict() == instance.to_dict()
Beispiel #2
0
    def test_serialization_unfitted_model(self):
        """An unfitted vine can be serialized and deserialized and kept unchanged."""
        # Setup
        instance = VineCopula('regular')

        # Run
        result = VineCopula.from_dict(instance.to_dict())

        # Check
        assert result.to_dict() == instance.to_dict()
Beispiel #3
0
    def test_serialization_fit_model(self):
        """A fitted vine can be serialized and deserialized and kept unchanged."""
        # Setup
        instance = VineCopula('regular')
        X = pd.DataFrame(data=[[1, 0, 0], [0, 1, 0], [0, 0, 1]])
        instance.fit(X)

        # Run
        result = VineCopula.from_dict(instance.to_dict())

        # Check
        compare_nested_dicts(result.to_dict(), instance.to_dict())
Beispiel #4
0
    def test_serialization_fit_model(self):
        # Setup
        instance = VineCopula('regular')
        X = pd.DataFrame(data=[
            [1, 0, 0],
            [0, 1, 0],
            [0, 0, 1]
        ])
        instance.fit(X)

        # Run
        result = VineCopula.from_dict(instance.to_dict())

        # Check
        compare_nested_dicts(result.to_dict(), instance.to_dict())
Beispiel #5
0
    def test_from_dict(self):
        """from_dict creates a new instance from its parameters."""
        # Setup
        vine_dict = {
            'type':
            'copulas.multivariate.vine.VineCopula',
            'vine_type':
            'regular',
            'fitted':
            True,
            'n_sample':
            100,
            'n_var':
            10,
            'depth':
            3,
            'truncated':
            3,
            'trees': [{
                'type': 'copulas.multivariate.tree.RegularTree',
                'tree_type': 'regular',
                'fitted': False
            }],
            'tau_mat': [[0, 1], [1, 0]],
            'u_matrix': [[0, 1], [1, 0]],
            'unis': [{
                'type': 'copulas.univariate.gaussian_kde.GaussianKDE',
                'fitted': False,
                'constant_value': None
            }]
        }

        # Run
        instance = VineCopula.from_dict(vine_dict)

        # Check
        assert instance.vine_type == 'regular'
        assert instance.n_sample == 100
        assert instance.n_var == 10
        assert instance.depth == 3
        assert instance.truncated == 3
        assert len(instance.trees) == 1
        assert instance.trees[0].to_dict() == Tree('regular').to_dict()
        assert (instance.tau_mat == np.array([[0, 1], [1, 0]])).all()
        assert (instance.u_matrix == np.array([[0, 1], [1, 0]])).all()