【发布时间】:2017-03-25 10:00:04
【问题描述】:
我想用 for 循环计算 R 中特征选择的 t-Statistic。数据有 155 列,因变量是二进制的(诱变剂 - 非诱变剂)。我想为每一列分配一个 t-stat。问题是我不知道怎么写。
这是我试图在 R 中实现的公式:
我也写了一个代码,但我不确定它只是第一列。我需要在所有列的 for 循环中编写它。
abs(diff(tapply(train_df[,1], train_df$Activity, mean))) / sqrt(sd((train_df$NEG_01_NEG[train_df$Activity == "mutagen"])^2) / (length(train_df$NEG_01_NEG[train_df$Activity == "mutagen"])) +
sd((train_df$NEG_01_NEG[train_df$Activity != "mutagen"])^2) / (length(train_df$NEG_01_NEG[train_df$Activity != "mutagen"])))
提前致谢!
【问题讨论】:
-
首先,在这里寻求编码方面的帮助是无关紧要的。其次,为什么要使用 $t$-statistic 进行特征选择?我不知道任何目标(例如预测建模、解释建模……)对于这种选择是最佳的。请考虑使用 lasso(及其版本)、岭回归或弹性网络。
-
@RichardHardy 首先我不知道,抱歉。我只是想在训练模型之前获得先验知识。我不是在寻找最佳选择或类似的东西。刚刚在一篇论文上看到了一个特征选择方法,想试试。仅此而已。顺便说一句,感谢您的回答。
-
我有一个函数可以做到这一点,但如果你想自己编码,它对你没有多大帮助。如果你想要,请告诉我
-
@ekstroem 会很棒!
标签: r machine-learning t-test feature-selection