2016-06-26 6 views
0

誰かが最近この記事で質問を投稿しました:https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdfpredict()とnewdata - これはどのように機能しますか?

論文のRコードは最後に記載されています。本質的に、この調査では、検索クエリによる売上の予測を1ヵ月先に検討しています。私はモデルと方法を理解していると思いますが、私に困惑するものがあります。それは一部だ:

1 ##### Divide data by two parts - model fitting & prediction 
dat1 = mdat[1:(nrow(mdat)-1), ] 
dat2 = mdat[nrow(mdat), ] 

2 ##### Fit Model; 
fit = lm(log(sales) ~ log(s1) + log(s12) + trends1, data=dat1); 
summary(fit) 

と:

3 #### Prediction for the next month; 
predict.fit = predict(fit, newdata=dat2, se.fit=TRUE); 

私は(1)でdat2mdatから唯一の最後の行であることを、理解してください。 (2)は、回帰モデルがデータセットの最後の行以外のすべてに適用されることを意味します。

しかし、なぜ(3)の予測モデルのnewdata=dat2が使用されていて、それはどういう意味ですか?なぜ最後の行だけ?ここ

答えて

1

コードの各行の説明である:

dat1 = mdat[1:(nrow(mdat)-1), ] 

は、最後の行が、すべてが含まれているデータセット全体のサブセットを作成します。

最後の行のみを含むデータセット全体のサブセットを作成します。

fit = lm(log(sales) ~ log(s1) + log(s12) + trends1, data=dat1) 

モデルフィッティングについては、最初のサブセットはdat1のみです。したがって、最後の行がないデータ。

predict.fit = predict(fit, newdata=dat2, se.fit=TRUE) 

predict当てはめモデルを取り、それが「見えない」データdat2のために予測するものを探します。

独立変数が1つの最も簡単なケースでは、dat1に1行を当てはめて、どのY値がX値がdat2であるか予測します。

+0

しかし、なぜ1つの値しか使用されていないのですか?将来的に一つの価値ですか?紙は1ヶ月の予測にのみ集中しているので?それが3-m予測を見ると仮定すると、dat2は最後の3つの値になりますか? – JohnnyDeer

+1

'dat1 < - mdat [1:(nrow(mdat)-3)、]'と 'dat2 = mdat [(nrow(mdat)-2):nrow(mdat) )、] 'しかし、3ヶ月ではなく1ヶ月前に予測することが目的であれば(なぜなら、今後もっと遠く見えると正確さが失われるため)、なぜ2つの追加観測を無駄にしなければならないのか。最新の? – Alex

+0

さて、紙面のMAEは、dat1の回帰の実行値(すなわち、 'predict.fit = predict(fit、se.fit = TRUE)')で測定されます。 'predict.fit = predict(fit、newdata = dat2、se.fit = TRUE)'は1つの値しか返しません。私は 'predict.fit = predict(fit、newdata = dat2、se.fit = TRUE)'の結果がいつどこで使われているのか疑問に思っています。 – JohnnyDeer

関連する問題