# [R] Error: invalid type (closure) for the variable 'time' - object specific trend

peter dalgaard pdalgd at gmail.com
Fri May 12 23:23:37 CEST 2017

```> On 12 May 2017, at 16:40 , Tobias Christoph <s3tochri at uni-bayreuth.de> wrote:
>
> Hey guys,
>
> thanks a lot for your tips. The regression is finally running. As you
> said, I had to integrate the column "year" in the function "time" in R.
>
> So I used the following formula: *plm(log(revenue) ~ log(supply) +
> factor(town)*time(year), data=R_Test_log_Neu)*

Um, that might not do what I think you think it does. time() gives you the "vector of times at which a time series was sampled". If you feed it any regular vector, it just gives the numbers 1:n, witness

> time(rnorm(20))
[1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
attr(,"tsp")
[1]  1 20  1

I suspect you just want "year" in the formula.

>
> So I have now sucessfully added a linear trend to my regression model?
> Another question that concernes me is how to add a quadratic trend
> instead of a linear trend. Can I just square the column "year"?

In principle, yes, but as others have pointed out, centering the variable may be a good idea, for numerical stability.

-pd

>
>
> Toby
>
> _My results see below:_
>
> Balanced Panel: n=11, T=12, N=132
>
> Residuals :
>     Min.  1st Qu.   Median  3rd Qu.     Max.
> -0.09610 -0.02370 -0.00152  0.01980  0.14000
>
> Coefficients :
>                             Estimate Std. Error t-value  Pr(>|t|)
> log(supply)               -0.0080702  0.0133675 -0.6037  0.547411
> factor(town)2:time(year)  -0.0063245  0.0053744 -1.1768  0.242100
> factor(town)3:time(year)   0.0295522  0.0056776  5.2050 1.053e-06 ***
> factor(town)4:time(year)   0.0062191  0.0054152  1.1485  0.253549
> factor(town)5:time(year)   0.0159028  0.0054954  2.8939  0.004681 **
> factor(town)6:time(year)   0.0237112  0.0055395  4.2804 4.316e-05 ***
> factor(town)7:time(year)   0.0410007  0.0055734  7.3565 5.576e-11 ***
> factor(town)8:time(year)   0.0239085  0.0053751  4.4480 2.271e-05 ***
> factor(town)9:time(year)   0.0242342  0.0056855  4.2625 4.619e-05 ***
> factor(town)10:time(year)  0.0105890  0.0053302  1.9866  0.049733 *
> factor(town)11:time(year)  0.0095270  0.0056354  1.6906  0.094065 .
> ---
> Signif. codes:  0 �***� 0.001 �**� 0.01 �*� 0.05 �.� 0.1 � � 1
>
> Total Sum of Squares:    0.46388
> Residual Sum of Squares: 0.2001
> R-Squared:      0.56863
> F-statistic: 11.8637 on 11 and 99 DF, p-value: 7.3065e-14
>
>
>
> Am 11.05.2017 um 23:17 schrieb David L Carlson:
>> What Rui said, but as important, you have four columns in your data called "town", "year", "revenue", and "supply". You do not have a column called "time".
>>
>> -------------------------------------
>> David L Carlson
>> Department of Anthropology
>> Texas A&M University
>> College Station, TX 77840-4352
>>
>> -----Original Message-----
>> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Rui Barradas
>> Sent: Thursday, May 11, 2017 3:36 PM
>> To: Tobias Christoph <s3tochri at uni-bayreuth.de>; Duncan Murdoch <murdoch.duncan at gmail.com>; r-help at r-project.org
>> Subject: Re: [R] Error: invalid type (closure) for the variable 'time' - object specific trend
>>
>> Hello,
>>
>> A closure is, like you say, a function.
>> At an R prompt try:
>>
>>> typeof(time)
>> [1] "closure"
>>
>> So like Duncan suggested rename 'time', for instance capitalize it
>> 'Time'. That should do it.
>>
>> Hope this helps,
>>
>>
>>
>>
>> Em 11-05-2017 21:20, Tobias Christoph escreveu:
>>> Hey Duncan,
>>>
>>>
>>> _My data used:_
>>>
>>> 1st column(town):1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,...........,11
>>>
>>> 2nd column(year):1,2,3,4,5,6,7,8,9,10,11,12,1,2,3.......,12
>>>
>>> 3rd column (revenue):
>>>
>>> 4th colum (supply):
>>>
>>> I have now renamed my colums and did the regression again. Now there is
>>> a problem with R-squared, as it is the sum of 1 now with no given std.
>>> error and t-value. This is probably due to the fact, that I try to
>>> estimate more parameters than data.
>>>
>>> To add a linear trend I found the following formular:*lm(y ~ x1 +
>>> factor(ccode)*time, data=df)*
>>>
>>> I try to I decode it for and use it for my regression: *plm(log(revenue)
>>> ~ log(supply) + factor(town)*time, data=R_Test_log_Neu)*
>>>
>>> When I do this regression I will get the original error: "invalid type
>>> (closure) for the variable 'time' - object specific trend"
>>>
>>> With the notation"time" not my colum is meant, but probably the command
>>> "time" in R.
>>>
>>> Can you follow my thoughts?
>>>
>>> Tobi
>>>
>>>
>>>
>>>
>>>
>>>
>>> Am 11.05.2017 um 17:23 schrieb Duncan Murdoch:
>>>> Duncan Murdoch
>>> ______________________________________________
>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> and provide commented, minimal, self-contained, reproducible code.

--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com

```