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 on April 23, and its replacement, statalist.org is already up and running.


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

Re: st: "First numlist in weights( ...) invalid" error when using tssmooth to calculate a simple moving average


From   Aaron Kirkman <ak1795mailserv@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: "First numlist in weights( ...) invalid" error when using tssmooth to calculate a simple moving average
Date   Thu, 6 Sep 2012 12:42:16 -0500

I don't know if this code is sufficient to figure out exactly where
the error occurs, but errors occur when _N >= 3202 on my system (Stata
MP 12.1, Unix).

##
set more off
forvalues i = 3100/3300 {
	clear
	capture set obs `i'
	gen x = runiform()
	gen t  = _n
	capture tsset t
	capture tssmooth ma wtma = x, weights(1 2 3 4 <5>)
	if _rc == 198 {
		display as error `i'
	}
}
##

Aaron

On Thu, Sep 6, 2012 at 7:56 AM, Nick Cox <njcoxstata@gmail.com> wrote:
> Yes; I can reproduce this. My impressions are
>
> 1. Your syntax is legal so far as -tssmooth- documentation is concerned.
>
> 2. -tssmooth- is passing your numlist to -numlist- for checking, but
> there is a conflict of views, which leads to an error message.
>
> -tssmooth- is saying that as far as it is concerned, the numlist can
> be 2674 elements long (in essence, half the number of your
> observations). However, -numlist- won't play with candidate numlists
> longer than 1600 elements, so it bails out without trying to examine
> the list.
>
> There is, I think, confusion between two distinct tests, which must be
> both be passed. -tssmooth- should check before it passes your numlist
> to -numlist- that the numlist is OK as far as the time series aspect
> is concerned. Then the call to -numlist- should not specify a maximum.
>
> A wild guess is that -numlist- was developed on series less than about
> 3200 values long, where this doesn't bite.
>
> My tentative three-letter summary is "bug". StataCorp will have a view.
>
> Nick
>
> On Thu, Sep 6, 2012 at 1:11 PM, Aaron Kirkman <ak1795mailserv@gmail.com> wrote:
>> I noticed an error in the code I copied to the mailing list, although
>> it's merely a typo and fixing it doesn't correct the -numlist- error.
>> The -copy- line should not have a semicolon, and instead should be
>> this:
>>
>> copy "http://ichart.finance.yahoo.com/table.csv?s=PNRA&a=05&b=10&c=1991&d=07&e=24&f=2012&g=d&ignore=.csv";
>> pnra.csv, replace
>>
>> I can reproduce this error on both Unix and Windows machines (which
>> may not be relevant), but can anyone else reproduce this error with
>> the code in the previous thread?
>>
>> Thank you,
>> Aaron Kirkman
>>
>> On Wed, Sep 5, 2012 at 8:32 PM, Aaron Kirkman <ak1795mailserv@gmail.com> wrote:
>>> Dear Statalist,
>>>
>>> I'm using the -tssmooth- command to calculate a simple moving average
>>> of stock prices, but I get a syntax error of "First numlist in
>>> weights(1 2 3 4 <5>) invalid" when running these commands.
>>>
>>> ##
>>>
>>> copy "http://ichart.finance.yahoo.com/table.csv?s=PNRA&a=05&b=10&c=1991&d=07&e=24&f=2012&g=d&ignore=.csv";
>>> pnra.csv, replace
>>> insheet using pnra.csv, comma clear
>>> gen dateInt = date(date, "YMD")
>>> drop date
>>> rename dateInt date
>>> tsset date
>>> tssmooth ma wtma1 = adjclose, weights(1 2 3 4 <5>)
>>>
>>> ##
>>>
>>> I also receive an error if I specify other variations of this numlist
>>> or other weights entirely, e.g.
>>>
>>> tssmooth ma wtma2 = adjclose, weights(1/4 <5>)
>>> tssmooth ma wtma3 = adjclose, weights(1(1)4 <5>)
>>>
>>>
>>> Specifying a window does work, however.
>>>
>>> tssmooth ma wtma4 = adjclose, window(4 1)
>>>
>>> However, this syntax works for another data set, so I'm not quite sure
>>> about the problem with this code. For example, this code works when
>>> using a dataset from Baum's "Introduction to Modern Econometrics Using
>>> Stata."
>>>
>>> ##
>>>
>>> use http://www.stata-press.com/data/imeus/grunfeld, clear
>>> tsset
>>> tssmooth ma wtma1 = invest, weights(1 2 3 4 <5>)
>>> tssmooth ma wtma2 = invest, weights(1/4 <5>)
>>> tssmooth ma wtma3 = invest, weights(1(1)4 <5>)
>>>
>>> ##
>>>
>>> Is there a nuance to the syntax that I'm missing?
>>>
> *
> *   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/
*
*   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