[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