2011-07-14 2 views
3

を設定します。が、私は私の例のためのさまざまな変数とRでいくつかのデータを持っている

  B T H G S Z 
Golf  1 1 1 0 1 0 
Football 0 0 0 1 1 0 
Hockey 1 0 0 1 0 0 
Golf2  1 1 1 1 1 0 
Snooker 1 0 1 0 1 1 

私はまた、ケースごとに、私の予想出力のベクトルを持っている:

1、2、3、1、4

私がしたいのは、有用でない変数を特定することです。この例では、BとZはデータを分類する能力がほとんどないため、その事実を伝えたいと思います。

私は複数の線形回帰を使用してみましたが、何千ものケースで、数千に及ぶ私の適切なデータのように、すべての変数/次元を別々に入力し操作する必要はありません。

最高のアプローチについてのご支援をいただければ幸いです。

Btw私は統計者ではありません。私はソフトウェア開発者ですので、用語が正しくない場合は私に言い訳をしてください。

答えて

5

あなたはかなり広い質問をしましたが、私はできる限り正確にしようとします。しかし、注意の注意:すべての統計的分析方法は暗黙の一連の仮定を持っています。つまり、分析の限界を理解せずに統計モデルの結果に頼ると、間違った結論を簡単に作り出すことができます。

また、あなたが分類によって何を意味しているかは、私には明らかではありません。誰かが私に分類分析を依頼したら、おそらくクラスター分析、因子分析、潜在クラス分析などを考えていたでしょう。適用可能な線形回帰モデリングのいくつかの変形があります。

つまり、データを使用して線形回帰を行う方法を説明します。

まず、あなたのサンプルデータを複製:

dat <- structure(list(B = c(1L, 0L, 1L, 1L, 1L), T = c(1L, 0L, 0L, 1L, 
      0L), H = c(1L, 0L, 0L, 1L, 1L), G = c(0L, 1L, 1L, 1L, 0L), S = c(1L, 
      1L, 0L, 1L, 1L), Z = c(0L, 0L, 0L, 0L, 1L)), .Names = c("B", 
     "T", "H", "G", "S", "Z"), class = "data.frame", row.names = c("Golf", 
     "Football", "Hockey", "Golf2", "Snooker")) 
dat 
     B T H G S Z 
Golf  1 1 1 0 1 0 
Football 0 0 0 1 1 0 
Hockey 1 0 0 1 0 0 
Golf2 1 1 1 1 1 0 
Snooker 1 0 1 0 1 1 

次に、期待値を追加します。

dat$expected <- c(1,2,3,1,4) 
dat 
     B T H G S Z expected 
Golf  1 1 1 0 1 0  1 
Football 0 0 0 1 1 0  2 
Hockey 1 0 0 1 0 0  3 
Golf2 1 1 1 1 1 0  1 
Snooker 1 0 1 0 1 1  4 

最後に、我々は分析を開始することができます。幸い、lmには、データフレーム内のすべての列を使用するように指示するショートカットメカニズムがあります。 expected~.

fit <- lm(expected~., dat) 
summary(fit) 
Call: 
lm(formula = expected ~ ., data = dat) 

Residuals: 
ALL 5 residuals are 0: no residual degrees of freedom! 

Coefficients: (2 not defined because of singularities) 
      Estimate Std. Error t value Pr(>|t|) 
(Intercept) 2.00e+00   NA  NA  NA 
B   1.00e+00   NA  NA  NA 
T   -3.00e+00   NA  NA  NA 
H   1.00e+00   NA  NA  NA 
G   -4.71e-16   NA  NA  NA 
S     NA   NA  NA  NA 
Z     NA   NA  NA  NA 

Residual standard error: NaN on 0 degrees of freedom 
Multiple R-squared:  1, Adjusted R-squared: NaN 
F-statistic: NaN on 4 and 0 DF, p-value: NA 

と注意の最後の言葉これを行うには、次の式を使用します。サンプルデータに列よりも少ない行が含まれていたため、線形回帰モデルでは機能するデータが不十分でした。したがってこの場合、最後の2つの列は単に破棄されます。あなたのデータの簡単な説明は、はるかに多くの行と列を持っていることを示しているので、あなたには問題ではありません。

+0

あなたの完全な答えをありがとう。私は自分自身でそれを試して、それは私が必要なものにかなりスポットに見えます。私のギャップは、データフレーム上でのlmの使い方を知らないことでした。 「分類」によって、予想される価値を予測する上で変数が貧弱であることを意味しました。 – Paul

2

さまざまなアプローチが考えられます。 1つの基本的な出発点は、主成分回帰を行うことです(http://rss.acs.unt.edu/Rdoc/library/pls/html/svdpc.fit.htmlがその一例です)。 オープンな質問がたくさんあります - あなたが期待するディストリビューション、これらの変数が常に真偽であるのか、それともデモグラフィックスライスの年齢や列挙値などを表すのか。

https://stats.stackexchange.com/には、この種の質問の専門家がたくさんいます。

+0

ありがとう、私は間違いなくそれを試みます。 – Paul

関連する問題