使用R对大数据集进行变量/降维

Pau*_*aul 4 variables regression r reduction dimension

我在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
Run Code Online (Sandbox Code Playgroud)

我还有一个我的预期输出的矢量:

1,2,3,1,4

我想做的是识别无用的变量.在这个例子中,B和Z几乎没有能力对数据进行分类,所以我希望被告知这个事实.

我查看了使用多元线性回归,但是我不想单独输入和操作每个变量/维度,因为在我的数据中它运行成千上万,有数万个案例.

任何有关最佳方法的帮助将不胜感激.

顺便说一下,我不是统计学家,我是软件开发人员,如果术语不正确,请原谅.

And*_*rie 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
Run Code Online (Sandbox Code Playgroud)

接下来,添加预期值:

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
Run Code Online (Sandbox Code Playgroud)

最后,我们可以开始分析了.幸运的是,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 
Run Code Online (Sandbox Code Playgroud)

最后一点谨慎.由于样本数据包含的行少于列,因此线性回归模型的数据不足以运行.所以在这种情况下,它只是丢弃了最后两列.您对数据的简要描述似乎表明您有更多的行和列,因此它不应该成为您的问题.