Glmnet का उपयोग करके संकोचन (Lasso) विधि में NA मान कैसे संभाला जाए


12

मैं GWAS में lasso प्रतिगमन के लिए "glmnet" का उपयोग कर रहा हूं। कुछ वेरिएंट और व्यक्तियों के लापता मान हैं और ऐसा लगता है कि ग्लमैनेट लापता मानों को संभाल नहीं सकता है।

क्या इसका कोई समाधान है? या क्या कोई अन्य पैकेज है जो लैस्सो प्रतिगमन में लापता मूल्यों को संभाल सकता है?

यहां मेरी स्क्रिप्ट्स हैं।

> 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

एनए मूल्यों के साथ मामलों को छोड़ने से पूर्वाग्रह पैदा हो सकता है। मिसाल के तौर पर मिसिंग डेटा के कई इंप्रूवमेंट करने के लिए एक विकल्प होगा mice, और फिर प्रत्येक इंप्यूटेशन पर लैस्सो करें। लैस्सो शायद आवेगों के लिए चयनित चर के विभिन्न सेट लौटाएगा, लेकिन आप अपने सर्वश्रेष्ठ उम्मीदवार चर की पहचान करने के लिए, प्रतिमान डेटा सेटों के बीच प्रत्येक चर का चयन कितनी बार कर सकते हैं।

निस्संदेह, यदि किसी डेटा बिंदु के गुम होने की संभावना उसके वास्तविक मूल्य से संबंधित है, तो नकल करना अनुचित है। इसलिए प्रतिनियुक्ति करने से पहले कम से कम यह सुनिश्चित कर लें कि विषय के ज्ञान के आधार पर, ऐसा होने की संभावना नहीं है।


3

उपयोग complete.casesऔर / या na.omitउन पंक्तियों की पहचान करने के लिए जिनके पास NA नहीं है।

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

glmnet(geno61, pheno61, ...)    

1

मुझे पता है कि यह एक पुराना सवाल है - लेकिन मैं जोड़ना चाहता था, चूहों के साथ अभद्रता से परे, कोवरिअट्स की अधिक विश्वसनीय सूची प्राप्त करने के लिए, सभी लगाए गए डेटासेट (जैसे कि यह 1 डेटासेट थे) को स्टैक्ड करने के बाद लासो का प्रदर्शन किया जा सकता है - रिकॉर्ड गुम चरों के अंश से। देखें: वुड एट अल। 2008

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.