[R] Predict

Ahmed Attia ahmedatia80 at gmail.com
Fri Jun 30 17:23:35 CEST 2017


Sorry for the confusion, here is the edited question.

The data= Stand_Height (attached) is recorded from 12/1/2009 to
12/31/2015 (25 observations) and the other dataset (leafbiom) is
recorded from 10/7/2009 to 12/29/2016 (daily observations).

I want to use the 25 observations of stand height to predict the daily
stand height from 10/7/2009 to 12/29/2016. The daily stand height will
be multiplied by leaf biomass to produce a new variable.

I agree that a loop is not needed, would the forecast library help or
should I use predict library.

Stand_Height=ts(Stand_Height$height,start=2009,end = 2016,
                frequency =365)

plot(forecast(ets(Stand_Height),10))
a=seq(as.Date("2009-12-01"),by="weeks",length=11)
axis(1, at = a, labels = format(a, "%Y %b %d"), cex.axis=0.6)


#Error :$ operator is invalid for atomic vectors

Thanks


Ahmed Attia, Ph.D.
Agronomist & Soil Scientist






On Fri, Jun 30, 2017 at 10:37 AM, Sarah Goslee <sarah.goslee at gmail.com> wrote:
> There are a bunch of things wrong here, although without a
> reproducible example I can't really fix most of them.
>
> - You're overwriting SH within the loop.
> - You're running the regression 2641 times, even though the result
> never changes.
> - You're never predicting from your linear model using the other data
> not in the regression.
> - Leaf biomass data is never used for anything. I would have thought
> that you would use leaf biomass as the predictor variable, not Date.
> - I'm not sure why you want the cumulative sum of stand height; that
> doesn't make sense to me.
>
> I'm guessing you want:
>
> height.model <- lm(height ~ leafbiomass, data = Stand_Height)
> pred.height <- predict(height.model, leafbiom)
>
> # not sure about the reasoning behind this
> SH <- cumsum(pred.height)
>
> You don't need a loop. Overwriting SH is the biggest R problem; the
> rest of my questions have to do with what your objective actually is,
> like what you are modeling and what you are doing with the
> predictions. But my sample code might be enough to get you headed in
> the right direction regardless.
>
> Sarah
>
> On Fri, Jun 30, 2017 at 9:27 AM, Ahmed Attia <ahmedatia80 at gmail.com> wrote:
>> Hi folks,
>>
>> I have 25 stand height observations over 7 years period and daily
>> leafbiomass data during this period. I want to use the 25 plant height
>> observations as inputs and predict the daily stand height during the 7
>> years.
>>
>>
>> SH=matrix(data=NA , nrow = 2641, ncol = 1)
>> for (i in 1:2641) {
>>   SH<- predict(lm(height~Date, data=Stand_Height));
>>
>>   dl=leafbiom$Date[i-1];
>>   de=leafbiom$Date[i];
>> SH[i]=sum(SH[leafbiom$Date==de&leafbiom$Date==dl])
>>
>>
>> }
>> SH
>>
>>
>> The SH output is the prediction of Stand height in 25 observations
>> only and provides NA for the remaining 2616 iterations.
>>
>> Thanks for your help.
>>
>>
>>
>> Ahmed Attia, Ph.D.
>> Agronomist & Soil Scientist
>>
> --
> Sarah Goslee
> http://www.functionaldiversity.org


More information about the R-help mailing list