Announcement

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

  • Control Function Model with two IV's that produce different coefficient signs

    Hi there, I am trying to run a control function model, where household income (loghou) is assumed to be endogenous and life satisfaction (reallifesat) is the dependent variable. I have two instrumental varables, lottery wins (lotterywindummy) and child benefit reciepts (childbenrec). My control variables are health status (goodhealth), hours of homework (hourshw), frequency of friend meet ups (friendmeet), emotional scale (mental) and a dummy for if they have drunk alcohol (alcoholdummy).

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input float(realifesat loghouinc lotterywindummy childbenrec goodhealth) byte(hourshw hourssm) float friendmeet int age byte(m_sex alcoholdummy mental smartphone)
     7 10.217443 0  1 5  1 0 3 11 1 2  0 0
     6 10.217443 0  0 4  1 0 2 13 1 2  4 0
     5 10.980103 0  1 5  2 4 3 15 1 1  2 1
     7  11.15004 0  1 5  2 0 2 11 2 2  0 1
     6  9.574984 0  0 3 -8 3 1 13 1 2  2 1
     6 10.805978 0  0 5  6 4 3 15 2 1  2 1
     4 11.152872 0  0 3  3 3 2 14 2 1  5 1
     7 11.152872 0  1 4  9 0 2 11 1 2  0 1
     6  11.16081 0  0 5  1 3 2 12 2 2  4 1
     3 10.631496 0  0 3  1 3 3 11 2 1  9 1
     6 12.496484 0  0 4  9 0 3 11 2 2  1 1
     6 12.496484 0  0 4 -8 0 3 10 1 2  0 1
     6  10.98229 0  0 2  2 0 1 11 2 2  0 1
     6  10.98229 0  1 4  1 2 1 15 1 1  1 1
     7 10.134775 0  0 3  2 3 1 13 2 1  2 1
     7 10.134775 0  1 4  1 5 2 10 1 2  1 1
     6 10.281376 0  0 4  1 0 3 10 2 2  1 0
     6 10.281376 0  0 4  2 0 2 12 1 2  1 1
     6  9.869933 0  1 4  1 4 2 12 1 1  1 1
     7 11.053432 0  0 5  2 1 1 13 1 2  1 1
     2 10.267472 0  0 3  3 4 2 13 2 1 10 1
     5 10.179217 0  0 3  2 2 3 15 2 1  6 1
     6  9.787174 0  1 4  1 4 3 11 2 2  6 1
     5  10.95349 0  0 4  2 3 5 15 1 2  0 1
     7  7.560081 0  1 4  7 3 2 12 1 2  1 1
     5 11.625754 0  0 4  2 2 2 14 1 2  3 1
     5  11.13386 0  0 1  2 2 1 13 1 2  4 1
     4  11.13386 0  0 3  3 3 2 15 2 2  7 1
     7 11.094575 0  1 5  0 2 3 14 2 1  1 1
     7  11.01584 0 .8 4  2 3 3 13 2 2  3 1
     4  10.83155 0  0 4  2 0 3 11 1 2  4 1
     5  10.83155 0  0 3  1 0 3 11 1 2  6 1
     5  11.10527 0  0 5  1 2 3 15 2 2  4 1
     6 10.945518 0  1 5  1 2 3 10 1 2  0 0
     7 10.945518 0  1 4  1 3 3 12 2 2  2 1
     6 10.945518 0  1 4  1 3 3 13 1 2  1 1
     4  9.410836 0  0 5  1 0 3 10 2 2  3 0
     7  9.480828 0  1 5  9 3 4 11 1 2  3 1
     7  9.480828 0  1 4  9 3 4 11 2 1  2 1
     5  10.49168 0  1 5  2 3 4 13 2 1  4 1
     4 11.561716 0  0 4  2 3 3 14 2 2  7 1
     6 11.561716 0  0 4  2 3 3 12 2 2  6 1
     4 10.365911 0  1 3  3 3 2 14 1 2  7 1
     6 10.365911 0  1 4  2 3 2 13 1 2  2 1
     7  9.472304 0  1 4  1 2 2 10 1 2  2 0
     7  9.472304 0  1 3  0 3 2 12 1 2  5 1
     1 10.996886 0  1 2  1 3 1 13 2 2  9 1
     5 11.785567 0  0 3  9 5 2 10 1 2  2 0
     7         . 0  0 5  1 2 2 11 2 2  1 0
     3 10.601076 0  0 5 -8 5 1 14 1 2  0 1
     6 10.254686 0  0 4  1 3 3 13 2 2  1 1
     5 11.352874 0  0 4  2 3 4 15 1 1  4 1
     4  11.03592 0  0 4  1 3 3 13 2 2  7 1
     6 10.522905 0  1 3  2 2 3 13 1 2  0 1
     6 10.360896 0  1 3  1 3 2 10 2 2  1 1
     7 11.739168 0  0 5  2 4 4 15 2 1  4 0
     6 11.739168 0  0 4  1 3 4 11 1 2  3 1
     5 10.854137 0  1 3  1 4 3 15 1 2  3 1
     6 10.854137 0  1 4  1 3 5 13 2 2  1 1
     4 11.431707 0  0 5  9 2 2 10 1 2  6 1
     4 11.431707 0  0 3  1 4 1 14 1 2  6 1
     5   10.6211 0  0 5 -8 4 1 13 1 2  3 1
     4 10.469175 0  0 4  9 3 2 14 2 2  7 1
     5 10.242462 0  0 3  9 4 3 11 2 2  1 1
     7 11.230898 0  1 5  0 0 2 12 1 2  0 1
     7 11.230898 0  0 5  1 3 4 10 2 2  1 1
     6  10.25635 0  0 3  2 0 3 11 1 2  6 1
     7 11.338573 0  0 4  2 2 2 15 1 1  2 1
     4 11.338573 0  0 4  1 3 3 12 1 2  6 1
     7  9.664733 0  0 3  1 2 3 13 1 2  2 0
     7 11.151235 0  1 4  6 3 1 14 1 1  1 1
     2  11.71865 0  0 2  4 4 1 15 2 1  8 1
     6   10.7391 0  1 3  9 3 3 12 2 2  7 1
     5  10.82954 0  1 3 -8 0 4 10 2 2  5 1
     5 10.847024 0  0 3  1 3 4 11 2 2  5 1
     6 10.584224 0  1 5  1 4 3 15 2 1  5 1
     6 10.631036 0  0 4  1 3 4 13 1 2  0 1
     7 10.303884 0  0 5  1 3 3 12 1 2  6 1
     2  10.72689 0  1 1  1 3 2 15 2 2 10 1
     7 10.763843 0  1 4  2 3 2 13 1 2  0 1
     7  10.97621 0  0 4  2 4 1 14 2 2  3 1
     7  10.97621 0  0 4  2 3 2 12 2 2  1 1
     5  9.681511 0  0 2  2 4 1 13 2 2  8 1
     7 10.532806 0  0 3  1 3 5 12 1 2  1 1
     4 10.585979 0  0 2  3 4 4 14 2 2  8 1
     7 11.094887 0  0 5  2 0 5 12 2 2  2 1
     4  9.701315 0  0 4  1 3 2 14 1 2  5 1
     4 10.905347 0  1 3  2 2 4 13 2 1  6 0
     4  9.776712 0  0 2  1 4 4 15 2 1  8 1
     6  6.967344 0  1 4  9 3 2 12 2 2  5 1
     7  11.40988 0  0 5  3 3 3 13 2 1  0 1
    17  9.676373 0  1 3  1 2 2 14 2 1  6 1
     6  11.53862 0  0 5  2 3 3 13 2 1  2 1
     7  11.53862 0  0 5  1 1 2 13 2 1  1 1
     6 10.061347 0  1 5  1 2 3 11 1 2  1 1
     5 11.163366 0  0 5  2 3 4 15 2 1  2 1
     5 11.163366 0  0 4  1 2 3 11 1 1  1 0
     7 11.163366 0  0 4  5 3 1 14 1 1  4 1
     7 10.772073 0  1 5  2 4 4 15 2 1  1 1
     7 10.579203 0  0 4  1 0 1 10 2 2  4 1
    end
    label values hourshw m_yphmwkhrs
    label def m_yphmwkhrs -8 "inapplicable", modify
    label values hourssm m_ypnetcht
    label def m_ypnetcht 1 "None", modify
    label def m_ypnetcht 2 "Less than an hour", modify
    label def m_ypnetcht 3 "1 - 3 hours", modify
    label def m_ypnetcht 4 "4 - 6 hours", modify
    label def m_ypnetcht 5 "7 or more hours", modify
    label values age m_dvage
    label values m_sex m_sex
    label def m_sex 1 "male", modify
    label def m_sex 2 "female", modify
    label values alcoholdummy m_ypevralc
    label def m_ypevralc 1 "Yes", modify
    label def m_ypevralc 2 "No", modify
    label values mental m_ypsdqes_dv
    label values smartphone m_ypdevice1
    label def m_ypdevice1 0 "Not mentioned", modify
    label def m_ypdevice1 1 "Mentioned", modify
    I run the control function manually like this
    Code:
    reg incomevar IV controls, robust
    predict vhat, resid
    reg lifesat incomevar controls vhat, robust
    I just change the names of that to match the actual variables but i've written so it's easier to understand, but when I run this, the sign of my coefficient for the income variable in the second stage regression flips (positive for lottery wins and negative for child benefit recipient). I wanted to ask why this could be, is it an error or my part or something with the data. For what it's worth, when I run a over identified model with both IV's, the coefficient on the income variable is negative, but I also find the Hansen J stat to show evidence of rejecting the null of exclusion, so I can't isolate which IV is potentially causing issues.

    As a side note my main dataset has interaction terms based on level of income as I've only recently learnt it's better to keep the sample 'intact' than splice it up endlessly, but i find the situation repeats itself.
    Thanks
    Last edited by Mohammed Haq; 24 Nov 2025, 16:45.

  • #2
    I might be able to help but you must show your Stata output. Did you center controls before interacting them with income? Might log(income) be a better choice?

    Comment


    • #3
      Hi there, please see this dataex that includes my interaction terms, I believe the names are the same, and yes Professor Woolridge income has been transformed using natural logs, and no the controls have not been centred.
      Code:
      * Example generated by -dataex-. For more info, type help dataex
      clear
      input float(reallifesat loghouinc childbenrec lotterywindummy goodhealth) byte hourshw float friendmeet byte m_sex int age byte(mental alcoholdummy) float(under50k between5060k)
      7 10.217443  1 1 5  1 3 1 11  0 2 1 0
      6 10.217443  0 1 4  1 2 1 13  4 2 1 0
      5 10.980103  1 1 5  2 3 1 15  2 1 1 0
      7  11.15004  1 0 5  2 2 2 11  0 2 1 0
      6  9.574984  0 0 3 -8 1 1 13  2 2 1 0
      6 10.805978  0 1 5  6 3 2 15  2 1 1 0
      4 11.152872  0 0 3  3 2 2 14  5 1 1 0
      7 11.152872  1 0 4  9 2 1 11  0 2 1 0
      6  11.16081  0 1 5  1 2 2 12  4 2 0 0
      3 10.631496  0 0 3  1 3 2 11  9 1 1 0
      6 12.496484  0 0 4  9 3 2 11  1 2 0 0
      6 12.496484  0 0 4 -8 3 1 10  0 2 0 0
      6  10.98229  0 0 2  2 1 2 11  0 2 1 0
      6  10.98229  1 0 4  1 1 1 15  1 1 1 0
      7 10.134775  0 0 3  2 1 2 13  2 1 1 0
      7 10.134775  1 0 4  1 2 1 10  1 2 1 0
      6 10.281376  0 0 4  1 3 2 10  1 2 1 0
      6 10.281376  0 0 4  2 2 1 12  1 2 1 0
      6  9.869933  1 1 4  1 2 1 12  1 1 1 0
      7 11.053432  0 0 5  2 1 1 13  1 2 1 0
      2 10.267472  0 1 3  3 2 2 13 10 1 1 0
      5 10.179217  0 0 3  2 3 2 15  6 1 1 0
      6  9.787174  1 0 4  1 3 2 11  6 2 1 0
      5  10.95349  0 1 4  2 5 1 15  0 2 1 0
      7  7.560081  1 0 4  7 2 1 12  1 2 1 0
      5 11.625754  0 0 4  2 2 1 14  3 2 0 0
      5  11.13386  0 0 1  2 1 1 13  4 2 0 0
      4  11.13386  0 0 3  3 2 2 15  7 2 0 0
      7 11.094575  1 1 5  0 3 2 14  1 1 1 0
      7  11.01584 .8 0 4  2 3 2 13  3 2 0 1
      4  10.83155  0 1 4  2 3 1 11  4 2 1 0
      5  10.83155  0 0 3  1 3 1 11  6 2 1 0
      5  11.10527  0 0 5  1 3 2 15  4 2 1 0
      6 10.945518  1 1 5  1 3 1 10  0 2 1 0
      7 10.945518  1 0 4  1 3 2 12  2 2 1 0
      6 10.945518  1 0 4  1 3 1 13  1 2 1 0
      4  9.410836  0 0 5  1 3 2 10  3 2 1 0
      7  9.480828  1 0 5  9 4 1 11  3 2 1 0
      7  9.480828  1 0 4  9 4 2 11  2 1 1 0
      5  10.49168  1 0 5  2 4 2 13  4 1 1 0
      4 11.561716  0 1 4  2 3 2 14  7 2 0 0
      6 11.561716  0 0 4  2 3 2 12  6 2 0 0
      4 10.365911  1 0 3  3 2 1 14  7 2 1 0
      6 10.365911  1 0 4  2 2 1 13  2 2 1 0
      7  9.472304  1 0 4  1 2 1 10  2 2 1 0
      7  9.472304  1 0 3  0 2 1 12  5 2 1 0
      1 10.996886  1 0 2  1 1 2 13  9 2 1 0
      5 11.785567  0 0 3  9 2 1 10  2 2 0 0
      7         .  0 1 5  1 2 2 11  1 2 1 0
      3 10.601076  0 0 5 -8 1 1 14  0 2 1 0
      6 10.254686  0 0 4  1 3 2 13  1 2 1 0
      5 11.352874  0 0 4  2 4 1 15  4 1 0 0
      4  11.03592  0 1 4  1 3 2 13  7 2 1 0
      6 10.522905  1 0 3  2 3 1 13  0 2 1 0
      6 10.360896  1 0 3  1 2 2 10  1 2 1 0
      7 11.739168  0 0 5  2 4 2 15  4 1 0 0
      6 11.739168  0 1 4  1 4 1 11  3 2 0 0
      5 10.854137  1 0 3  1 3 1 15  3 2 1 0
      6 10.854137  1 0 4  1 5 2 13  1 2 1 0
      4 11.431707  0 0 5  9 2 1 10  6 2 0 1
      4 11.431707  0 0 3  1 1 1 14  6 2 0 1
      5   10.6211  0 0 5 -8 1 1 13  3 2 1 0
      4 10.469175  0 1 4  9 2 2 14  7 2 1 0
      5 10.242462  0 0 3  9 3 2 11  1 2 1 0
      7 11.230898  1 1 5  0 2 1 12  0 2 1 0
      7 11.230898  0 1 5  1 4 2 10  1 2 1 0
      6  10.25635  0 0 3  2 3 1 11  6 2 1 0
      7 11.338573  0 0 4  2 2 1 15  2 1 0 0
      4 11.338573  0 0 4  1 3 1 12  6 2 0 0
      7  9.664733  0 0 3  1 3 1 13  2 2 1 0
      7 11.151235  1 0 4  6 1 1 14  1 1 1 0
      2  11.71865  0 0 2  4 1 2 15  8 1 0 0
      6   10.7391  1 0 3  9 3 2 12  7 2 1 0
      5  10.82954  1 1 3 -8 4 2 10  5 2 1 0
      5 10.847024  0 0 3  1 4 2 11  5 2 0 1
      6 10.584224  1 1 5  1 3 2 15  5 1 1 0
      6 10.631036  0 0 4  1 4 1 13  0 2 1 0
      7 10.303884  0 1 5  1 3 1 12  6 2 1 0
      2  10.72689  1 1 1  1 2 2 15 10 2 1 0
      7 10.763843  1 0 4  2 2 1 13  0 2 1 0
      7  10.97621  0 0 4  2 1 2 14  3 2 1 0
      7  10.97621  0 0 4  2 2 2 12  1 2 1 0
      5  9.681511  0 0 2  2 1 2 13  8 2 1 0
      7 10.532806  0 1 3  1 5 1 12  1 2 1 0
      4 10.585979  0 0 2  3 4 2 14  8 2 1 0
      7 11.094887  0 0 5  2 5 2 12  2 2 1 0
      4  9.701315  0 0 4  1 2 1 14  5 2 1 0
      4 10.905347  1 0 3  2 4 2 13  6 1 1 0
      4  9.776712  0 0 2  1 4 2 15  8 1 1 0
      6  6.967344  1 0 4  9 2 2 12  5 2 1 0
      7  11.40988  0 1 5  3 3 2 13  0 1 1 0
      6  11.53862  0 1 5  2 3 2 13  2 1 0 0
      7  11.53862  0 1 5  1 2 2 13  1 1 0 0
      6 10.061347  1 0 5  1 3 1 11  1 2 1 0
      5 11.163366  0 0 5  2 4 2 15  2 1 1 0
      5 11.163366  0 0 4  1 3 1 11  1 1 1 0
      7 11.163366  0 0 4  5 1 1 14  4 1 1 0
      7 10.772073  1 0 5  2 4 2 15  1 1 1 0
      7 10.579203  0 0 4  1 1 2 10  4 2 1 0
      6 10.656215  1 0 5  1 1 2 11  1 2 1 0
      end
      label values hourshw m_yphmwkhrs
      label def m_yphmwkhrs -8 "inapplicable", modify
      label values m_sex m_sex
      label def m_sex 1 "male", modify
      label def m_sex 2 "female", modify
      label values age m_dvage
      label values mental m_ypsdqes_dv
      label values alcoholdummy m_ypevralc
      label def m_ypevralc 1 "Yes", modify
      label def m_ypevralc 2 "No", modify
      My codes for the control function regression are
      Code:
      reg loghouinc c.(childbenrec)##i.under50k c.(childbenrec)##i.between5060k `controls' , robust
      predict vhat_cb , resid
      reg reallifesat c.(loghouinc  )##i.under50k c.(loghouinc )##i.between5060k `control' vhat_cb, robust
      And for the second model I swap my child benefit variable 'childbenrec' for my lottery win variable 'lotterywindummy', and then run a model with both IV's

      Outputs are below
      Code:
      Model 1 IV-Child Benefit 
      .reg loghouinc c.(childbenrec)##i.under50k c.(childbenrec)##i.between5060k `controls' , robust
      note: childbenrec omitted because of collinearity.
      note: 1.between5060k#c.childbenrec omitted because of collinearity.
      
      Linear regression                               Number of obs     =      2,830
                                                      F(4, 2825)        =     499.18
                                                      Prob > F          =     0.0000
                                                      R-squared         =     0.2405
                                                      Root MSE          =      .5985
      
      --------------------------------------------------------------------------------------------
                                 |               Robust
                       loghouinc | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
      ---------------------------+----------------------------------------------------------------
                     childbenrec |  -.1190144   .0866022    -1.37   0.169    -.2888244    .0507955
                      1.under50k |   -1.13205   .0341824   -33.12   0.000    -1.199075   -1.065025
                                 |
          under50k#c.childbenrec |
                              1  |   .0016829   .0901347     0.02   0.985    -.1750535    .1784193
                                 |
                     childbenrec |          0  (omitted)
                  1.between5060k |  -.4544321   .0360351   -12.61   0.000    -.5250899   -.3837743
                                 |
      between5060k#c.childbenrec |
                              1  |          0  (omitted)
                                 |
                           _cons |   11.68134    .029062   401.95   0.000     11.62435    11.73832
      --------------------------------------------------------------------------------------------
      
      
      reg reallifesat c.(loghouinc  )##i.under50k c.(loghouinc )##i.between5060k `control' vhat_cb, robust
      
      note: loghouinc omitted because of collinearity.
      
      Linear regression                               Number of obs     =      2,830
                                                      F(13, 2816)       =      93.97
                                                      Prob > F          =     0.0000
                                                      R-squared         =     0.3669
                                                      Root MSE          =     1.0479
      
      ------------------------------------------------------------------------------------------
                               |               Robust
                   reallifesat | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
      -------------------------+----------------------------------------------------------------
                     loghouinc |    .106704   .3869812     0.28   0.783    -.6520914    .8654995
                    1.under50k |  -2.611184   1.611163    -1.62   0.105    -5.770363    .5479949
                               |
          under50k#c.loghouinc |
                            1  |   .2449068   .1321646     1.85   0.064    -.0142424     .504056
                               |
                     loghouinc |          0  (omitted)
                1.between5060k |  -2.930567    4.37127    -0.67   0.503    -11.50178    5.640648
                               |
      between5060k#c.loghouinc |
                            1  |   .2540115   .3895503     0.65   0.514    -.5098213    1.017844
                               |
                    goodhealth |   .3970851   .0257208    15.44   0.000     .3466515    .4475186
                       hourshw |  -.0092987   .0061558    -1.51   0.131     -.021369    .0027716
                    friendmeet |   .0384597   .0180201     2.13   0.033     .0031257    .0737937
                         m_sex |  -.0134868   .0417791    -0.32   0.747    -.0954075     .068434
                           age |  -.0683818   .0120534    -5.67   0.000    -.0920163   -.0447474
                        mental |    -.18677   .0104141   -17.93   0.000      -.20719     -.16635
                  alcoholdummy |   .0969646   .0306533     3.16   0.002     .0368595    .1570697
                       vhat_cb |  -.3528462    .364974    -0.97   0.334     -1.06849    .3627972
                         _cons |   4.208381   4.521075     0.93   0.352    -4.656573    13.07334
      ------------------------------------------------------------------------------------------
      
      Model 2 IV- Lottery Wins
      
      . reg loghouinc c.(lotterywindummy )##i.under50k c.(lotterywindummy)##i.between5060k `control' , robust
      note: lotterywindummy omitted because of collinearity.
      
      Linear regression                               Number of obs     =      2,830
                                                      F(12, 2817)       =     169.29
                                                      Prob > F          =     0.0000
                                                      R-squared         =     0.2443
                                                      Root MSE          =     .59786
      
      ------------------------------------------------------------------------------------------------
                                     |               Robust
                           loghouinc | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
      -------------------------------+----------------------------------------------------------------
                     lotterywindummy |  -.1070997     .06465    -1.66   0.098    -.2338657    .0196664
                          1.under50k |  -1.204515   .0358516   -33.60   0.000    -1.274813   -1.134217
                                     |
          under50k#c.lotterywindummy |
                                  1  |   .1456284   .0712241     2.04   0.041     .0059717    .2852851
                                     |
                     lotterywindummy |          0  (omitted)
                      1.between5060k |  -.4840686   .0404999   -11.95   0.000    -.5634811    -.404656
                                     |
      between5060k#c.lotterywindummy |
                                  1  |   .1174259   .0848139     1.38   0.166    -.0488777    .2837294
                                     |
                          goodhealth |   .0382807   .0124152     3.08   0.002     .0139369    .0626245
                             hourshw |  -.0000306     .00372    -0.01   0.993    -.0073248    .0072635
                          friendmeet |   .0267536   .0092244     2.90   0.004     .0086663    .0448409
                               m_sex |   .0552417   .0235543     2.35   0.019     .0090564    .1014271
                                 age |   .0234333   .0065134     3.60   0.000     .0106617    .0362048
                              mental |   .0070287   .0043398     1.62   0.105    -.0014808    .0155381
                        alcoholdummy |  -.0030059   .0127561    -0.24   0.814    -.0280182    .0220064
                               _cons |   11.06603   .1189853    93.00   0.000     10.83273    11.29934
      ------------------------------------------------------------------------------------------------
      
      . reg reallifesat c.(loghouinc)##i.under50k c.(loghouinc)##i.between5060k `control' vhat_lw, robust
      note: loghouinc omitted because of collinearity.
      
      Linear regression                               Number of obs     =      2,830
                                                      F(13, 2816)       =      93.89
                                                      Prob > F          =     0.0000
                                                      R-squared         =     0.3669
                                                      Root MSE          =     1.0479
      
      ------------------------------------------------------------------------------------------
                               |               Robust
                   reallifesat | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
      -------------------------+----------------------------------------------------------------
                     loghouinc |   .6737395   .9248994     0.73   0.466     -1.13981    2.487289
                    1.under50k |  -2.075416   1.829155    -1.13   0.257    -5.662037    1.511204
                               |
          under50k#c.loghouinc |
                            1  |   .2567009   .1313967     1.95   0.051    -.0009426    .5143443
                               |
                     loghouinc |          0  (omitted)
                1.between5060k |  -2.802833   4.368837    -0.64   0.521    -11.36928    5.763612
                               |
      between5060k#c.loghouinc |
                            1  |   .2656565   .3890763     0.68   0.495     -.497247     1.02856
                               |
                    goodhealth |   .3613508   .0439495     8.22   0.000     .2751743    .4475273
                       hourshw |   -.009149   .0061406    -1.49   0.136    -.0211894    .0028915
                    friendmeet |   .0128962   .0298579     0.43   0.666    -.0456493    .0714417
                         m_sex |  -.0637438   .0643175    -0.99   0.322    -.1898579    .0623704
                           age |  -.0893881   .0242718    -3.68   0.000    -.1369803   -.0417958
                        mental |  -.1933382   .0123868   -15.61   0.000    -.2176263   -.1690501
                  alcoholdummy |    .100874   .0307541     3.28   0.001     .0405712    .1611768
                       vhat_lw |  -.9293255   .9233355    -1.01   0.314    -2.739808    .8811571
                         _cons |  -1.832469   10.23591    -0.18   0.858    -21.90311    18.23817
      ------------------------------------------------------------------------------------------
      
      .
      
      . reg loghouinc c.(lotterywindummy childbenrec  )##i.under50k c.(lotterywindummy childbenrec )##i.between506
      > 0k `control' , robust
      note: lotterywindummy omitted because of collinearity.
      note: childbenrec omitted because of collinearity.
      note: 1.between5060k#c.childbenrec omitted because of collinearity.
      
      Linear regression                               Number of obs     =      2,830
                                                      F(14, 2815)       =     148.72
                                                      Prob > F          =     0.0000
                                                      R-squared         =     0.2504
                                                      Root MSE          =     .59562
      
      ------------------------------------------------------------------------------------------------
                                     |               Robust
                           loghouinc | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
      -------------------------------+----------------------------------------------------------------
                     lotterywindummy |  -.1074331   .0646385    -1.66   0.097    -.2341768    .0193106
                         childbenrec |   -.109118   .1071068    -1.02   0.308    -.3191339    .1008978
                          1.under50k |  -1.151325   .0378392   -30.43   0.000     -1.22552   -1.077129
                                     |
          under50k#c.lotterywindummy |
                                  1  |    .150057   .0711607     2.11   0.035     .0105246    .2895894
                                     |
              under50k#c.childbenrec |
                                  1  |  -.0058713    .109567    -0.05   0.957     -.220711    .2089684
                                     |
                     lotterywindummy |          0  (omitted)
                         childbenrec |          0  (omitted)
                      1.between5060k |  -.4767394   .0408448   -11.67   0.000    -.5568282   -.3966507
                                     |
      between5060k#c.lotterywindummy |
                                  1  |   .1200202   .0851346     1.41   0.159    -.0469124    .2869528
                                     |
          between5060k#c.childbenrec |
                                  1  |          0  (omitted)
                                     |
                          goodhealth |   .0377975   .0123672     3.06   0.002     .0135478    .0620471
                             hourshw |  -.0005207   .0037091    -0.14   0.888    -.0077936    .0067522
                          friendmeet |   .0275678   .0091532     3.01   0.003     .0096202    .0455154
                               m_sex |     .05411   .0235502     2.30   0.022     .0079326    .1002875
                                 age |   .0219478   .0065147     3.37   0.001     .0091737    .0347219
                              mental |    .006486   .0042966     1.51   0.131    -.0019388    .0149107
                        alcoholdummy |  -.0040743   .0129036    -0.32   0.752    -.0293758    .0212271
                               _cons |   11.09096   .1193078    92.96   0.000     10.85702    11.32489
      ------------------------------------------------------------------------------------------------
      
      . 
      . reg reallifesat c.(loghouinc)##i.under50k c.(loghouinc)##i.between5060k `control' vhat_both, robust
      note: loghouinc omitted because of collinearity.
      
      Linear regression                               Number of obs     =      2,830
                                                      F(13, 2816)       =      94.01
                                                      Prob > F          =     0.0000
                                                      R-squared         =     0.3670
                                                      Root MSE          =     1.0478
      
      ------------------------------------------------------------------------------------------
                               |               Robust
                   reallifesat | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
      -------------------------+----------------------------------------------------------------
                     loghouinc |   .1807917   .3695044     0.49   0.625    -.5437351    .9053184
                    1.under50k |  -2.566843   1.589751    -1.61   0.107    -5.684038    .5503512
                               |
          under50k#c.loghouinc |
                            1  |   .2484601   .1316662     1.89   0.059    -.0097118     .506632
                               |
                     loghouinc |          0  (omitted)
                1.between5060k |  -2.941864   4.368501    -0.67   0.501    -11.50765    5.623923
                               |
      between5060k#c.loghouinc |
                            1  |   .2579048   .3895281     0.66   0.508    -.5058846    1.021694
                               |
                    goodhealth |   .3806603   .0285846    13.32   0.000     .3246113    .4367093
                       hourshw |  -.0091305   .0061449    -1.49   0.137    -.0211795    .0029185
                    friendmeet |   .0264739   .0202615     1.31   0.191    -.0132549    .0662028
                         m_sex |  -.0364941   .0462872    -0.79   0.431    -.1272543    .0542661
                           age |  -.0777995   .0144535    -5.38   0.000    -.1061401    -.049459
                        mental |   -.189703   .0105716   -17.94   0.000    -.2104318   -.1689742
                  alcoholdummy |   .0990085   .0306713     3.23   0.001      .038868    .1591491
                     vhat_both |  -.4314186   .3496657    -1.23   0.217    -1.117045    .2542082
                         _cons |   3.607477   4.121612     0.88   0.382    -4.474208    11.68916
      ------------------------------------------------------------------------------------------
      
      .
      Apologies for the code being so garishly long, I looked at some other threads to see if there was a way of producing somewhat compact results, and i felt outreg2 took too much data away.

      What has now happened is I am actually unable to replicate the issue of the coefficient changing between control function models that differ by IV selection, my issue now is when i include interaction terms that account for income being within a certain range (there is 'under50k' which measures if pre-logged income is under 50,000 and 'between5060k' which measures if pre-logged income is between 50000 and 60000- side note, the numbers for group 1 (under50k), group 2 (50k-60k) and group 3 (60k+) are respectively 2497, 147 and 195). My question now is does including these interactions hide or reveal the explanatory power of the IV's included, as for a model without interactions, the IV's appear significant (even if the end result of the endogenous variable is insignificant in predicting the depvar lifesatisfaction?

      Example shown using child benefit only

      Code:
      . reg loghouinc childbenrec `control', robust
      
      Linear regression                               Number of obs     =      2,830
                                                      F(8, 2821)        =      26.98
                                                      Prob > F          =     0.0000
                                                      R-squared         =     0.0624
                                                      Root MSE          =     .66544
      
      ------------------------------------------------------------------------------
                   |               Robust
         loghouinc | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
      -------------+----------------------------------------------------------------
       childbenrec |  -.2956958    .024867   -11.89   0.000    -.3444553   -.2469364
        goodhealth |   .0635594   .0138165     4.60   0.000     .0364678    .0906509
           hourshw |   .0003114   .0041642     0.07   0.940    -.0078538    .0084765
        friendmeet |   .0299944   .0103386     2.90   0.004     .0097224    .0502664
             m_sex |   .0731001    .026257     2.78   0.005     .0216153     .124585
               age |    .024352   .0073347     3.32   0.001     .0099702    .0387339
            mental |   .0048793   .0047116     1.04   0.300    -.0043592    .0141177
      alcoholdummy |   -.009848   .0144958    -0.68   0.497    -.0382715    .0185755
             _cons |   9.983637   .1334969    74.79   0.000     9.721875     10.2454
      ------------------------------------------------------------------------------
      . predict vhat_cb, resid
      (9 missing values generated)
      
      . reg reallifesat loghouinc vhat_cb `control', robust
      
      Linear regression                               Number of obs     =      2,830
                                                      F(9, 2820)        =     132.20
                                                      Prob > F          =     0.0000
                                                      R-squared         =     0.3658
                                                      Root MSE          =     1.0481
      
      ------------------------------------------------------------------------------
                   |               Robust
       reallifesat | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
      -------------+----------------------------------------------------------------
         loghouinc |    .204585   .1367567     1.50   0.135    -.0635682    .4727382
           vhat_cb |  -.1889823   .1406682    -1.34   0.179    -.4648053    .0868408
        goodhealth |    .386977   .0269054    14.38   0.000     .3342208    .4397332
           hourshw |  -.0090103    .006137    -1.47   0.142    -.0210438    .0030232
        friendmeet |   .0320022   .0183884     1.74   0.082    -.0040539    .0680582
             m_sex |  -.0300494   .0434299    -0.69   0.489    -.1152069    .0551081
               age |  -.0733179   .0126051    -5.82   0.000     -.098034   -.0486017
            mental |  -.1878177   .0104025   -18.06   0.000    -.2082149   -.1674205
      alcoholdummy |   .0996214   .0307432     3.24   0.001     .0393399    .1599029
             _cons |   3.273306   1.363655     2.40   0.016     .5994432    5.947168
      ------------------------------------------------------------------------------
      Thank you if you've made it this far and apologies if my reporting is unclear





      Comment


      • #4
        Apologies this is turning into a little bit of a journal but I may as well explain what steps I've taken to correct myself. Firstly I realise in my first model (Control Function with Child Benefit as the IV) I did not properly include the control variables so this has been added, further, I have noted there is serious collinearity between the group flag 50-60k and child benefit variable, this could be due to only 17 observations within the 150 observations reporting reciept of child benefit, so I have dropped the interaction term for between 50-60k. Further I did not include a residual interaction (some sort of residual*group) variable, which I have now added, this now leaves me with the following

        Code:
        . reg loghouinc c.(childbenrec)##i.under50k `control', robust
        
        
        Linear regression                               Number of obs     =      2,830
                                                        F(10, 2819)       =     163.25
                                                        Prob > F          =     0.0000
                                                        R-squared         =     0.2376
                                                        Root MSE          =     .60026
        
        ----------------------------------------------------------------------------------------
                               |               Robust
                     loghouinc | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
        -----------------------+----------------------------------------------------------------
                   childbenrec |  -.5036105   .0978165    -5.15   0.000    -.6954097   -.3118114
                    1.under50k |  -.9372987   .0288516   -32.49   0.000    -.9938711   -.8807263
                               |
        under50k#c.childbenrec |
                            1  |    .389601   .1004929     3.88   0.000     .1925539    .5866481
                               |
                    goodhealth |   .0404972   .0124827     3.24   0.001     .0160212    .0649733
                       hourshw |  -.0011591   .0037502    -0.31   0.757    -.0085124    .0061942
                    friendmeet |   .0277743   .0092307     3.01   0.003     .0096748    .0458739
                         m_sex |   .0489136   .0236968     2.06   0.039     .0024489    .0953784
                           age |   .0226778   .0065711     3.45   0.001     .0097931    .0355626
                        mental |   .0068374   .0043443     1.57   0.116     -.001681    .0153558
                  alcoholdummy |  -.0053092   .0130533    -0.41   0.684    -.0309042    .0202858
                         _cons |   10.87521   .1182202    91.99   0.000      10.6434    11.10702
        ----------------------------------------------------------------------------------------
        
         predict vhat_cbresiduals, resid
        
         reg reallifesat c.(loghouinc)##i.under50k c.(vhat_cbresiduals)##i.under50k `control', robust
        
        
        Linear regression                               Number of obs     =      2,830
                                                        F(12, 2817)       =      99.34
                                                        Prob > F          =     0.0000
                                                        R-squared         =     0.3661
                                                        Root MSE          =     1.0484
        
        ---------------------------------------------------------------------------------------------
                                    |               Robust
                        reallifesat | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
        ----------------------------+----------------------------------------------------------------
                          loghouinc |   .3006643   .6196952     0.49   0.628     -.914438    1.515767
                         1.under50k |   1.817226   7.193771     0.25   0.801    -12.28837    15.92282
                                    |
               under50k#c.loghouinc |
                                 1  |  -.1557268   .6359977    -0.24   0.807    -1.402795    1.091342
                                    |
                   vhat_cbresiduals |  -.3619586   .6450033    -0.56   0.575    -1.626685     .902768
                                    |
        under50k#c.vhat_cbresiduals |
                                 1  |   .2180665   .6625401     0.33   0.742    -1.081046    1.517179
                                    |
                         goodhealth |   .3907418   .0287633    13.58   0.000     .3343426     .447141
                            hourshw |  -.0088731   .0061506    -1.44   0.149    -.0209333    .0031871
                         friendmeet |   .0328756   .0203282     1.62   0.106     -.006984    .0727352
                              m_sex |  -.0255551    .045536    -0.56   0.575    -.1148423     .063732
                                age |  -.0719847   .0146753    -4.91   0.000    -.1007601   -.0432092
                             mental |   -.187752   .0105872   -17.73   0.000    -.2085113   -.1669926
                       alcoholdummy |   .0984028   .0307245     3.20   0.001     .0381581    .1586475
                              _cons |   2.053364   7.000229     0.29   0.769    -11.67273    15.77946
        ---------------------------------------------------------------------------------------------
        Hopefully this leaves me in the right in terms of estimation procedure, the results are the results. If there is any wrong step I have taken in my latest estimation procedure please do correct me, please note I have omitted Lottery wins as an instrument due to not passing the first stage WALD F stat of being greater than 10.

        A question I may have now, considering child benefit is significant within the first stage but household income (endogenous variable) is still insignificant, does this posit that the instrument is well adapted to explain the variance within the endogenous variable but the endogenous variable itself is not a reliable predictor of the dependent variable? And from a theoretical view (although I guess this is theoretical), youth do not incorporate their current household income levels into their life satisfaction bundles, which is somewhat plausible.
        Thank you again all
        Last edited by Mohammed Haq; 25 Nov 2025, 10:58.

        Comment


        • #5
          In the last analysis, you do appear to have a large enough first-stage F statistic. Did you expect a negative coefficient on the main term childbenrec? Even if so, the income effect in the structural equation is insignificant. Sometimes that's just the way it is.

          Comment


          • #6
            Hi Professor, sorry for the delay in my reply,

            As for the term childbenrec, it is a flag for recpients of child benefit, and would be expected that lower household incomes would tend to recieve this benefit so yes, and to answer your second point, I agree, sometimes that is the way the cookie crumbles and as econometrists we can tend to pursue a significant value at all costs rather than actually trying to rationalise insignificant results.

            Comment

            Working...
            X