2017-08-15 7 views
2

私は統計とRに一般的なので、私の質問は少しダムかもしれないが、私は私のソリューションをオンラインで見つけることができないので、私はここでそれを試してみるべきだと思った。Rと数値変数とカテゴリ変数の回帰問題を解決する問題

私は次のように非常によく似て異なる変数の全体の多くのデータフレームdatasetを持っている:

Item | Size | Value | Town 
---------------------------------- 
A  | 10 | 800 | 1 
B  | 11 | 100 | 2 
A  | 17 | 900 | 2 
D  | 13 | 200 | 3 
B  | 15 | 500 | 1 
C  | 12 | 250 | 3 
E  | 14 | NA | 2 
A  |  | 800 | 1 
C  |  | 800 | 2 

基本的に、私は試してみて、項目の種類に基づいてサイズを「推測」する必要があり、それはです価値、それが売却された町があるので、回帰法は良い考えだと思います。

私がしようとすると(私はそれが正しいかどうでもよく分からないが)それは次のような機能を使って、どのように見えるかを確認するために多項式回帰を使用します。

summary(lm(Size~ polym(factor(Item), Value, factor(Town), degree=2, raw=TRUE), dataset))

しかし、私はこれを取得私はこれを行うにしようとすると、警告メッセージ:これはなぜ起こるか

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 0 (non-NA) cases In addition: Warning message: In Ops.factor(X, Y, ...) : ‘^’ not meaningful for factors

誰も教えてもらえますか?もっと重要なことは、私がしたことは正しいことですか?

私の2番目の質問は回帰のNA値に関するものです。上記のデータセットでは、Valueの列にNAという値があります。私が理解しているところでは、Rは列内の値がNAの行を無視します。しかし、私がNA値をたくさん持っているとどうなりますか?また、列内に1つしか値がない場合は、行全体を自動的に削除することはデータの浪費のようですので、この問題を解決または回避するためのより良い方法があるかどうか疑問に思っていました。ありがとう!

編集:私が作成した回帰モデルでは、テストデータにはトレーニングデータに含まれていない新しい「レベル」があるようです(たとえば、エラーはfactor(Town) has new levelsと表示されます)。このような場合はどうすればよいでしょうか?

+1

'polym'から要因を取り除いてください - 意味のない要因変数を二乗しようとしています。まず 'lm(Size〜factor(Item)+ factor(Town)+ Value、...)'を試し、必要に応じて 'Value'の二乗項を加えてください。 –

+0

@RemkoDuursmaああ、ありがとう、私は今それを試してみる:) – badatstats

答えて

1

はい、私はlm(Size ~ factor(Item) + factor(Town) + Value,...)を使って@ RemkoDuursmaの提案に従い、残差を比較することで他の度合いも調べます(あなたが二乗を選んだ理由はありますか?)。平均変数値

  • 代替他の変数の値に基づく予測とのそれぞれに
  • 代替すべてすべて中央変数の値を持つ

    1. 代替:NA値を代入に関しては

      は、あなたは多くのオプションを持っています

    幸運を祈って、次回はhttps://stats.stackexchange.com/をチェックしてみてください!

  • +0

    ありがとう!私はそれに応じて私のデータを変更しようとします:)私はちょうどあなたがそれを確認することができますそれは大丈夫だろういくつかの自由な時間を持っている場合は、最後の質問が1つありますか? – badatstats

    +0

    何をチェックして、ハハ? – sweetmusicality

    +0

    ああ申し訳ありません!私は上記の編集にそれを含めました – badatstats