Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

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

From |
Nick Cox <[email protected]> |

To |
"[email protected]" <[email protected]> |

Subject |
Re: st: Assign fiscal year-end values to a specific event in time |

Date |
Tue, 28 Jan 2014 17:30:02 +0000 |

I call that an interpolation problem. Why I do so follows from the definition in the post I cited. -nnipolate- (SSC) interpolates the nearest non-missing value, optionally within panels. You can make this conditional on the distance (time) to the nearest non-missing value being less than some critical value. _When_ was the previous non-missing value? This is just an extension of http://www.stata.com/support/faqs/data-management/replacing-missing-values/ Assume -value-, -id-, -time-. gen previous_time = time if !missing(value) bysort id (time) : replace previous_time = previous_time[_n-1] if missing(value) gen next_time = time if !missing(value) gen negtime = -time bysort id (negtime) : replace next_time = next_time[_n-1] if missing(value) gen distance = min(time - previous_time, next_time - time) Then any use of -nnipolate- can be conditionally on -distance-. Nick [email protected] On 28 January 2014 14:47, Torsten Häberle <[email protected]> wrote: > Hi Nick, > > thanks for your answer. It's not an interpolation problem. I just want > to assign either the last available fiscal year-end value (before the > event) or the first available fiscal year-end value (after the event) > to the event date. > > But as you said, Stata keeps on going until it reaches the next > non-missing. But this is wrong in my case. Values are only valid in > this time window: > - Either 12 months before the event (as in dataset 1) or > - 12 months after the event (as in dataset 2) > > But Stata should not copy a value further in the future if let's say > the next fiscal year-end value is missing. > > I just need an approximate value on event date. For dataset 1, this is > a value from the previous 12 months. For dataset 2, it is one from the > following 12 months. > > Do you know what I mean? > > Thanks for helping > > > 2014-01-28 Nick Cox <[email protected]>: >> Yes; if you copy previous values to replace missing values, Stata >> keeps on going until it reaches the next non-missing. >> >> But what are you trying to do here? Like many others, your problem >> seems more of an interpolation problem, and copying the last known >> value is not necessarily the best way forward. See >> >> http://www.stata.com/statalist/archive/2014-01/msg00315.html >> >> for some general comments and mentions of Stata commands for interpolation. >> >> Nick >> [email protected] >> >> On 27 January 2014 21:36, miriam geringer <[email protected]> wrote: >> >>> In terms of my example: >>> >>> Company Date Year Price Event Month* >>> A 31Okt 1988 334 >>> A 29Nov 1988 10 335 >>> A 31Dez 1988 336 >>> A 31Jan 1989 337 >>> A 14Feb 1989 EventX 338 >>> A 28Feb 1989 339 >>> A 31Mar 1989 340 >>> B >>> B >>> .... >>> >>> *Month = Numerical date variable, monthly frequency. Stata command = mofd(Date) >>> >>> This is my command: bysort Company (Month): replace Price = >>> Price[_n-1] if missing(Price) >>> >>>>>> then 10 is spread forward until the next fiscal year-end value is available >>>>>> Basically, the price indicates that the fiscal year ends. In our case, on 29Nov 1988, there is a price available. This means the fiscal year ends here. And this price shall now be spread forward until the next fiscal year-end arrives. >>>>>> What I wonder now: What happens if the next fiscal year-end value (in our example 1989) is now missing? >>> >>> Example: >>> >>> Company Date Year Price Event Month* >>> A 31Okt 1988 334 >>> A 29Nov 1988 10 335 >>> A 31Dez 1988 10 336 >>> A 31Jan 1989 10 337 >>> A 14Feb 1989 10 EventX 338 >>> A 28Feb 1989 10 339 >>> A 31Mar 1989 10 340 >>> A 30Apr 1989 10 >>> A 31May 1989 10 >>> A 30Jun 1989 10 >>> A 31Jul 1989 10 >>> A 31Aug 1989 10 >>> A 30Sep 1989 10 >>> A 31Okt 1989 . >>> >>> If the price on 31 Okt 1989 (the fiscal year-end) is missing, Stata >>> should NOT replace the missing value with the price (10) from the >>> previous fiscal year 1988. Instead, it should remain missing. But I >>> think my command doesn't consider this? >> >> 2014-01-26 Nick Cox <[email protected]>: >> >>>> That does not help me in terms of your example or explanation. >>>> >>>> A strategy is to "spread" values to other observations for the same >>>> firm and then look for intersections. My Stata Journal article just >>>> cited gives examples. >> >> On 26 January 2014 11:51, miriam geringer <[email protected]> wrote: >> >>>>> I have two variables, which tell me when the fiscal year ends. >>>>> An exact variable, e.g. 31Jul 1994 and a year variable, e.g. 1994. >> >> 2014-01-26 Nick Cox <[email protected]>: >> >>>>>> How can you tell Stata in terms of these data when fiscal years end? >>>>>> >>>>>> What kind of variable is -Date- (numeric or string)? Are you using >>>>>> Stata dates (see -help dates and times-)? >>>>>> >>>>>> There is much discussion of technique in >>>>>> http://www.stata-journal.com/article.html?article=dm0055 >> >> On 25 January 2014 19:19, miriam geringer <[email protected]> wrote: >> >>>>>>> I have the following two datasets: >>>>>>> >>>>>>> 1) >>>>>>> >>>>>>> Company Date Year Price Event >>>>>>> A 31Okt 1988 >>>>>>> A 29Nov 1988 10 >>>>>>> A 31Dez 1988 >>>>>>> A 31Jan 1989 >>>>>>> A 14Feb 1989 EventX >>>>>>> A 28Feb 1989 >>>>>>> A 31Mar 1989 >>>>>>> B >>>>>>> B >>>>>>> .... >>>>>>> >>>>>>> Basically, there is some event going on in 1989. This event can happen >>>>>>> in every month, on every day. I want to assign a specific value from >>>>>>> the previous fiscal-year to the event in 1989. To be more precise, I >>>>>>> want to assign the fiscal year-end price from fiscal year 1988 to the >>>>>>> event which happens - in our example - on 14Feb 1989. In the end, I >>>>>>> only need to know in what year the event happened and the >>>>>>> corresponding price from the previous fiscal year-end. Sometimes, >>>>>>> there is no price available in the previous fiscal year, then it >>>>>>> should be just marked as missing value. >>>>>>> >>>>>>> ---- Fiscal Year-End 1988 ------- Event -------- Fiscal Year-End 1889 >>>>>>>>>>>> Assign Fiscal Year-End 1988 to Event >>>>>>> >>>>>>> The fiscal year can end in every month and it is possible that, for >>>>>>> example, the fiscal year ends on 31Jan 1989 and the event occurs on >>>>>>> 14Feb 1989. Then the 31Jan 1989 value shall be assigned. >>>>>>> >>>>>>> It should be something like: >>>>>>> If Stata finds an EventX in fiscal year 1989 of Company A, go to >>>>>>> fiscal year 1988 and take the 1988 fiscal year-end price of Company A >>>>>>> and assign it to the EventX in 1989. >>>>>>> >>>>>>> 2) The second dataset is identical. However, this time I want to >>>>>>> assign the first available fiscal year-end value. >>>>>>> >>>>>>> Company Date Year Price Event >>>>>>> A 31Okt 1988 >>>>>>> A 29Nov 1988 >>>>>>> A 31Dez 1988 >>>>>>> A 31Jan 1989 >>>>>>> A 14Feb 1989 EventY >>>>>>> A 28Feb 1989 >>>>>>> A 31Mar 1989 10 >>>>>>> B >>>>>>> B >>>>>>> .... >>>>>>> >>>>>>> In this example, let's assume the year ends on 31Mar 1989 and on that >>>>>>> date, the price is 10 (the fiscal year-end price). I want to assign >>>>>>> this price to the row with the EventY and 14Feb. The same as in >>>>>>> dataset 1, just the other way around. >>>>>>> >>>>>>> It should be something like: >>>>>>> If Stata finds an EventY in year 1989 of Company A, take the first >>>>>>> available fiscal year-end value (first one available after the event >>>>>>> occured). The event can occur in February and the fiscal year can >>>>>>> could end shortly after. Just take the next available value, no matter >>>>>>> whether there is a calendar year shift in between or not. >> * >> * For searches and help try: >> * http://www.stata.com/help.cgi?search >> * http://www.stata.com/support/faqs/resources/statalist-faq/ >> * http://www.ats.ucla.edu/stat/stata/ > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/faqs/resources/statalist-faq/ > * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/

**References**:**st: Assign fiscal year-end values to a specific event in time***From:*miriam geringer <[email protected]>

**Re: st: Assign fiscal year-end values to a specific event in time***From:*Nick Cox <[email protected]>

**Re: st: Assign fiscal year-end values to a specific event in time***From:*miriam geringer <[email protected]>

**Re: st: Assign fiscal year-end values to a specific event in time***From:*Nick Cox <[email protected]>

**Re: st: Assign fiscal year-end values to a specific event in time***From:*miriam geringer <[email protected]>

**Re: st: Assign fiscal year-end values to a specific event in time***From:*Nick Cox <[email protected]>

**Re: st: Assign fiscal year-end values to a specific event in time***From:*Torsten Häberle <[email protected]>

- Prev by Date:
**Re: st: Extend observations in dataset** - Next by Date:
**st: RE: RE: xtoverid error: internal reestimation of eqn differs from original** - Previous by thread:
**Re: st: Assign fiscal year-end values to a specific event in time** - Next by thread:
**Re: st: Assign fiscal year-end values to a specific event in time** - Index(es):