Пример #1
0
    def test_plot_parametric_model(self):

        dist1 = Distribution("NB", 0, 3.5, 0.3)
        histo1 = Simulate(dist1, 200)
        if DISABLE_PLOT == False:
            Plot(histo1)
        dist2 = Estimate(histo1, "NB", MinInfBound=0, InfBoundStatus="Fixed")
        if DISABLE_PLOT == False:
            Plot(dist2)
def test1():

    #ORIGINAL AML stops HERE

    d11 = Binomial(0, 12, 0.1)
    d12 = Binomial(2, 13, 0.6)
    d13 = Binomial(3, 15, 0.9)

    d21 = Poisson(0, 25.0)
    d22 = Poisson(0, 5.0)
    d23 = Poisson(0, 0.2)

    m = _MultivariateMixture([0.1, 0.2, 0.7],
                             [[d11, d21], [d12, d22], [d13, d23]])
    print m

    #m2 = _MultivariateMixture("mixture_mv1.mixt")
    #print m2

    #print "Egalite des melanges construits par liste ",\
    #  "de distributions et par fichiers : ", str(str(m)==str(m2))

    #m = _MultivariateMixture("mixture_mv_nonparam.mixt")
    # print m

    print "Simulation de melanges multivaries : "
    v = m.simulate(5000)
    print v

    Plot(m, variable=1, Title="Simulated mixture")

    print "Estimation de melanges multivaries ", \
    #    "d'apres un modele initial : "

    m_estim_model = v.mixture_estimation(m, 100, [True, True])

    extracted_mixture = m_estim_model.extract_mixture(1)
    extracted_mixture.old_plot(variable=1, Title="Marginal distribution")
    Plot(m_estim_model, variable=1, Title="Estimated mixture")

    print "Estimation de melanges multivaries ", \
        "d'apres un nombre de composantes : "

    m_estim_nbcomp = v.mixture_estimation(2, 100, [True, True])

    m_estim_nbcomp.plot(variable=1, Title="Estimated mixture")

    clust_entropy = m_estim_nbcomp.cluster_data(v, True)
    clust_plain = m_estim_nbcomp.cluster_data(v, False)
Пример #3
0
    def test_plot_convolution(self):

        convol1 = Convolution("data/convolution1.conv")
        if DISABLE_PLOT == False:
            Plot(convol1.extract_elementary(1), convol1.extract_elementary(2))

        histo_b2 = Histogram("data/nothofagus_antarctica_bud_2.his")
        histo_s2 = Histogram("data/nothofagus_antarctica_shoot_2.his")

        convol31 = Estimate(Shift(histo_s2, 1),
                            "CONVOLUTION",
                            Estimate(histo_b2, "NP"),
                            NbIteration=100,
                            Estimator="PenalizedLikelihood",
                            Weight=0.5)
        if DISABLE_PLOT == False:
            Plot(convol31.extract_elementary(1))
Пример #4
0
    def _test_plot_distribution_set(self):

        d1 = Distribution("B", 2, 18, 0.5)
        d2 = Distribution("NB", 10, 10, 0.5)
        d3 = Distribution("U", 10, 20)

        if DISABLE_PLOT == False:
            Plot(d1, d2, d3)
            d1.old_plot()
    def test_merge_histo(self):
        meri1 = Histogram(get_shared_data( "meri1.his"))
        meri2 = Histogram(get_shared_data( "meri2.his"))
        meri3 = Histogram(get_shared_data( "meri3.his"))
        meri4 = Histogram(get_shared_data( "meri4.his"))
        meri5 = Histogram(get_shared_data( "meri5.his"))
       

        meri = Merge(meri1, meri2, meri3, meri4, meri5)
        assert meri
        meri_bis = meri1.merge([meri2, meri3, meri4, meri5])
        assert meri_bis
        assert str(meri)==str(meri_bis)
        Plot(meri)
    def test_merge(self):

        mixt1 = Mixture(0.6, Distribution("B", 2, 18, 0.5),
                        0.4, Distribution("NB", 10, 10, 0.5))

        mixt_histo1 = Simulate(mixt1, 200)

        histo10 = mixt_histo1.extract_component(1)
        histo11 = mixt_histo1.extract_component(2)

        histo12 = Merge(histo10, histo11)

        assert histo12
        Plot(histo12)
    def test_merge_vectors(self):

        v1 = self.int_vector_data()
        b = [[2, 78, 45],
             [6, 2, 122],
             [3, 4, 31],]
        v2 = Vectors(b)

        v = Merge(v1, v2)
        assert v

        a = v1.merge([v2])
        b = v2.merge([v1])
        assert str(a)==str(b)

        assert str(a)==str(v)
        Plot(v)
