วิธีจัดการค่า NA ในวิธีการหดตัว (Lasso) โดยใช้ glmnet


12

ฉันใช้ "glmnet" สำหรับการถดถอยแบบ lasso ใน GWAS ตัวแปรและบุคคลบางตัวมีค่าหายไปและดูเหมือนว่า glmnet ไม่สามารถจัดการค่าที่ขาดหายไปได้

มีวิธีแก้ไขปัญหานี้หรือไม่? หรือมีแพ็คเกจอื่นที่สามารถจัดการกับค่าที่ขาดหายไปในการถดถอยแบบ lasso ได้หรือไม่?

นี่คือสคริปต์ของฉัน

> 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)**

คำตอบ:


12

การข้ามเคสที่มีค่า NA อาจทำให้เกิดอคติ อีกทางเลือกหนึ่งคือการดำเนินการใส่ข้อมูลหลาย ๆ ครั้งของข้อมูลที่หายไปตัวอย่างเช่นmiceจากนั้นทำ lasso ในแต่ละรายการ Lasso อาจส่งคืนชุดตัวแปรที่เลือกที่แตกต่างกันสำหรับ imputations แต่คุณสามารถตรวจสอบความถี่ที่เลือกแต่ละตัวแปรในชุดข้อมูลที่ถูกใส่ข้อมูลเพื่อระบุตัวแปรตัวเลือกที่ดีที่สุดของคุณ

แน่นอนว่าการใส่ความไม่เหมาะสมถ้าความน่าจะเป็นของจุดข้อมูลที่ขาดหายไปนั้นเกี่ยวข้องกับค่าที่แท้จริง ดังนั้นก่อนที่จะทำการใส่ร้ายให้แน่ใจว่าอย่างน้อยก็ไม่น่าจะเป็นเช่นนั้นขึ้นอยู่กับความรู้ในเรื่อง


3

ใช้complete.casesและ / หรือna.omitเพื่อระบุแถวเหล่านั้นที่ไม่มี NAs

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

glmnet(geno61, pheno61, ...)    

1

ฉันรู้ว่านี่เป็นคำถามเก่า - แต่ฉันต้องการเพิ่มนอกเหนือจากการใส่เข้าไปในหนูเพื่อให้ได้รายการ covariates ที่เชื่อถือได้มากขึ้น lasso สามารถทำได้หลังจากซ้อนชุดข้อมูลที่ใส่เข้าไปทั้งหมด (ราวกับว่ามันเป็น 1 ชุดข้อมูล) แต่เพิ่มน้ำหนักระเบียน โดยเศษส่วนของตัวแปรที่หายไป ดู: ไม้และ อัล 2008

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.