2016-03-25 15 views
2

R numaralı yazımda mice paketini kullanarak çok sayıda eksiklik içeren bir veri kümesinin birden fazla imputasyonunu gerçekleştiriyorum. Ham veri kümesinde, imputation süreci için önemli olan ve daha sonraki analizler için değişkenler vardır. Ancak, bazı değişkenleri dahil etmeden cor() kullanarak bir korelasyon matrisi oluşturmak istiyorum. Normal olarak, basit bir veri kümesi x için, cor(x[,3:7]) sonra xmice işlevi tarafından oluşturulan bir mids amacı, bir kişi normal olarak mira nesne oluşturmak için bir tekrar analizi gerçekleştirmek için with kullanmak ise 7 arası sütun 3 ilişkiyi gösteren bir tablo, verim ve olur Bir mipo havuzlanmış sonuç nesnesini oluşturmak için pool kullanın. Bununla birlikte, with'un ikinci elemanının veri kümesinin sütunlarına referans veren bir formül olması ve bu, cor()'a giren girdi türü değildir. x bir mids nesnesi ise, cor(x[,3:7]) çalışmaz ve with(x, cor(x[,3:7])).Birden çok iş parçacığı veri kümesinden sütunların alt kümesi için korelasyon matrisi

Birden çok veri kümesi kümesinden değişkenlerin bir alt kümesi için havuzlanmış bir ilişki matrisi nasıl oluşturulabilir?

#reproducible example 
x = data.frame(matrix(rnorm(100),10,10)) #create random data 
x[9:10,] = NA #add missingness 
x.mice = mice(x) #make imputed data set 
cor(x.mice[,3:7]) #doesn't work 
with(x.mice, cor(x.mice[,3:7])) #doesn't work 
with(x.mice[,3:7], cor()) #doesn't work 
+1

bir [tekrarlanabilir örnek] eklemeyi düşünün lütfen (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) için sorunuz: Size yardımcı olmak için bize yardımcı olacaktır. –

+0

İyi nokta, Vincent Guillemot. Bu soruya bir tane ekledim. Teşekkürler. –

+1

Verilerinizdeki sütunları adlandırırsanız, muhtemelen çalışması daha kolaydır. Bu nedenle, x = setNames (x, letters [1:10]) 'işlevini ilgili yerde (fareyi çağırmadan önce) kullanın ve sonra bununla çalışması gerekir (x.mice, cor (cbind (a, b)))' – user20650

cevap

0

Aynı problemi yaşadım. Yeni eklenen paket "miceadds", fare paketine çok kullanışlı bir işleve sahiptir.

Özellikle, sorun için, çarpma izafi veri kümeleri için korelasyon ve covariances için çıkarım yapar işlevi micombine.cor bakın.

Örn:

library(missForest) 
library(mice) 
library(miceadds) 

#Get the data 
data <- iris 

#introduce missings 
iris.mis <- prodNA(iris, noNA = 0.1) 


#imputedata 
imputed  <-mice(iris.mis, m = 5, maxit = 5, method = "pmm") 

#correlations for the first three variables (package miceadds) 
correlations<- miceadds::micombine.cor(mi.res=iris.mis, variables = c(1:3)) 

#and because i am a psychologist and don't like scientific coding... 
old_school<-format(correlations$p, scientific=FALSE) 
correlations["p_value"] <- NA; correlations$p_value <- old_school; 
correlations 
İlgili konular