def test():
    meri1 = Histogram(get_shared_data("meri1.his"))
    meri2 = Histogram(get_shared_data("meri2.his"))
    meri3 = Histogram(get_shared_data("meri3.his"))
    meri4 = Histogram(get_shared_data("meri4.his"))
    meri5 = Histogram(get_shared_data("meri5.his"))

    Plot(meri1, meri2, meri3, meri4, meri5)
    Compare(meri1, meri2, meri3, meri4, meri5, "N")

    ComparisonTest("F", meri1, meri2)
    ComparisonTest("T", meri1, meri2)
    ComparisonTest("W", meri1, meri2)

    ComparisonTest("F", meri1, meri3)
    ComparisonTest("T", meri1, meri3)
    ComparisonTest("W", meri1, meri3)

    # Estimation of a mixture of two distributions assuming a first
    # sub-population of GUs made only of a preformed part and a second
    # sub-population made of both a preformed part and a neoformed part

    _mixt1 = Estimate(meri2, "MIXTURE", "B", "B")

    meri = Merge(meri1, meri2, meri3, meri4, meri5)

    #model selection approach: estimation of both the mixture parameters and
    # the number of components

    mixt2 = Estimate(meri,
                     "MIXTURE",
                     "B",
                     "B",
                     "B",
                     "B",
                     NbComponent="Estimated")
    mixt2 = Estimate(meri, "MIXTURE", "NB", "NB")
    Plot(mixt2)
    Plot(ExtractDistribution(mixt2, "Mixture"))

    print type(ExtractDistribution(mixt2, "Component", 1))

    Plot(ExtractDistribution(mixt2, "Component", 1),
         ExtractDistribution(mixt2, "Component", 2))
    Display(mixt2)

    _mixt_data = ExtractData(mixt2)

    dist5 = Estimate(meri5, "BINOMIAL")
    Display(dist5, Detail=2)
    Plot(dist5)

    histo5 = Simulate(dist5, 100)
    Display(histo5, Detail=2)
    Plot(histo5)

    peup1 = Histogram(get_shared_data("peup1.his"))
    peup2 = Histogram(get_shared_data("peup2.his"))
    peup3 = Histogram(get_shared_data("peup3.his"))
    peup4 = Histogram(get_shared_data("peup4.his"))
    peup5 = Histogram(get_shared_data("peup5.his"))
    peup6 = Histogram(get_shared_data("peup6.his"))

    _mixt10 = Estimate(peup2,
                       "MIXTURE",
                       "B",
                       "NB",
                       "NB",
                       "NB",
                       NbComponent="Estimated")

    peup = Merge(peup1, peup2, peup3, peup4, peup5, peup6)

    _histo1 = Shift(peup, -1)
    _histo2 = Cluster(peup, "Information", 0.8)
    _histo3 = Cluster(peup, "Step", 10)
    histo4 = Cluster(peup, "Limit", [13, 24])
    Display(histo4, Detail=2)
    Plot(histo4)

    _mixt11 = Estimate(peup,
                       "MIXTURE",
                       "B",
                       "NB",
                       "NB",
                       "NB",
                       NbComponent="Estimated")
    _mixt11 = Estimate(peup, "MIXTURE", "B", "NB")
Пример #9
0
def test_output_plot_viewpoint_survival():
    d1 = Distribution("B", 2, 19, 0.5)
    Plot(d1)
    Plot(d1, ViewPoint='Survival')
