Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MLE for two correlated regressions

    Hi everyone,
    I want to estimate parameters b1,b2,b3 in these two regressions in MLE (maximum likelihood estimation), which their error terms are correlated:
    Y1 = b1 *X + eps1
    Y2 = (p)*b2 * X + (1-p)*b3*X + eps2

    X is independent variables and p is a binary [0,1] variable, which in second regression can distinguish observations with p=0 from p=1 in b3 and b2.
    I assume that r = CORR(eps1,eps2) is NOT zero and error terms have Multivariate Normal distribution.

    I wanted to run this model in MLE but I could not. :|
    Can anyone help me?

    Last edited by Paul Taylor; 30 Dec 2021, 12:50.

  • #2
    Same as before, mutatis mutandis.

    .ÿ
    .ÿversionÿ17.0

    .ÿ
    .ÿclearÿ*

    .ÿ
    .ÿ//ÿseedem
    .ÿsetÿseedÿ717321674

    .ÿ
    .ÿquietlyÿdrawnormÿe1ÿe2,ÿdoubleÿcorr(1ÿ0.5ÿ\ÿ0.5ÿ1)ÿn(50)

    .ÿ
    .ÿgenerateÿdoubleÿpreÿ=ÿruniform(-0.5,ÿ0.5)

    .ÿgenerateÿbyteÿpieÿ=ÿmod(_n,ÿ2)

    .ÿ
    .ÿquietlyÿgenerateÿdoubleÿxb1ÿ=ÿ-2ÿ*ÿpreÿifÿ!pie

    .ÿquietlyÿreplaceÿxb1ÿ=ÿ2ÿ*ÿpreÿifÿpie

    .ÿ
    .ÿgenerateÿdoubleÿxb2ÿ=ÿ(pieÿ-ÿ0.5)ÿ*ÿpre

    .ÿ
    .ÿforvaluesÿyÿ=ÿ1/2ÿ{
    ÿÿ2.ÿÿÿÿÿÿÿÿÿgenerateÿdoubleÿout`y'ÿ=ÿxb`y'ÿ+ÿe`y'
    ÿÿ3.ÿ}

    .ÿ
    .ÿ*
    .ÿ*ÿBeginÿhere
    .ÿ*
    .ÿmvregÿout1ÿout2ÿ=ÿibn.pie#c.pre,ÿnoconstant

    EquationÿÿÿÿÿÿÿÿÿÿÿÿÿObsÿÿÿParmsÿÿÿÿÿÿÿÿRMSEÿÿÿÿ"R-sq"ÿÿÿÿÿÿÿÿÿÿFÿÿÿÿÿÿP>F
    --------------------------------------------------------------------------
    out1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ50ÿÿÿÿÿÿÿ2ÿÿÿÿ.8921528ÿÿÿÿ0.2579ÿÿÿ8.339325ÿÿÿ0.0008
    out2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ50ÿÿÿÿÿÿÿ2ÿÿÿÿ.8582197ÿÿÿÿ0.1148ÿÿÿ3.111797ÿÿÿ0.0536

    ------------------------------------------------------------------------------
    ÿÿÿÿÿÿÿÿÿÿÿÿÿ|ÿCoefficientÿÿStd.ÿerr.ÿÿÿÿÿÿtÿÿÿÿP>|t|ÿÿÿÿÿ[95%ÿconf.ÿinterval]
    -------------+----------------------------------------------------------------
    out1ÿÿÿÿÿÿÿÿÿ|
    ÿÿÿpie#c.preÿ|
    ÿÿÿÿÿÿÿÿÿÿ0ÿÿ|ÿÿ-1.776693ÿÿÿ.5722428ÿÿÿÿ-3.10ÿÿÿ0.003ÿÿÿÿ-2.927264ÿÿÿ-.6261215
    ÿÿÿÿÿÿÿÿÿÿ1ÿÿ|ÿÿÿ1.464861ÿÿÿ.5521319ÿÿÿÿÿ2.65ÿÿÿ0.011ÿÿÿÿÿ.3547254ÿÿÿÿ2.574996
    -------------+----------------------------------------------------------------
    out2ÿÿÿÿÿÿÿÿÿ|
    ÿÿÿpie#c.preÿ|
    ÿÿÿÿÿÿÿÿÿÿ0ÿÿ|ÿÿÿ-.974048ÿÿÿ.5504775ÿÿÿÿ-1.77ÿÿÿ0.083ÿÿÿÿ-2.080857ÿÿÿÿ.1327613
    ÿÿÿÿÿÿÿÿÿÿ1ÿÿ|ÿÿ-.9340375ÿÿÿ.5311315ÿÿÿÿ-1.76ÿÿÿ0.085ÿÿÿÿ-2.001949ÿÿÿÿ.1338739
    ------------------------------------------------------------------------------

    .ÿ
    .ÿexit

    endÿofÿdo-file


    .

    Comment


    • #3
      Sorry, misread that the equations are different (precoffee).

      Try something like the following in lieu of -mvreg-.
      Code:
      *
      * Begin here
      *
      sureg (out1 = ibn.pie#c.pre, noconstant) (out2 = c.pre)

      Comment


      • #4
        And if you're interested in the full illustration, then here:

        .ÿ
        .ÿversionÿ17.0

        .ÿ
        .ÿclearÿ*

        .ÿ
        .ÿ//ÿseedem
        .ÿsetÿseedÿ717321674

        .ÿ
        .ÿquietlyÿdrawnormÿe1ÿe2,ÿdoubleÿcorr(1ÿ0.5ÿ\ÿ0.5ÿ1)ÿn(300)

        .ÿ
        .ÿgenerateÿdoubleÿpreÿ=ÿruniform(-0.5,ÿ0.5)

        .ÿgenerateÿbyteÿpieÿ=ÿmod(_n,ÿ2)

        .ÿ
        .ÿquietlyÿgenerateÿdoubleÿxb1ÿ=ÿ-2ÿ*ÿpreÿifÿ!pie

        .ÿquietlyÿreplaceÿxb1ÿ=ÿ2ÿ*ÿpreÿifÿpie

        .ÿ
        .ÿgenerateÿdoubleÿxb2ÿ=ÿpre

        .ÿ
        .ÿforvaluesÿyÿ=ÿ1/2ÿ{
        ÿÿ2.ÿÿÿÿÿÿÿÿÿgenerateÿdoubleÿout`y'ÿ=ÿxb`y'ÿ+ÿe`y'
        ÿÿ3.ÿ}

        .ÿ
        .ÿ*
        .ÿ*ÿBeginÿhere
        .ÿ*
        .ÿsuregÿ(out1ÿ=ÿibn.pie#c.pre,ÿnoconstant)ÿ(out2ÿ=ÿc.pre),ÿ///
        >ÿÿÿÿÿÿÿÿÿisureÿnoheaderÿnolog

        ------------------------------------------------------------------------------
        ÿÿÿÿÿÿÿÿÿÿÿÿÿ|ÿCoefficientÿÿStd.ÿerr.ÿÿÿÿÿÿzÿÿÿÿP>|z|ÿÿÿÿÿ[95%ÿconf.ÿinterval]
        -------------+----------------------------------------------------------------
        out1ÿÿÿÿÿÿÿÿÿ|
        ÿÿÿpie#c.preÿ|
        ÿÿÿÿÿÿÿÿÿÿ0ÿÿ|ÿÿ-1.873873ÿÿÿ.2719157ÿÿÿÿ-6.89ÿÿÿ0.000ÿÿÿÿ-2.406818ÿÿÿ-1.340928
        ÿÿÿÿÿÿÿÿÿÿ1ÿÿ|ÿÿÿ2.199701ÿÿÿÿ.268748ÿÿÿÿÿ8.18ÿÿÿ0.000ÿÿÿÿÿ1.672964ÿÿÿÿ2.726437
        -------------+----------------------------------------------------------------
        out2ÿÿÿÿÿÿÿÿÿ|
        ÿÿÿÿÿÿÿÿÿpreÿ|ÿÿÿ1.061183ÿÿÿ.2018302ÿÿÿÿÿ5.26ÿÿÿ0.000ÿÿÿÿÿ.6656034ÿÿÿÿ1.456763
        ÿÿÿÿÿÿÿ_consÿ|ÿÿ-.0213064ÿÿÿ.0472371ÿÿÿÿ-0.45ÿÿÿ0.652ÿÿÿÿ-.1138895ÿÿÿÿ.0712766
        ------------------------------------------------------------------------------

        .ÿ
        .ÿgsemÿ///
        >ÿÿÿÿÿÿÿÿÿ(out1ÿ<-ÿibn.pie#c.pre,ÿnoconstant)ÿ///
        >ÿÿÿÿÿÿÿÿÿ(out2ÿ<-ÿc.pre),ÿ///
        >ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿcovariance(e.out1*e.out2)ÿ///
        >ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnocnsreportÿnodvheaderÿnolog

        GeneralizedÿstructuralÿequationÿmodelÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNumberÿofÿobsÿ=ÿ300
        Logÿlikelihoodÿ=ÿ-783.65728

        ------------------------------------------------------------------------------------
        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|ÿCoefficientÿÿStd.ÿerr.ÿÿÿÿÿÿzÿÿÿÿP>|z|ÿÿÿÿÿ[95%ÿconf.ÿinterval]
        -------------------+----------------------------------------------------------------
        out1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
        ÿÿÿÿÿÿÿÿÿpie#c.preÿ|
        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0ÿÿ|ÿÿ-1.873873ÿÿÿ.2719392ÿÿÿÿ-6.89ÿÿÿ0.000ÿÿÿÿ-2.406864ÿÿÿ-1.340882
        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1ÿÿ|ÿÿÿ2.199701ÿÿÿ.2687705ÿÿÿÿÿ8.18ÿÿÿ0.000ÿÿÿÿÿÿ1.67292ÿÿÿÿ2.726481
        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
        ÿÿÿÿÿÿÿÿÿÿÿÿÿ_consÿ|ÿÿÿÿÿÿÿÿÿÿ0ÿÿ(omitted)
        -------------------+----------------------------------------------------------------
        out2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|
        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpreÿ|ÿÿÿ1.061183ÿÿÿ.2018302ÿÿÿÿÿ5.26ÿÿÿ0.000ÿÿÿÿÿ.6656034ÿÿÿÿ1.456763
        ÿÿÿÿÿÿÿÿÿÿÿÿÿ_consÿ|ÿÿ-.0213064ÿÿÿ.0472455ÿÿÿÿ-0.45ÿÿÿ0.652ÿÿÿÿÿ-.113906ÿÿÿÿ.0712931
        -------------------+----------------------------------------------------------------
        ÿÿÿÿÿÿÿÿvar(e.out1)|ÿÿÿ.9529528ÿÿÿ.0778147ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.8120175ÿÿÿÿ1.118349
        ÿÿÿÿÿÿÿÿvar(e.out2)|ÿÿÿ.9177812ÿÿÿ.0749419ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.7820488ÿÿÿÿ1.077071
        -------------------+----------------------------------------------------------------
        ÿcov(e.out1,e.out2)|ÿÿÿ.4876971ÿÿÿ.0609079ÿÿÿÿÿ8.01ÿÿÿ0.000ÿÿÿÿÿ.3683198ÿÿÿÿ.6070744
        ------------------------------------------------------------------------------------

        .ÿ
        .ÿexit

        endÿofÿdo-file


        .

        Comment

        Working...
        X