2016-04-10 25 views
1

私は、収集された過去のデータに基づいてウェブサイトの訪問者数を予測しようとしています。私はこれがポアソン回帰を使うことができるシナリオだと思う。ポアソン回帰の不正確な予測R

ID(ウェブサイトのID)、日、月、年、曜日、訪問:

入力は6列で構成されています。

基本的に入力として、「2」、「22」、「7」、「2015」、「6」、「751」の形式の列を持つCSVがあります。

以前の訪問数に基づいて訪問を予測しようとしています。ウェブサイトの大きさは変えることができるので、私は5つのカテゴリー

  • ほぼゼロ(平均< 1)
  • 非常に小さい(AVGが< 100)
  • 小さな(平均< 1000)
  • でそれらを分割することになりました
  • (< 50.000平均)培地(< 500.000平均)の大きな

train = read.csv("train.csv", header = TRUE) 
model<-glm(visits ~ type + day + month + year + dayofweek, train, family=poisson) 
summary(model) 
P = predict(model, newdata = train) 
imp = round(P) 
imp 

予測値は、私は私が終わる可能性教え、でも近くではありません。だから私は、次のようである1〜5

私のコードまでのint型である第七列名前付きの型を作りました実際の値の10〜20%のものであるが、そうしなかった場合、予測される値の大部分は実際の値よりも200〜300%大きい。これは電車のデータセットにあり、楽観的な視点を提供する必要があります。

私はRには新しく、summaryコマンドによって返されたデータを解釈する際にいくつかの問題があります。

コール:これは返すものですGLM(=式訪問〜タイプ+日+月+年+ DAYOFWEEK、 家族=ポアソン、データ=電車)

逸脱残: 分1Q中央3Qマックス
-571.05 -44.04 -11.33 -5.14 734.43

係数:

  Estimate Std. Error z value Pr(>|z|)  

(Intercept) -9.998e+02 6.810e-01 -1468.19 <2e-16 *** 

type   2.368e+00 1.280e-04 18498.53 <2e-16 *** 

day   -2.473e-04 6.273e-06 -39.42 <2e-16 *** 

month  1.658e-02 3.474e-05 477.31 <2e-16 *** 

year   4.963e-01 3.378e-04 1469.31 <2e-16 *** 

dayofweek -3.783e-02 2.621e-05 -1443.46 <2e-16 *** 

--- Signif。コード:0 '' 0.001 '' 0.01 '' 0.05 '。' 0。自由残留 逸脱の1239161821 12370の度:自由AICの157095033 12365の度:157176273

ナンバー1 '' 1が

ヌル逸脱(ポアソン家族のための分散パラメータは、1であることを撮影したもの)フィッシャー得点の反復:5

誰もがより詳細にsummaryコマンドによって返された値と、彼らがどの出力より良い予測を希望ポアソン回帰でのようになりますを説明してもらえますか?推定値の経時変化に基づいたデータへのRのより良いアプローチはありますか?

LE。 link to train.csv file

+0

あなたのデータがなければ、基本的にあなたを助けることは不可能です.. – adaien

+0

日、月、年のモデルは、面白い動作をする可能性があります。あなたはこれをしてもよろしいですか? –

+0

@adiana train.csvファイルを追加しました –

答えて

2

問題はpredictコマンドです。 predict.glmのデフォルトは、リンクの規模を予測することです。あなたが直接、元のデータと比較することができます予測をしたい場合は、引数を使用する必要がtype = "response"

P <- predict(model, newdata = train, type = "response") 

設定モデルは理想的ではありません。おそらく月はカテゴリ変数(as.factor)に含める必要があり、曜日(月の31日が翌月の1日に続く)についてもっと考える必要があります。プレディクタ「タイプ」は、タイプがレスポンスから直接導出されるので、疑わしくもあります。

あなたのモデルも高度に分散しています。これは、予測子やその他の問題がないことを示している可能性があります。

また、混合エフェクトモデルの使用について考える必要があります。

+0

各日付を整数で表す日付列を、1と表された最初の過去の日付から最後の日付まで含めれば、私はまだカテゴリ変数として月を含める必要がありますか?そして、なぜ「タイプ」が応答から直接得られるのが問題になるのでしょうか? –

+0

季節の影響があると思われる場合はどうすればいいですか –

+0

季節的な効果を得るために数ヶ月や四半期を試してみます。私は、なぜ型変数が応答と混合効果モデルから直接得られてはならないのかについていくつかの研究をしなければなりません。 回帰モデルで日付を表現する方法がわからないという私の最初の問題を解決したので、この回答を受け入れます。ありがとうございました! –

関連する問題