モデリングをしながら独立変数のために多くのレベルを扱うにはどうすればいいですか?こんにちは、
私は自分のデータセットに 'Brand'という変数を持っています。これは本質的には製品のブランド名です。この変数には約2300のレベルがあり、私はこれを予測モデリングのための独立変数の1つとして使用することを検討しています。ここでは価格が目標変数です。誰かが独立変数の非常に多くのレベルに対処する方法を私に教えてもらえますか?
再:どのようにモデリングをしながら独立変数のために多くのレベルに対処するのですか?レベル数を減らすもう1つの簡単な方法は、パーティションモデルを使用することです。Yとして値を付け、Xとしてブランドを付けます。さまざまな数の分割を試して、リーフ番号やラベルを保存して新しい変数を作成できます。
再:どのようにモデリングをしながら独立変数のために多くのレベルに対処するのですか?私は過去に私が多くのカテゴリーを扱うために使った2つの非常に異なる方法を提案したいと思います。私の場合、それらは年代順の地理的カテゴリになりますが、ブランドの場合はうまくいくはずです。
- ブランドについて外因的な知識がある場合は、それらをもっと意味のある分類に分類できます。たとえば、国別、またはプレミアム対メインストリート対ジェネリックのいずれかです。
- 何らかの方法を使う Anova)ブランドを価格でランク付けし、クラスターと不連続点を探します。多分それらは価格帯によって集まる。
上記のいずれかの方法でこれらのクラスターを作成したら、この新しい変数をモデルに追加できます。これは、オリジナルの詳細なブランド名を使用する代わりに、またはそれに加えてネストされた方法で実行できます。
何がうまくいったのか教えてください。
ロン
再:どのようにモデリングをしながら独立変数のために多くのレベルに対処するのですか?あなたのためのさらに別の考え @dale_lehman の考えは、多次元分析を次元削減方法としても試みることですか?
再:どのようにモデリングをしながら独立変数のために多くのレベルに対処するのですか?Phil氏の提案は良い提案だと思います - もしあなたが一緒に仕事をするためにたくさんの観察があれば。 私はこのようなデータを見ました。会社が多数の異なる品目の販売を記録していた - そして名前の付いた製品は観察とほぼ同じくらいの数でした(彼らは家具のすべての品目にやや異なる名前を付けました)。 その場合、私はあなたがデータから何らかの意味をなすために次元を減らす必要があると思います。 あなたはこれをするためにテキストエクスプローラを使ってみるかもしれません。 すべての椅子のタイトルに「椅子」という単語が含まれているなど、名前が明確に定義されている場合は、キーワードを含む製品を識別する一連の新しい列を使用して、2300項目をはるかに小さいセットにまとめることができます。。
再:どのようにモデリングをしながら独立変数のために多くのレベルに対処するのですか?これがアイデアです。私がそれが最も有用な解決策であるかどうかわからないが、私はそれを試みるだろう。
標識変数列を作成できます。ブランドごとに1列(合計2300個の標識列)、そのブランドであるかどうかを示す1または0(1)またはそうでない(0)。Cols> Utilities> Make Indicator Columnsの順にクリックします。その後、Bootstrap Forestのような可変選択手法を使用して、価格に最も影響を与えるブランドを特定できます。次に、ブランド列を簡略化して、最も重要な予測ブランドのそれぞれにレベルを設定し、残りを「その他の」レベルにグループ化します。それはモデリングの課題を単純化するでしょう。