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

David Winsemius dwinsemius at comcast.net
Fri May 12 22:12:05 CEST 2017

```> On May 12, 2017, at 7:40 AM, 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)*
>
> 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"?

It's difficult to respond to these questions. It appears you have either created a function named `time` or loaded a package that contains such a named function. Several of the origianl responders thought it might be a misspelling of an existing column name.

One might guess from the output that `time` represents a linear value from a factor-variable across the values of the "year" column. You should probably NOT "just square column 'year'". That will probably construct non-orthogonal dependencies between "time" and "time"^2. The usual method in ordinary linear regression  is to use the "poly" function. In your case however the puzzle about what that `time` function looks like prevents much further comment.

To support informed discussion on this matter you MUST provide:

--- code that includes all the needed library() calls to load packages or to build a time function.
--- str(R_Test_log_Neu)

--
David
>
>
> 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