Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: Repeated time values within panel in levpet STATA output


From   Worku Gebeyehu <workugeb@yahoo.com>
To   "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu>
Subject   st: Repeated time values within panel in levpet STATA output
Date   Sun, 28 Feb 2010 00:09:10 -0800 (PST)

Dear Sir/Madam,
I am a PhD student doing my research on TFP of a panel of firms for the period 1996 to 2007 and the total number of observations are 8395. I have been trying to excute the following levpet command. 
levpet lny , free(lnl2 lnirm lnlrm) proxy (lnpower) capital (lnk) revenue justid grid i (eid) t (yr) reps (50)

However, I have been facing a problem of 'repeated time values within panel'. I have not faced a similar problem while estimating the same using FE, RE, OP, etc. I also tried to check the existence of dublications of years or firm idenity numbers using the stata 'dublicate report' command, I got a report of 'surplus=0'. Using set tr on, I found the following report. Because I am unable to understand what it means due to lack of knowldge in programming, I sent you with all the junk. I am sorry for that. I am stuck and strongly need your support. 

Sincerly yours, 

version 10
  - if `"`0'"' == "" {
  = if `"eid yr"' == "" {
    _ts tvar pvar, panel
    local fmt: format `tvar'
    local tsdelta : char _dta[_TSdelta]
    if "`tsdelta'" == "" {
    local tsdelta 1
    }
    tsset `pvar' `tvar', format(`fmt') delta((`tsdelta'))
    ret add
    exit
    }
  - syntax [varlist(numeric max=2 default=none)] [, CLEAR Daily Format(passthru) Generic Halfy
> early Monthly Quarterly Weekly Yearly DELta(string) Clocktime FORCE ]
  - if "`clear'" != "" {
  = if "" != "" {
    syntax [, CLEAR]
    Clear
    exit
    }
  - if "`varlist'"=="" {
  = if "eid yr"=="" {
    _ts tvar pvar, panel
    tsset `pvar' `tvar', `daily' `format' `generic' `halfyearly' `monthly' `quarterly' `weekly
> ' `yearly' `clocktime'
    ret add
    exit
    }
  - syntax varlist(numeric max=2 default=none) [ , CLEAR Daily Format(string) Generic Halfyear
> ly Monthly Quarterly Weekly Yearly DELta(string) Clocktime FORCE ]
  - local ct : word count `varlist'
  = local ct : word count eid yr
  - if `ct'==2 {
  = if 2==2 {
  - tokenize `varlist'
  = tokenize eid yr
  - local panel `1'
  = local panel eid
  - local timevar `2'
  = local timevar yr
  - }
  - else {
    local timevar `varlist'
    }
- local period `daily' `weekly' `monthly' `quarterly' `halfyearly' `yearly' `generic' `clock
> time'
  = local period        
  - if `"`format'"'!="" {
  = if `""'!="" {
    local dfltfmt "no"
    if "`period'" != "" {
    di in red "may not specify both format() and `period'"
    exit 198
    }
    local try : di `format' 2
    }
  - else if "`period'" != "" {
  = else if "" != "" {
    local ct : word count `period'
    if `ct' > 1 {
    di in red "may only specify one time-scale from " "daily, weekly, monthly, "
    di in red "quarterly, halfyearly, yearly, and generic"
    exit 198
    }
    local curfmt : format `timevar'
    local fmttype = substr("`curfmt'", 2, 1)
    if "`fmttype'" != "d" & "`fmttype'" != "t" {
    local format = "%t" + substr("`period'",1,1)
    if substr("`period'", 1, 1) == "c" {
    local dfltfmt "yes"
    }
    }
    else {
    local format `curfmt'
    }
    }
  - else {
  - local format : format `timevar'
  = local format : format yr
  - }
  - capture assert int(`timevar')==`timevar'
 = capture assert int(yr)==yr
  - if _rc {
    di in red "time variable must contain only integer values"
    exit 451
    }
  - sort `panel' `timevar'
  = sort eid yr
  - if "`panel'" != "" {
  = if "eid" != "" {
  - local bypfx "by `panel': "
  = local bypfx "by eid: "
  - }
  - if `"`format'"' != "" {
  = if `"%8.0g"' != "" {
  - format `timevar' `format'
  = format yr %8.0g
  - }
  - tempname scdelta
  - mata: _TS_p_delta("`scdelta'", "`delta'", "`timevar'")
  = mata: _TS_p_delta("__000002", "", "yr")
  - if `scdelta' == -2 {
  = if __000002 == -2 {
    di as err "invalid time-series format on `timevar'"
    exit 120
    }
  - if `scdelta' == -1 {
  = if __000002 == -1 {
    di as err "invalid argument in delta()"
    exit 198
    }
  - tempvar timedif
  - qui `bypfx' gen double `timedif' = `timevar'[_n+1] - `timevar'
  = qui by eid:  gen double __000003 = yr[_n+1] - yr
  - qui sum `timedif', meanonly
  = qui sum __000003, meanonly
  - if r(min) == 0 {
    if "`panel'" != "" {
 di in red "repeated time values within panel"
    }
    else {
    di in red "repeated time values in sample"
    }
    exit 451
    }
  - if "`force'" == "" {
  = if "" == "" {
  - if r(min) < `scdelta' {
  = if r(min) < __000002 {
    di in red "time values with period less than delta() found"
    exit 451
    }
  - }
  - Clear
    -------------------------------------------------------------------- begin tsset.Clear ---
    - char _dta[_TStvar]
    - char _dta[_TSpanel]
    - char _dta[_TSdelta]
    - char _dta[_TSitrvl]
    - char _dta[tis]
    - char _dta[iis]
    ---------------------------------------------------------------------- end tsset.Clear ---
  - nobreak {
  - char _dta[_TStvar] "`timevar'"
  = char _dta[_TStvar] "yr"
  - char _dta[_TSpanel] "`panel'"
  = char _dta[_TSpanel] "eid"
  - char _dta[_TSdelta] `: di %21x `scdelta''
  = char _dta[_TSdelta] +1.0000000000000X+000
  - char _dta[_TSitrvl] 1
  - char _dta[tis] "`timevar'"
  = char _dta[tis] "yr"
  - char _dta[iis] "`panel'"
  = char _dta[iis] "eid"
- if "`dfltfmt'" == "yes" & substr("`format'", 3, 1) == "c" {
  = if "" == "yes" & substr("%8.0g", 3, 1) == "c" {
    format `timevar' %tcDDmonCCYY_HH:MM:SS.sss
    }
  - Query
    -------------------------------------------------------------------- begin tsset.Query ---
    - local timevar `_dta[_TStvar]'
    = local timevar yr
    - local panel `_dta[_TSpanel]'
    = local panel eid
    - local delta : char _dta[_TSdelta]
    - if "`panel'" == "" {
    = if "eid" == "" {
      qui count if `timevar' - `timevar'[_n-1] != `delta' & `timevar' != . in 2/l
      local gaps = r(N)
      }
    - else {
    - qui count if `timevar' - `timevar'[_n-1] != `delta' & `timevar' != . & `panel' == `panel
> '[_n-1] in 2/l
    = qui count if yr - yr[_n-1] != +1.0000000000000X+000 & yr != . & eid == eid[_n-1] in 2/l
    - local gaps = r(N)
    - }
    - if "`panel'" == "" {
    = if "eid" == "" {
      tempvar seenvar
      local t0 = `timevar'[1]
      gen long `seenvar' = sum(`timevar' != .)
      local t1 = `timevar'[`seenvar'[_N]]
      }
    - else {
    - tempname firstob lastob
    - qui gen byte `firstob' = `panel' != . & `panel' != `panel'[_n-1]
    = qui gen byte __000004 = eid != . & eid != eid[_n-1]
    - qui sum `timevar' if `firstob', meanonly
    = qui sum yr if __000004, meanonly
    - local t0 = r(min)
    - qui gen byte `lastob' = `panel' != . & `timevar' != . & (`panel' != `panel'[_n+1] | `tim
> evar'[_n+1] == .)
    = qui gen byte __000005 = eid != . & yr != . & (eid != eid[_n+1] | yr[_n+1] == .)
    - qui sum `timevar' if `lastob', meanonly
    = qui sum yr if __000005, meanonly
    - local t1 = r(max)
    - local npanel = r(N)
    - sum `panel', meanonly
    = sum eid, meanonly
    - ret scalar imin = r(min)
    - ret scalar imax = r(max)
    - tempvar tmin tmax tcount
    - qui by `panel' : gen double `tcount' = _N if !missing(`timevar')
    = qui by eid : gen double __000008 = _N if !missing(yr)
    - capture assert `tcount' == `tcount'[1]
    = capture assert __000008 == __000008[1]
    - if c(rc) {
    - local bal unbalanced
    - }
    - else {
      CheckStrongBal `npanel' `panel' `timevar'
      if r(rc) {
      local bal "weakly balanced"
      }
      else {
      local bal "strongly balanced"
      }
      }
    - di in gr _col(8) "panel variable:  " in ye "`panel' (`bal')"
    = di in gr _col(8) "panel variable:  " in ye "eid (unbalanced)"
    - return local balanced "`bal'"
    = return local balanced "unbalanced"
    - }
    - local fmt : format `timevar'
    = local fmt : format yr
    - local t0s = trim(string(`t0', "`fmt'"))
    = local t0s = trim(string(1996, "%8.0g"))
    - local t1s = trim(string(`t1', "`fmt'"))
 = local t1s = trim(string(2007, "%8.0g"))
    - di in gr _col(9) "time variable:  " _c
    - local i 1
    - local line`i' `=abbrev("`timevar'",13)',
    = local line1 yr,
    - local linelen = length(`"`line`i''"')
    = local linelen = length(`"yr,"')
    - if (`linelen' + length(`"`t0s'"')) < 53 {
    = if (3 + length(`"1996"')) < 53 {
    - local line`i' `line`i'' `t0s'
    = local line1 yr, 1996
    - local linelen = length(`"`line`i''"')
    = local linelen = length(`"yr, 1996"')
    - }
    - else {
      local `++i'
      local line`i' `t0s'
      local linelen = length(`"`line`i''"')
      }
    - if (`linelen' + 3) < 53 {
    = if (8 + 3) < 53 {
    - local line`i' `"`line`i'' to"'
    = local line1 `"yr, 1996 to"'
    - local linelen = length(`"`line`i''"')
    = local linelen = length(`"yr, 1996 to"')
    - }
    - else {
      local `++i'
      local line`i' "to"
      local linelen = 3
      }
    - if (`linelen' + length(`"`t1s'"')) < 53 {
    = if (11 + length(`"2007"')) < 53 {
    - local line`i' `line`i'' `t1s'
    = local line1 yr, 1996 to 2007
    - local linelen = length(`"`line`i''"')
    = local linelen = length(`"yr, 1996 to 2007"')
 - }
    - else {
      local `++i'
      local line`i' `t1s'
      local linelen = length(`"`t1s'"')
      }
    - if `gaps' > 0 {
    = if 0 > 0 {
      if `gaps' == 1 {
      local note "but with a gap"
      }
      else {
      local note "but with gaps"
      }
      if (`linelen' + length(`", `note'"')) < 53 {
      local line`i' `line`i'', `note'
      }
      else {
      local `++i'
      local line`i' `note'
      }
      }
    - forvalues j = 1/`i' {
    = forvalues j = 1/1 {
    - di in ye _col(25) `"`line`j''"'
    = di in ye _col(25) `"yr, 1996 to 2007"'
    - }
    - tempname fancyd
    - mata:_TS_p_delta2str("`fancyd'", `=`delta'', "`timevar'")
    = mata:_TS_p_delta2str("__000009", 1, "yr")
    - di in gr _col(17) "delta:  " in ye "`=`fancyd''"
    = di in gr _col(17) "delta:  " in ye "1 unit"
    - ret scalar tmin = `t0'
    = ret scalar tmin = 1996
    - ret scalar tmax = `t1'
    = ret scalar tmax = 2007
    - ret scalar tdelta = `delta'
 - ret scalar tdelta = `delta'
    = ret scalar tdelta = +1.0000000000000X+000
    - ret local tmins `t0s'
    = ret local tmins 1996
    - ret local tmaxs `t1s'
    = ret local tmaxs 2007
    - ret local tdeltas "`=`fancyd''"
    = ret local tdeltas "1 unit"
    ---------------------------------------------------------------------- end tsset.Query ---
  - if "`dfltfmt'" == "yes" & substr("`format'", 3, 1) == "c" {
  = if "" == "yes" & substr("%8.0g", 3, 1) == "c" {
    format `timevar' %tc
    }
  - ret add
  - local fmt : format `timevar'
  = local fmt : format yr
  - return local tsfmt `fmt'
  = return local tsfmt %8.0g
  - return local unit1 = substr("`fmt'", 3, 1)
  = return local unit1 = substr("%8.0g", 3, 1)
  - Period per : "`period'" `return(unit1)'
  = Period per : "" .
    ------------------------------------------------------------------- begin tsset.Period ---
    - args newper colon per unit1
    - if "`per'" == "" {
    = if "" == "" {
    - if "`unit1'" != "" {
    = if "." != "" {
    - local c "clocktime"
    - local g "generic"
    - local d "daily"
    - local w "weekly"
    - local m "monthly"
    - local q "quarterly"
    - local h "halfyearly"
    - local y "yearly"
    - capture c_local `newper' ``unit1''
    = capture c_local per 
  - }
    - else {
      c_local `newper' "generic"
      }
    - }
    - else {
      c_local `newper' `per'
      }
    --------------------------------------------------------------------- end tsset.Period ---
  - return local unit `per'
  = return local unit 
  - ret local timevar "`timevar'"
  = ret local timevar "yr"
  - ret local panelvar "`panel'"
  = ret local panelvar "eid"
  ------------------------------------------------------------------------------ end tsset ---
- }
- if (`level' < 10 | `level' > 99) {
= if (95 < 10 | 95 > 99) {
  di as error "level must be between 10 and 99"
  error 198
  }
- if ("`revenue'" != "" & "`valueadded'" != "") {
= if ("revenue" != "" & "" != "") {
  di as error "Only one of revenue and valueadded can be specified."
  exit 198
  }
- if ("`revenue'" != "") {
= if ("revenue" != "") {
- local model "revenue"
- }
- else {
  local model "valueadded"
  }
- local numprox : word count `proxy'
= local numprox : word count lnpower
- if ("`model'" == "revenue" & `numprox' > 1) {
= if ("revenue" == "revenue" & 1 > 1) {
  di as error "Only one proxy variable can be used with revenue."
  exit 198
  }
- if (`reps' < 2) {
= if (50 < 2) {
  di as error "reps() must be at least 2."
  exit 198
  }
- local just = 0
- if ("`justid'" != "" & "`model'" != "revenue") {
= if ("justid" != "" & "revenue" != "revenue") {
  di as error "justid can only be used with revenue (GMM) model."
  exit 198
  }
- else if "`justid'" != "" {
= else if "justid" != "" {
- local just = 1
- }
- local gsrch = 0
- if ("`grid'" != "" & "`model'" != "revenue") {
= if ("grid" != "" & "revenue" != "revenue") {
  di as error "grid can only be used with revenue (GMM) model."
  exit 198
  }
- else if "`grid'" != "" {
= else if "grid" != "" {
- local gsrch = 1
- }
- qui count if `touse'
= qui count if __000001
- loc capn = r(N)
- local rmacs ""
- foreach var in `free' `capital' {
= foreach var in lnl2 lnirm lnlrm lnk {
- foreach var in `free' `capital' {
- local rmacs "`rmacs' (r(`var'))"
= local rmacs " (r(lnl2))"
- }
- local rmacs "`rmacs' (r(`var'))"
= local rmacs " (r(lnl2)) (r(lnirm))"
- }
- local rmacs "`rmacs' (r(`var'))"
= local rmacs " (r(lnl2)) (r(lnirm)) (r(lnlrm))"
- }
- local rmacs "`rmacs' (r(`var'))"
= local rmacs " (r(lnl2)) (r(lnirm)) (r(lnlrm)) (r(lnk))"
- }
- if ("`model'" == "revenue") {
= if ("revenue" == "revenue") {
- local rmacs "`rmacs' (r(`proxy'))"
= local rmacs " (r(lnl2)) (r(lnirm)) (r(lnlrm)) (r(lnk)) (r(lnpower))"
- }
- quietly {
- tempfile postfile datafile
- tempname post
- tempvar idvar
- gen `idvar' = `i'
= gen __000003 = eid
- preserve
- keep if `touse'
= keep if __000001
- loc cmd "`depvar' , free(`free') proxy(`proxy') capital(`capital') "
= loc cmd "lny , free(lnl2 lnirm lnlrm) proxy(lnpower) capital(lnk) "
- tsset `idvar' `t'
= tsset __000003 yr
  ---------------------------------------------------------------------------- begin tsset ---
  - version 10
  - if `"`0'"' == "" {
  = if `"__000003 yr"' == "" {
    _ts tvar pvar, panel
    local fmt: format `tvar'
    local tsdelta : char _dta[_TSdelta]
    if "`tsdelta'" == "" {
 local tsdelta 1
    }
    tsset `pvar' `tvar', format(`fmt') delta((`tsdelta'))
    ret add
    exit
    }
  - syntax [varlist(numeric max=2 default=none)] [, CLEAR Daily Format(passthru) Generic Halfy
> early Monthly Quarterly Weekly Yearly DELta(string) Clocktime FORCE ]
  - if "`clear'" != "" {
  = if "" != "" {
    syntax [, CLEAR]
    Clear
    exit
    }
  - if "`varlist'"=="" {
  = if "__000003 yr"=="" {
    _ts tvar pvar, panel
    tsset `pvar' `tvar', `daily' `format' `generic' `halfyearly' `monthly' `quarterly' `weekly
> ' `yearly' `clocktime'
    ret add
    exit
    }
  - syntax varlist(numeric max=2 default=none) [ , CLEAR Daily Format(string) Generic Halfyear
> ly Monthly Quarterly Weekly Yearly DELta(string) Clocktime FORCE ]
  - local ct : word count `varlist'
  = local ct : word count __000003 yr
  - if `ct'==2 {
  = if 2==2 {
  - tokenize `varlist'
  = tokenize __000003 yr
  - local panel `1'
  = local panel __000003
  - local timevar `2'
  = local timevar yr
  - }
  - else {
    local timevar `varlist'
    }
  - local period `daily' `weekly' `monthly' `quarterly' `halfyearly' `yearly' `generic' `clock
> time'
  = local period        
  - if `"`format'"'!="" {
  = if `""'!="" {
    local dfltfmt "no"
    if "`period'" != "" {
    di in red "may not specify both format() and `period'"
    exit 198
    }
    local try : di `format' 2
    }
  - else if "`period'" != "" {
  = else if "" != "" {
    local ct : word count `period'
    if `ct' > 1 {
    di in red "may only specify one time-scale from " "daily, weekly, monthly, "
    di in red "quarterly, halfyearly, yearly, and generic"
    exit 198
    }
    local curfmt : format `timevar'
    local fmttype = substr("`curfmt'", 2, 1)
    if "`fmttype'" != "d" & "`fmttype'" != "t" {
    local format = "%t" + substr("`period'",1,1)
    if substr("`period'", 1, 1) == "c" {
    local dfltfmt "yes"
    }
    }
    else {
    local format `curfmt'
    }
    }
  - else {
  - local format : format `timevar'
  = local format : format yr
  - }
 - capture assert int(`timevar')==`timevar'
  = capture assert int(yr)==yr
  - if _rc {
    di in red "time variable must contain only integer values"
    exit 451
    }
  - sort `panel' `timevar'
  = sort __000003 yr
  - if "`panel'" != "" {
  = if "__000003" != "" {
  - local bypfx "by `panel': "
  = local bypfx "by __000003: "
  - }
  - if `"`format'"' != "" {
  = if `"%8.0g"' != "" {
  - format `timevar' `format'
  = format yr %8.0g
  - }
  - tempname scdelta
  - mata: _TS_p_delta("`scdelta'", "`delta'", "`timevar'")
  = mata: _TS_p_delta("__000004", "", "yr")
  - if `scdelta' == -2 {
  = if __000004 == -2 {
    di as err "invalid time-series format on `timevar'"
    exit 120
    }
  - if `scdelta' == -1 {
  = if __000004 == -1 {
    di as err "invalid argument in delta()"
    exit 198
    }
  - tempvar timedif
  - qui `bypfx' gen double `timedif' = `timevar'[_n+1] - `timevar'
  = qui by __000003:  gen double __000005 = yr[_n+1] - yr
  - qui sum `timedif', meanonly
  = qui sum __000005, meanonly
  - if r(min) == 0 {
 - if "`panel'" != "" {
  = if "__000003" != "" {
  - di in red "repeated time values within panel"
repeated time values within panel
  - }
  - else {
    di in red "repeated time values in sample"
    }
  - exit 451
    }
  ------------------------------------------------------------------------------ end tsset ---
  if ("`model'" == "valueadded") {
  lp_srch `cmd' i(`idvar') t(`t')
  }
  else {
  global LPone = 1
  lp_gmm `cmd' i(`idvar') t(`t') converrs(0) just(`just') grid(`gsrch')
  global LPone = 0
  }
  local converrs = 0
  foreach x of local rmacs {
  if (`x' >= .) {
  local converrs = 1
  noi di as error "Insufficient variation to identify the capital and intermediate input"
  noi di as error "coefficients separately.  Bootstrapping for first-stage parameters only."
  }
  }
  if ("`model'" == "valueadded") {
  postfile `post' `free' `capital' using `"`postfile'"', double replace
  local rmacs ""
  foreach var in `free' `capital' {
  local rmacs "`rmacs' (r(`var'))"
  }
  }
  else {
  if `converrs' == 0 {
  postfile `post' `free' `capital' `proxy' using `"`postfile'"', double replace
local rmacs ""
  foreach var in `free' `capital' {
  local rmacs "`rmacs' (r(`var'))"
  }
  local rmacs "`rmacs' (r(`proxy'))"
  }
  else {
  postfile `post' `free' using `"`postfile'"', double replace
  local rmacs ""
  foreach var in `free' {
  local rmacs "`rmacs' (r(`var'))"
  }
  }
  }
  post `post' `rmacs'
  forvalues cnt = 1/`reps' {
  noi di "." _continue
  restore, preserve
  keep if `touse'
  tempvar idvar
  bsample, cluster(`i') idcluster(`idvar')
  if ("`model'" == "valueadded") {
  lp_srch `cmd' i(`idvar') t(`t')
  }
  else {
  lp_gmm `cmd' i(`idvar') t(`t') converrs(`converrs') just(`just') grid(`gsrch')
  }
  post `post' `rmacs'
  }
  postclose `post'
  if ("`model'" == "revenue") {
  macro drop LPone
  mat drop LPmoments
  }
  tempname evar eb
  use `"`postfile'"', clear
  mat accum `evar' = * in 2/l , deviations noconstant

if ("`model'" == "revenue") {
  macro drop LPone
  mat drop LPmoments
  }
  tempname evar eb
  use `"`postfile'"', clear
  mat accum `evar' = * in 2/l , deviations noconstant
  mat `evar' = `evar' / (r(N) - 1)
  mkmat * in 1, matrix(`eb')
  if `converrs' == 0 {
  tempname capr diff rvri waldcrs junk
  loc bsize = colsof(`eb')
  mat `capr' = J(1, `bsize', 1)
  mat `rvri' = syminv(`capr'*`evar'*`capr'')
  mat `diff' = `eb'*`capr'' - 1
  mat `junk' = `diff'*`rvri'*`diff'
  scalar `waldcrs' = trace(`junk')
  }
  restore
  estimates post `eb' `evar' , esample(`touse') depname(`"`depvar'"') obs(`capn')
  if `converrs' == 0 {
  estimates scalar waldcrs = `waldcrs'
  }
  estimates local depvar `depvar'
  if ("`model'" == "revenue") {
  estimates local model "revenue"
  }
  else {
  estimates local model "value added"
  }
  estimates local predict "levpet_p"
  estimates local cmd "levpet"
  tsset `i' `t'
  }
------------------------------------------------------------------------------- end levpet ---
r(451);

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index