Glmnet kullanarak büzülme (Kement) yönteminde NA değerleri nasıl işlenir


12

GWAS'ta kement regresyonu için "glmnet" kullanıyorum. Bazı varyantlar ve bireyler eksik değerlere sahiptir ve glmnet'in eksik değerleri işleyemediği görülmektedir.

Bunun için herhangi bir çözüm var mı? veya kement regresyonunda eksik değerleri işleyebilecek başka bir paket var mı?

İşte senaryolarım.

> library(glmnet)
> geno6<-read.table("c6sigCnt.geno")
> geno6[1:10,1:10] #genotype file (0,1,2 for minor allele counts)

   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1   1  1  1  1  1  1  1  1  1   0
2   NA NA 1  1  1  1  1  1  1   1
3   0  0  0  0  0  0  0  0  0   2
4   0  1  0  0  0  0  0  0  0   1
5   1  0  1  1  1  1  1  1  1   1
6   0  2  0  0  0  0  0  0  0   0
7   0  0  0  0  0  0  0  0  0   2
8   0 NA  0  0  0  0  0  0  0   0
9   1  0  1  1  1  1  1  1  1   1
10  1  1  1  1  1  1  1  1  1   0

> pheno6<-read.table("c6sigCnt.pheno")
> head(pheno6) #case-control (1,2 for affection status)

  V1
1  2
2  2
3  2
4  2
5  2

> geno61<-as.matrix(geno6) 
> pheno61<-pheno6[,1] 
> fit_lasso <- glmnet(geno61,pheno61,family="binomial",alpha=1,nlambda=100) 

**Error in lognet(x, is.sparse, ix, jx, y, weights, offset, alpha, nobs,  : 
  NA/NaN/Inf in foreign function call (arg 5)**

Yanıtlar:


12

NA değerleri olan olguların ihmal edilmesi yanlılığa neden olabilir. Bir alternatif, örneğin eksik veriler üzerinde birden çok gösterim gerçekleştirmek miceve daha sonra her bir gösterimde kement yapmak olabilir. Kement, büyük olasılıkla, uyarılar için seçilen değişkenlerin farklı gruplarını döndürecektir, ancak en iyi aday değişkenlerinizi belirlemek için, her bir değişkenin, çarpılan veri kümeleri arasında ne sıklıkta seçildiğini inceleyebilirsiniz.

Kuşkusuz, bir veri noktasının eksik olma olasılığı gerçek değeri ile ilişkili ise, dolaylı olarak uygulanamaz. Bu yüzden, ithalatı yapmadan önce, konunun bilgisine dayanarak, en azından durumun böyle olmayacağından emin olun.


3

NA olmayan satırları tanımlamak için complete.casesve / veya kullanın na.omit.

cc <- complete.cases(geno6) & complete.cases(pheno6)
geno61 <- as.matrix(geno6[cc, ])
pheno61 <- pheno6[cc, 1]

glmnet(geno61, pheno61, ...)    

1

Bunun eski bir soru olduğunu biliyorum - ama fareler ile çarpışmaların ötesine, daha güvenilir bir eş değişkenler listesi eklemek istedim, kement tüm çarpık veri kümelerini (1 veri seti gibi) istifledikten sonra gerçekleştirilebilir, ancak kayıtları ağırlıklandırır eksik değişkenlerin oranı ile. Bakınız: Wood ve diğ. ark. 2008

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.