【发布时间】:2020-06-11 13:17:50
【问题描述】:
我在基因型的二进制数据集上使用cv.glmnet 来预测连续变量表型。数据看起来像这样,但有超过 200 个基因:
Pheno K00074 K00100 K00179 K00180
1 18.063630 0 0 0 0
2 16.746644 0 0 0 0
3 16.016194 1 0 0 0
4 -1.469207 1 1 0 0
5 -3.047956 1 0 1 1
6 15.274531 1 0 0 0
cv.glmnet 和 predict 的代码如下所示:
cv.lasso <- cv.glmnet(x = as.matrix(zx), y = unlist(zy), alpha = 1,
type.measure = 'mse',keep = TRUE) # runs the model
prediction<-predict(cv.lasso,s = cv.lasso$lambda.1se,
newx = as.matrix(batch1218.kegg[,-1]),type = 'class')
其中zx 只是基因存在/不存在的二进制列,zy 是表型列。 batch1218.kegg 是一组新的基因型数据,我想用它来预测表型。我的预测最终看起来像这样:
1
1 6.438563
2 6.438563
3 6.438563
4 6.438563
5 6.438563
6 6.438563
每一行的所有数字都相同。其他表型也会发生同样的事情。我认为问题可能是与大量预测变量相比,我只使用了约 38 行表型数据。但想看看是否还有我正在处理的其他问题。
【问题讨论】:
-
我们可能需要更多数据来帮助您,一般来说,最好发布足够多的数据来复制问题。您可以在数据的子集上使用
dput(例如,您在此处拥有的 6 行) - 我们需要一些zx、zy和batch1218.kegg来试用它 -
@AndrewBaxter 抱歉,我是个新手,在这里提问。我想我发现了我的问题,即套索将所有系数缩小到 0,因此实际上没有基因对大多数表型具有任何预测能力。对于确实具有一些重要基因的表型,预测结果存在一定的变异性。
标签: r regression prediction glmnet