[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

> 
> Enjoy your weekend,
> 
> 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
> Adj. R-Squared: 0.4292
> 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,
>> 
>> Rui Barradas
>> 
>> 
>> 
>> Em 11-05-2017 21:20, Tobias Christoph escreveu:
>>> Hey Duncan,
>>> 
>>> thank you very much for your quick reply.
>>> 
>>> _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
>>> PLEASE do read the posting guide
>>> 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
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> 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
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> 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



More information about the R-help mailing list