def test():
    vec10 = Vectors("data/chene_sessile.vec")
    Plot(vec10)
    # plot of the pointwise averages
    Plot(Regression(vec10, "MovingAverage", 1, 2, [1]))

    vec95 = ValueSelect(vec10, 1, 1995)
    vec96 = ValueSelect(vec10, 1, 1996)
    vec97 = ValueSelect(vec10, 1, 1997)

    VarianceAnalysis(vec10, 1, 2, "N")
    Compare(ExtractHistogram(vec95, 2), ExtractHistogram(vec96, 2), \
            ExtractHistogram(vec95, 2), "N")


    Plot(ExtractHistogram(vec95, 2), ExtractHistogram(vec96, 2), \
         ExtractHistogram(vec97, 2))

    ContingencyTable(vec10, 1, 4)

    # one-way variance analysis based on ranks
    VarianceAnalysis(vec10, 1, 4, "O")
    Compare(ExtractHistogram(vec95, 4), ExtractHistogram(vec96, 4), \
            ExtractHistogram(vec95, 4), "O")

    # looks like it is not plotted
    Plot(ExtractHistogram(vec95, 4), ExtractHistogram(vec96, 4),
         ExtractHistogram(vec97, 4))
    Plot(ExtractHistogram(vec95, 5), ExtractHistogram(vec96, 5),
         ExtractHistogram(vec97, 5))
    Plot(ExtractHistogram(vec95, 6), ExtractHistogram(vec96, 6),
         ExtractHistogram(vec97, 6))

    vec11 = ValueSelect(vec10, 4, 1)
    vec12 = ValueSelect(vec10, 4, 2)
    vec13 = ValueSelect(vec10, 4, 3, 4)

    Plot(ExtractHistogram(vec11, 2), ExtractHistogram(vec12, 2),
         ExtractHistogram(vec13, 2))
    Plot(ExtractHistogram(vec11, 5), ExtractHistogram(vec12, 5),
         ExtractHistogram(vec13, 5))

    mixt20 = Estimate(ExtractHistogram(vec10, 2), \
                      "MIXTURE", "NB", "NB", "NB", "NB", \
                      NbComponent="Estimated")
    Display(mixt20)

    Plot(mixt20)
    Plot(ExtractDistribution(mixt20, "Mixture"))

    _mixt21 = Estimate(ExtractHistogram(vec10, 5), \
                       "MIXTURE", "NB", "NB", "NB", "NB", \
                       NbComponent="Estimated")

    vec9596 = ValueSelect(vec10, 1, 1995, 1996)

    Plot(ExtractHistogram(ValueSelect(vec9596, 4, 1), 6), \
         ExtractHistogram(ValueSelect(vec9596, 4, 2), 6), \
         ExtractHistogram(ValueSelect(vec9596, 4, 3, 4), 6))

    # linear regression
    regress10 = Regression(vec10, "Linear", 5, 2)
    Display(regress10)
    Plot(regress10)

    # nonparametric regression (loess smoother)

    _regress11 = Regression(vec10, "NearestNeighbors", 5, 2, 0.3)
    _regress12 = Regression(vec9596, "Linear", 5, 6)
    _regress13 = Regression(vec9596, "NearestNeighbors", 5, 6, 0.5)

    _vec15 = SelectVariable(vec10, [1, 3, 6], Mode="Reject")
def test():
    """Mixture tests from exploratory.aml
    #
    #  Frequency distributions
    #
    #  Objective: Analyzing the number of nodes of growth units in selected architectural
    #                 position considering the respective roles of preformation and neoformation,
    #
    #  Methods: comparison tests, one-way variance analysis,
    #           estimation of finite mixture of distributions.
    #
    #  Wild cherry tree: number of nodes per growth unit (GU)
    #
    #  Data: Dominique Fournier
    #
    #  meri1.his: order 1,
    #  meri1.his: order 2,
    #  meri1.his: order 3, GU 1,
    #  meri1.his: order 3, GU 2,
    #  meri5.his: short shoots.
    #
    #
    #  Poplar: number of nodes per growth unit
    #
    #  Data: Yves Caraglio and Herve Rey
    #
    #  peup1.his: order 2,
    #  peup2.his: order 3,
    #  peup3.his: order 4,
    #  peup4.his: order 5,
    #  peup5.his: order 3, GU 4,
    #  peup6.his: order 3, acrotony.
    #
    #########################################################################
    """

    plot.DISABLE_PLOT = DISABLE_PLOT
    meri1 = Histogram(get_shared_data("meri1.his"))
    meri2 = Histogram(get_shared_data("meri2.his"))
    meri3 = Histogram(get_shared_data("meri3.his"))
    meri4 = Histogram(get_shared_data("meri4.his"))
    meri5 = Histogram(get_shared_data("meri5.his"))

    Plot(meri1, meri2, meri3, meri4, meri5)
    Compare(meri1, meri2, meri3, meri4, meri5, "N")

    ComparisonTest("F", meri1, meri2)
    ComparisonTest("T", meri1, meri2)
    ComparisonTest("W", meri1, meri2)

    ComparisonTest("F", meri1, meri3)
    ComparisonTest("T", meri1, meri3)
    ComparisonTest("W", meri1, meri3)

    # Estimation of a mixture of two distributions assuming a first
    # sub-population of GUs made only of a preformed part and a second
    # sub-population made of both a preformed part and a neoformed part

    _mixt1 = Estimate(meri2, "MIXTURE", "B", "B")

    meri = Merge(meri1, meri2, meri3, meri4, meri5)

    # model selection approach: estimation of both the mixture parameters and
    # the number of components"""

    mixt2 = Estimate(meri,
                     "MIXTURE",
                     "B",
                     "B",
                     "B",
                     "B",
                     NbComponent="Estimated")
    mixt2 = Estimate(meri, "MIXTURE", "NB", "NB")
    Plot(mixt2)
    Plot(ExtractDistribution(mixt2, "Mixture"))
    Plot(ExtractDistribution(mixt2, "Component", 1),
         ExtractDistribution(mixt2, "Component", 2))
    Display(mixt2)

    _mixt_data = ExtractData(mixt2)

    dist5 = Estimate(meri5, "BINOMIAL")
    Display(dist5, Detail=2)
    Plot(dist5)

    histo5 = Simulate(dist5, 100)
    Display(histo5, Detail=2)
    Plot(histo5)

    peup1 = Histogram(get_shared_data("peup1.his"))
    peup2 = Histogram(get_shared_data("peup2.his"))
    peup3 = Histogram(get_shared_data("peup3.his"))
    peup4 = Histogram(get_shared_data("peup4.his"))
    peup5 = Histogram(get_shared_data("peup5.his"))
    peup6 = Histogram(get_shared_data("peup6.his"))

    _mixt10 = Estimate(peup2,
                       "MIXTURE",
                       "B",
                       "NB",
                       "NB",
                       "NB",
                       NbComponent="Estimated")

    peup = Merge(peup1, peup2, peup3, peup4, peup5, peup6)

    _histo1 = Shift(peup, -1)
    _histo2 = Cluster(peup, "Information", 0.8)
    _histo3 = Cluster(peup, "Step", 10)
    histo4 = Cluster(peup, "Limit", [13, 24])
    Display(histo4, Detail=2)
    Plot(histo4)

    _mixt11 = Estimate(peup,
                       "MIXTURE",
                       "B",
                       "NB",
                       "NB",
                       "NB",
                       NbComponent="Estimated")

    _mixt11 = Estimate(peup, "MIXTURE", "B", "NB")
