使用glmnet进行甲基化数据的特征选择和建模(p >> N)
我想使用GLM和Elastic Net来选择那些相关功能+建立一个线性回归模型(即预测和理解,因此最好保留相对较少的参数)。输出是连续的。这是每基因50的情况。我一直在阅读有关该软件包的信息,但是我不确定要执行的步骤:200002000020000505050glmnet 执行CV选择lambda: cv <- cv.glmnet(x,y,alpha=0.5) (Q1)给定输入数据,您会选择其他alpha值吗? (Q2)在建立模型之前,我还需要做其他事情吗? 拟合模型: model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min) (Q3)有什么比“协方差”更好的选择? (Q4)如果CV选择了lambda,为什么需要此步骤nlambda=? (Q5)使用lambda.min还是更好lambda.1se? 获取系数,看看哪些参数掉了(“。”): predict(model, type="coefficients") 在帮助页面有很多种predict方法(例如predict.fishnet,predict.glmnet,predict.lognet等)。但是,正如我在一个示例中看到的那样,任何“简单”的预测都是如此。 (Q6)我应该用predict或者predict.glmnet还是其他? 尽管我已经读过有关正则化方法的文章,但我在R和这些统计软件包中还是一个新手,因此很难确定我是否正在使我的问题适应代码。任何建议都将受到欢迎。 更新 基于 “如前所述,类train的对象包含一个称为的元素finalModel,这是具有通过重采样选择的调整参数值的拟合模型。该对象可以按传统方式用于生成新样本的预测,模型的预测功能。” 使用caret调整α和拉姆达: trc = trainControl(method=cv, number=10) fitM = train(x, y, trControl = trC, method="glmnet") 是否fitM取代先前的步骤2?如果是这样,如何立即指定glmnet选项(type.gaussian="naive",lambda=cv$lambda.min/1se)? 接下来的predict步骤,我可以替换model为fitM吗? 如果我做 trc = trainControl(method=cv, number=10) fitM = train(x, y, trControl = trC, method="glmnet") …