あなたは非常に幅広い質問をしましたが、できる限り正確になるように努めます。ただし、注意が必要です。すべての統計分析手法には、暗黙の一連の仮定があります。これは、分析の限界を理解せずに統計モデルの結果に頼ると、間違った結論を簡単に出す可能性があることを意味します。
また、分類が何を意味するのか、私にはよくわかりません。誰かに分類分析を依頼されたら、クラスター分析、因子分析、潜在クラス分析などを検討するでしょう。適用可能な線形回帰モデリングのバリアントがいくつかあります。
とはいえ、データを使用して線形回帰を実行する方法は次のとおりです。
まず、サンプル データを複製します。
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 つの列を単純に破棄しました。データの簡単な説明は、行と列がはるかに多いことを示しているように見えるので、問題にはならないはずです。