def test2():
    """finite mixture of discrete distributions"""

    mixt1 = Mixture("data//mixture1.mixt")
    mixt1 = Mixture(0.6, Distribution("B", 2, 18, 0.5), 0.4,
                    Distribution("NB", 10, 10, 0.5))

    mixt_histo1 = Simulate(mixt1, 200)
    Plot(mixt_histo1)
    # extraction of histograms/frequency distributions corresponding
    # to a given mixture component
    # (i.e. elementary distributions which are combined by mixture)

    histo10 = ExtractHistogram(mixt_histo1, "Component", 1)
    histo11 = ExtractHistogram(mixt_histo1, "Component", 2)
    _histo12 = Merge(histo10, histo11)
    _histo13 = ExtractHistogram(mixt_histo1, "Weight")

    # estimation

    mixt2 = Estimate(mixt_histo1,
                     "MIXTURE",
                     "B",
                     "NB",
                     MinInfBound=0,
                     InfBoundStatus="Fixed",
                     DistInfBoundStatus="Fixed")

    _mixt_histo2 = ExtractData(mixt2)

    _histo14 = ExtractHistogram(ExtractData(mixt2), "Component", 1)
    _histo15 = ToHistogram(ExtractDistribution(mixt2, "Component", 1))

    # estimation and selection of the number of components

    meri1 = Histogram(get_shared_data("meri1.his"))
    meri2 = Histogram(get_shared_data("meri2.his"))
    meri3 = Histogram(get_shared_data("meri3.his"))
    meri4 = Histogram(get_shared_data("meri4.his"))
    meri5 = Histogram(get_shared_data("meri5.his"))

    #mixt3 = Estimate(meri1, "MIXTURE", Distribution("B", 6, 7, 0.5), "B")
    mixt3 = Estimate(meri1, "MIXTURE", "B", "B")
    Plot(mixt3)
    # NbComponent="Fixed" (default) / "Estimated"
    # Penalty="AIC"/ "AICc" / "BIC" / "BICc" (default), option
    # valide if NbComponent="Estimated"

    meri = Merge(meri1, meri2, meri3, meri4, meri5)

    mixt2 = Estimate(meri,
                     "MIXTURE",
                     "B",
                     "B",
                     "B",
                     "B",
                     NbComponent="Estimated",
                     Penalty="BIC")
    Display(mixt2, Detail=2)
    dist_mixt = ExtractDistribution(mixt2, "Mixture")
    Plot(dist_mixt)