Announcement

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

  • Issues with -regress-

    Hello all,

    In Stata 14, I am currently trying to run a regression to estimate the affects of capital accumulation on labor, controlling for industry, sex, and skill level of the employees. Specifically, I want to know what the affects of capital accumulation on labor supply is by skill level. That is, how does capital affect labor supply in high, medium, and low skill level jobs, respectively? I'm having a little bit of trouble commanding Stata what I want to do, but maybe it's just a struggle with the interpretation of the results.

    The variables I have are the following: employmentnumber, skill level (ranging from 1 = low to 3 = high), industry, wages(USD) capitalvalue (in USD), and sex (as a dummy variable, where female = 1, male = 0). I also have a variable country, which has 6 different countries as subgroups

    So I've tried the following. Here is an example for mid-skill workers (I am separating regressions by country):

    Code:
    regress employmentnumber capitalvalue wages female if(country =="Country1" & skill level == 2)
    I do get results, however by splitting up each regression by their skill level, I get number of observations < 20, which is smaller than what I'd like (and what it would be if I analyzed all the levels together). However, if I do the following, using skill level = 2 as a base:

    Code:
    regress employmentnumber capitalvalue wages i2.level female if(country =="Country1")
    I feel like the output says how skill level moves the intercept for employmentnumber, rather than how employmentnumber in a specific skill level responds to capitalvalue, wages, etc. Is this reasoning wrong or are the two above codes 'similar' commands? If not, is there an alternative way I can tell stata to analyze the affects of capital on labor supply per skill level?

    Also, if I were to control for industry as well, and follow the very first code above, would it be something like the following?

    Code:
    regress employmentnumber capitalvalue i.industry wages female if(country =="Country1" & skill level == 2)

    Additionally, I will be doing a panel regression using a fixed-effect model for 'reference' to the country-by-country regressions. Since I have too many time period observations per panel observation, but need them to run my analyses, I performed the following (for mid-skill workers as an example):

    Code:
    xtset country
    xtreg employmentnumber capitalvalue i.industry wages female if(level == 2), fe"
    The code runs and I get results, however I'm finding results that don't seem to follow typical economic intuition, (higher capital --> 'slightly' higher labor supply) and I'm concerned that I am not correctly analyzing by skill level, and have done something else wrong in my analyses.

    Thank you for any help!
    Last edited by Jacob Lander; 24 Jul 2017, 10:50.

  • #2
    Originally posted by Jacob Lander View Post
    Hello all,

    In Stata 14, I am currently trying to run a regression to estimate the affects of capital accumulation on labor, controlling for industry, sex, and skill level of the employees. Specifically, I want to know what the affects of capital accumulation on labor supply is by skill level. That is, how does capital affect labor supply in high, medium, and low skill level jobs, respectively?
    You need to include the capital accumulation x skill level interaction in your model. Type help fvvarlist and look at the basic examples.
    --
    Bruce Weaver
    Email: [email protected]
    Web: http://sites.google.com/a/lakeheadu.ca/bweaver/
    Version: Stata/MP 18.0 (Windows)

    Comment


    • #3
      Mr. Weaver,

      Thank you for your help. I've now hit the second roadblock. Because capital accumulation has an incredibly wide magnitude of over 10^3, I converted it into logcapital for my previous regressions (employment is also in logs). So now I must round to make a factor variable:

      Code:
      gen logcapital = 0
      replace logcapital = log(capitalvalue)
      gen cap = 0
      replace cap = trunc(logcapital)
      regress logemploy logcapital hw1us cap#level if(country=="Country1")
      The following is the output for the final line of code:

      Click image for larger version

Name:	Output.PNG
Views:	1
Size:	43.1 KB
ID:	1403526


      ​​​​​​
      (level = skill level, wage = hw1us). There are several issues now. Since I had to round logcapital, I have skewed my data (it now consists of log integers from 23 to 27, whereas before it consisted of values from 23.39 to 28.27). Also, I now am having problems regress due to collinearity, and so my results don't seem to be very meaningful as I can't assess the affects of capital on all levels. Is there any way I can get around these issues, particularly the collinearity?

      My apologies for all of these beginner questions.
      Last edited by Jacob Lander; 24 Jul 2017, 12:16.

      Comment


      • #4
        Jacob, I don't understand why you are truncating your logcapital variable. To include a scaled variable in an interaction term, use the c. prefix on it. E.g., given the code you posted, I wonder if you want something like this:

        Code:
        regress logemploy c.logcapital##i.level hw1us if(country=="Country1")
        The c. on c.logcapital instructs Stata to treat that variable as continuous. The i. on i.level tells Stata to treat that variable as categorical. (This is the default, so you could omit the i. if you wish.) The use of ## rather than # tells Stata to include the first order effects of both variables as well as the interaction.
        --
        Bruce Weaver
        Email: [email protected]
        Web: http://sites.google.com/a/lakeheadu.ca/bweaver/
        Version: Stata/MP 18.0 (Windows)

        Comment


        • #5
          Jacob:
          as an aside to Bruce's helpful advice, I fail to get why you coded:
          Code:
          gen logcapital = 0
          replace logcapital = log(capitalvalue)
          instead of:

          Code:
          gen logcapital = log(capitalvalue)
          The same remark holds for -cap-.
          Kind regards,
          Carlo
          (Stata 18.0 SE)

          Comment

          Working...
          X