def testWeightedModelMatrix(self):

        linearModel = LinearModel(
            self.regressorList, self.regressorNames, self.covMatrixObserv2, regressorsAreWeighted=True
        )
        self.assertTrue(np.alltrue(linearModel.designMatrix() == self.unweightedDesignMatrix))

        linearModel = LinearModel(
            self.regressorList, self.regressorNames, self.covMatrixObserv2, regressorsAreWeighted=False
        )
        self.assertFalse(np.alltrue(linearModel.designMatrix() == self.unweightedDesignMatrix))

        expectedWeightedDesignMatrix = np.array(
            [
                [3.16227766e00, 4.73643073e-15],
                [4.23376727e-01, 2.79508497e00],
                [-2.67843095e-01, 3.79299210e00],
                [-5.45288776e-01, 4.39760881e00],
                [-6.78144517e-01, 4.84809047e00],
                [-7.46997591e-01, 5.21965041e00],
                [-7.83412990e-01, 5.54374745e00],
                [-8.01896636e-01, 5.83605564e00],
                [-8.09868157e-01, 6.10538773e00],
                [-8.11425366e-01, 6.35716086e00],
            ]
        )

        self.assertTrue(
            np.allclose(linearModel.designMatrix(), expectedWeightedDesignMatrix, rtol=1.0e-6, atol=1.0e-08)
        )
    def testCopyLinearModel(self):

        linearModel = LinearModel(self.regressorList, self.regressorNames)
        linearModel2 = linearModel.copy()
        self.assertTrue(linearModel2.nParameters() == self.nParameters)
        self.assertTrue(np.alltrue(linearModel2.designMatrix() == self.designMatrix))
        self.assertTrue(linearModel2.regressorNames() == self.regressorNames)
        self.assertTrue(id(linearModel2.designMatrix()) != id(linearModel.designMatrix()))
        self.assertTrue(id(linearModel2.regressorNames()) != id(linearModel.regressorNames()))
Esempio n. 3
0
 def testCopyLinearModel(self):
 
    linearModel = LinearModel(self.regressorList, self.regressorNames)
    linearModel2 = linearModel.copy()
    self.assertTrue(linearModel2.nParameters() == self.nParameters)
    self.assertTrue(np.alltrue(linearModel2.designMatrix() == self.designMatrix))
    self.assertTrue(linearModel2.regressorNames() == self.regressorNames)
    self.assertTrue(id(linearModel2.designMatrix()) != id(linearModel.designMatrix()))
    self.assertTrue(id(linearModel2.regressorNames()) != id(linearModel.regressorNames()))
Esempio n. 4
0
    def testWeightedModelMatrix(self):
            
       linearModel = LinearModel(self.regressorList, self.regressorNames, self.covMatrixObserv2, regressorsAreWeighted=True)
       self.assertTrue(np.alltrue(linearModel.designMatrix() == self.unweightedDesignMatrix))
       
       linearModel = LinearModel(self.regressorList, self.regressorNames, self.covMatrixObserv2, regressorsAreWeighted=False)
       self.assertFalse(np.alltrue(linearModel.designMatrix() == self.unweightedDesignMatrix))
              
       expectedWeightedDesignMatrix = np.array([[ 3.16227766e+00, 4.73643073e-15],
                                                [ 4.23376727e-01, 2.79508497e+00],
                                                [-2.67843095e-01, 3.79299210e+00],
                                                [-5.45288776e-01, 4.39760881e+00],
                                                [-6.78144517e-01, 4.84809047e+00],
                                                [-7.46997591e-01, 5.21965041e+00],
                                                [-7.83412990e-01, 5.54374745e+00],
                                                [-8.01896636e-01, 5.83605564e+00],
                                                [-8.09868157e-01, 6.10538773e+00],
                                                [-8.11425366e-01, 6.35716086e+00]])

       self.assertTrue(np.allclose(linearModel.designMatrix(), expectedWeightedDesignMatrix, rtol=1.0e-6, atol=1.e-08))
Esempio n. 5
0
 def testAddLinearModel(self):
 
    linearModel = LinearModel(self.regressorList, self.regressorNames)
    linearModel2 = LinearModel(self.RegressorList2, self.RegressorNames2)
    linearModel = linearModel + linearModel2
    self.assertTrue(linearModel.nParameters() == self.newnParameters)
    self.assertTrue(np.alltrue(linearModel.designMatrix() == self.newModelMatrix))
    self.assertTrue(linearModel.regressorNames() == self.regressorNames + self.RegressorNames2)
    self.assertTrue(linearModel._covMatrixObserv == None)
    
    self.assertRaises(TypeError, lambda lm : lm + 1.0, linearModel)
    self.assertRaises(ValueError, lambda x,y :  LinearModel(x,y) + LinearModel(x[:-1,:],y),
                      self.designMatrix, self.regressorNames)
    def testAddLinearModel(self):

        linearModel = LinearModel(self.regressorList, self.regressorNames)
        linearModel2 = LinearModel(self.RegressorList2, self.RegressorNames2)
        linearModel = linearModel + linearModel2
        self.assertTrue(linearModel.nParameters() == self.newnParameters)
        self.assertTrue(np.alltrue(linearModel.designMatrix() == self.newModelMatrix))
        self.assertTrue(linearModel.regressorNames() == self.regressorNames + self.RegressorNames2)
        self.assertTrue(linearModel._covMatrixObserv == None)

        self.assertRaises(TypeError, lambda lm: lm + 1.0, linearModel)
        self.assertRaises(
            ValueError,
            lambda x, y: LinearModel(x, y) + LinearModel(x[:-1, :], y),
            self.designMatrix,
            self.regressorNames,
        )
    def testModelMatrix(self):

        # With a list of regressor arrays as input

        linearModel = LinearModel(self.regressorList, self.regressorNames)
        self.assertTrue(isinstance(linearModel.designMatrix(), np.ndarray))
        self.assertTrue(linearModel.designMatrix().dtype == np.double)
        self.assertTrue(linearModel.designMatrix().shape == (self.nObservations, self.nParameters))
        self.assertTrue(np.alltrue(linearModel.designMatrix() == self.designMatrix))

        # With a design matrix as input

        linearModel = LinearModel(self.designMatrix, self.regressorNames)
        self.assertTrue(isinstance(linearModel.designMatrix(), np.ndarray))
        self.assertTrue(linearModel.designMatrix().dtype == np.double)
        self.assertTrue(linearModel.designMatrix().shape == (self.nObservations, self.nParameters))
        self.assertTrue(np.alltrue(linearModel.designMatrix() == self.designMatrix))
Esempio n. 8
0
    def testModelMatrix(self):
    
       # With a list of regressor arrays as input
        
       linearModel = LinearModel(self.regressorList, self.regressorNames)
       self.assertTrue(isinstance(linearModel.designMatrix(), np.ndarray))
       self.assertTrue(linearModel.designMatrix().dtype == np.double)
       self.assertTrue(linearModel.designMatrix().shape == (self.nObservations, self.nParameters))
       self.assertTrue(np.alltrue(linearModel.designMatrix() == self.designMatrix))

       # With a design matrix as input

       linearModel = LinearModel(self.designMatrix, self.regressorNames)
       self.assertTrue(isinstance(linearModel.designMatrix(), np.ndarray))
       self.assertTrue(linearModel.designMatrix().dtype == np.double)
       self.assertTrue(linearModel.designMatrix().shape == (self.nObservations, self.nParameters))
       self.assertTrue(np.alltrue(linearModel.designMatrix() == self.designMatrix))