2011-07-14 51 views
3

我有一些數據中的R具有用於我的情況下的各種變量:對大型數據變量/降維基於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提供的分類數據的能力很小,所以我希望被告知這個事實。

我看着使用多元線性迴歸,但是我不想單獨輸入和操作的每個變量/尺寸爲我的正確數據它運行到數千,案件數萬。

任何有關最佳方法的幫助將不勝感激。

順便說一句,我不是一個統計學家,我是一個軟件開發人員,所以原諒我,如果術語是不正確的。

回答

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 

和謹慎的最後一個字。由於您的樣本數據包含的行少於列,因此線性迴歸模型的數據不足以發揮作用。所以在這種情況下,它只是放棄了最後兩列。你對數據的簡要描述似乎表明你有更多的行和列,所以它不應該成爲你的問題。

+0

謝謝您的詳細解答。我自己嘗試過,看起來很適合我需要的東西。我的差距不知道如何在數據幀上使用lm。通過「分類」,我的意思是變量在預測預期值方面很差。 – Paul