R'de çok değişkenli sonuçlar nasıl simüle edilir?


10

Çoğu durumda, yalnızca gibi bir sonuç / yanıt değişkeni ile ilgileniriz . Bununla birlikte, bazı senaryolarda, özellikle klinik verilerde, sonuç değişkenleri yüksek boyutlu / çok değişkenli olabilir. Mesela , içerir , ve değişkenleri ve bu sonuçların her ilişkilidir. Eğer tedavi temsil ediyorsa (evet / hayır), bu tür verileri R cinsinden nasıl simüle edebilirim?y=a+bx+ϵY=βx+ϵYY1Y2Y3x

Gerçek bir yaşam örneği, her hastaya 2 tip bypass cerrahisinden biri verilir ve araştırmacılar her hastayı bypass ameliyatından sonra ağrı, şişme, yorgunluk vb. Sonuçların (semptom şiddetleri) çok değişkenli normal olduğunu varsayıyorum. Umarım bu gerçek örnek sorumu açıklığa kavuşturabilir. Şimdiden çok teşekkürler.


dağılımı nedir ? Çok değişkenli normalse, R'deki mnormt kütüphanesine bir göz atınY
Macro

Bu soru oldukça geniştir çünkü "çok değişkenli veriler" çok fazla zemin kaplar . Aklınızda hangi belirli uygulama var?
whuber

Sadece yardımcı olması gereken gerçek bir örnek ekliyorum. teşekkürler
Tu.2

Yanıtlar:


9

İle çok değişkenli normal değerleri simüle edin mvtnorm::rmvnorm. Parametrelerin vektörlerini belirtmenize izin veren tek değişkenli rasgele sayı üreteçleri gibi görünmüyor, ancak bu sınırlama kolayca çözülebilir.

Örneğin, modeli düşünün

E(y1,y2,y3)=(1+x,2x,13x)

burada çok değişkenli bir normal dağılıma ve , ve . Bu kovaryans matrisini R olarak belirtelim:yVar(yi)=1Cov(y1,y2)=Cov(y2,y3)=0.5Cov(y1,y3)=0

sigma <- matrix(c(1,   0.5, 0,  
                  0.5, 1,   0.5,
                  0,   0.5, 1  ), 3, 3)

Deney için, en vererek bu model için bazı verileri oluşturmak izin değişir ile üç tekrarlamalı her zaman sahip. Sabit terimleri de dahil etmeliyiz:x110

data <- cbind(rep(1,10*3), rep(1:10,3))

Model araçları belirler:

beta <- matrix(c(-1,1,  0,2,  1,-3), 2, 3)
means <- data %*% beta

Birden fazla çok değişkenli sonuç üretmenin çözümü aşağıdakileri kullanmaktır apply:

library(mvtnorm) # Contains rmvnorm
sample <- t(apply(means, 1, function(m) rmvnorm(1, mean=m, sigma=sigma)))

2

Bayes ağları (BN'ler) tanımladığınız bağlamda yaygın olarak kullanılmaktadır. Üretken bir model olarak , bir BN, etki alanı değişkenleriniz arasındaki istatistiksel bağımlılıkları temsil etmenize izin verir, bu da sizin durumunuzda 1) tedavi öncesi, 2) tedavi ve 3) tedavi sonrası değişkenler olarak alt gruplara ayrılabilir. Modelinizi mevcut hasta verileriniz üzerinde eğitebilir ve ardından gözlenen değerlerin diğer değişkenleri (sonuç olarak etiketlediğinizler, yani tedavi sonrası gibi) nasıl etkilediğini araştırmak için belirli bir hastaya kanıt (gözlemlenen değerleri doldurun) girebilirsiniz.

Temiz bir numara, farklı tedavi türlerinin sonuç değişkenleriniz üzerindeki etkisini değerlendirebilmenizdir. Buna müdahale denir . İlgileniyorsanız, burada ilgili bir makalemiz var .

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.