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.

Re: st: Why does this scalar calculation return the wrong value when using time series operators?

 From Nick Cox To statalist@hsphsun2.harvard.edu Subject Re: st: Why does this scalar calculation return the wrong value when using time series operators? Date Tue, 6 Nov 2012 22:07:43 +0000

```A U.S.-based Stata friend privately queried "plumps for" as "British slang?"

I wouldn't want to be obscure, so should spell out that "plumps for"
means "chooses" in this context.

Last I heard the language was called "English"....

On Tue, Nov 6, 2012 at 9:45 PM, Nick Cox <njcoxstata@gmail.com> wrote:
> The short answer is that your "scalar calculation" is no such thing.
>
> . di t
>
> -- thinking that scalar t will be displayed --
>
> but Stata has three rules that together cause this to do something different.
>
> First off, variables and scalars share the same namespace.
>
> Second, if there's ambiguity Stata plumps for the variable name interpretation.
>
> Third, if asked to display a variable, -display- tries its best and
> its best is varname[1], here t[1], here 1.
>
>
> SJ-6-2  dm0021  . Stata tip 31: Scalar or variable? Problem of ambiguous names
>         . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  G. I. Kolev
>         Q2/06   SJ 6(2):279--280                                 (no commands)
>         tips for avoiding abbreviation conflicts with variables
>         when naming scalars
>
> You're in very good company in being puzzled by this, as only a
> concatenation of circumstances explains it all.
>
> Nick
>
> On Tue, Nov 6, 2012 at 9:25 PM, Aaron Kirkman <ak1795mailserv@gmail.com> wrote:
>
>> I'm performing a simple linear regression on time series data and
>> calculating the t-statistic for coefficients afterwards. However, I
>> noticed that when using time series operators, the t-statistic always
>> calculates to be one, even though the values from the regression are
>> correct. For example, this code:
>>
>> ----------
>> clear all
>>
>> local y0 0
>> set obs 200
>> quietly {
>>      gen y = .
>>      gen t = _n
>>      tsset t
>>
>>      replace y = cond(t == 1, `y0', L.y + rnormal())
>>      regress D.y L.y
>> }
>>
>> di _b[L.y]
>> di _se[L.y]
>> di _b[L.y] / _se[L.y]
>>
>> scalar t = _b[L.y] / _se[L.y] // t = Beta / SE
>>
>> di t
>> ----------
>>
>> outputs the following:
>>
>> -.02092465     // _b[L.y]
>> .01391362      // _se[L.y]
>> -1.5038971     // _b[L.y] / _se[L.y]
>> 1                   // scalar "t"
>>
>> The first three numbers are the correct values from the regression,
>> but the calculation for the t-statistic is incorrect. If I remove the
>> time series operators from the code and instead refer to observations
>> numbers (I would prefer to use time series operators, but just as an
>> example), the resulting t-statistic is correct:
>>
>> ----------
>> clear all
>> local y0 0
>> set obs 200
>> quietly {
>>     gen y = .
>>     gen ly = .
>>     gen dy = .
>>
>>     replace y = cond(_n == 1, `y0', y[_n - 1] + rnormal())
>>     replace ly = y[_n - 1]
>>     replace dy = y - ly
>>
>>     regress dy ly
>> }
>>
>> di _b[ly]
>> di _se[ly]
>> di _b[ly] / _se[ly]
>>
>> scalar t = _b[ly] / _se[ly] // t = Beta / SE
>> di t
>> ----------
>>
>> This code outputs the correct t-statistic of  -1.5038971
>>
>> -.02092465     // _b[L.y]
>> .01391362      // _se[L.y]
>> -1.5038971     // _b[L.y] / _se[L.y]
>> -1.5038971     // scalar "t"
>>
>>
>> I read through "[U] 13.5 Accessing coefficients and standard errors"
>> and --help scalar--, but I don't see anything in either of those
>> manuals that would cause the problem. Any ideas?
*
*   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/
```