Rasgele bir dağılımdan p-değerini hesaplama


14

Umarım bu aptalca bir soru değildir. Diyelim ki sürekli bir dağılımım var. Ayrıca bir istatistiğim var ve bu rasgele dağılımı bu istatistiğin p değerini almak için kullanmak istiyorum.

R'de dağıtımınız yerleşik olanlardan birine uyduğu sürece bunu yapmanın kolay olduğunu anlıyorum, normal gibi. Ancak bunu, böyle bir varsayım yapmadan herhangi bir dağıtımla yapmanın kolay bir yolu var mı?

Yanıtlar:


12

Bir varsa kümülatif dağılım fonksiyonu , daha sonra hesaplama bir istatistik için-değeri basitçe . Diğer yandan olasılık yoğunluk fonksiyonu varsa , . Bu integrali analitik veya sayısal olarak bulabilirsiniz. R'de bu şöyle görünecektir:FpT1-F(T)F(x)=-xp(t)dt

dF <- function(x)dnorm(x)
pF <- function(q)integrate(dF,-Inf,q)$value 

> pF(1)
[1] 0.8413448
> pnorm(1)
[1] 0.8413447

Daha integrateiyi doğruluk için ayarlayabilirsiniz . Bu, elbette, integral iyi davranmadığında belirli durumlar için başarısız olabilir, ancak yoğunluk fonksiyonlarının çoğunluğu için çalışmalıdır.

pFDenemek için birkaç parametre değeriniz varsa ve dFher seferinde yeniden tanımlamak istemiyorsanız , elbette parametreleri geçirebilirsiniz .

dF <- function(x,mean=0,sd=1)dnorm(x,mean=mean,sd=sd)
pF <- function(q,mean=0,sd=1)integrate(dF,-Inf,q,mean=mean,sd=sd)$value 

> pF(1,1,1)
[1] 0.5
> pnorm(1,1,1)
[1] 0.5

Elbette @suncoolsu tarafından detaylandırılan Monte-Carlo yöntemlerini de kullanabilirsiniz, bu sadece entegrasyon için başka bir sayısal yöntem olacaktır.


Özellikle entegre ettiğiniz işlevle ilgili herhangi bir kısıtlama yoksa, yönteminizin önerdiğimden çok daha kolay olduğunu düşünüyorum. Sayısal teknolojinin farkında değilim. in R.
suncoolsu

Evet, bence bu mevcut yeteneklerimle daha uyumlu. Teşekkürler!
Alan H.

Aslında, bu işlevlerin nasıl çalıştığını tam olarak takip ettiğimden emin değilim. Örnekler normal dağılım için sonuç verir, ancak olasılık yoğunluk işlevimi nereye takarım?
Alan H.

(Testler yaptım ve verilerim uzaktan normal görünmüyor.)
Alan H.

@Alan H., yoğunluk fonksiyonunuzu buraya takın dF. Bu, dFverilen bağımsız değişkende yoğunluk işlev değerini döndürmelidir.
mpiktas

9

Evet, herhangi bir istatistik için p değeri elde etmek için herhangi bir keyfi dağıtım kullanmak mümkündür . Teorik ve pratik olarak bu formülle (tek taraflı) p değerini hesaplayabilirsiniz.

p-vbirlue=P[T>TÖbserved|'H0hÖlds]

TTÖbserved

T'H0T

Burada yaptığınız tek varsayım - T'nin null dağılımını biliyorsunuz (standart R rasgele sayı üreteci formatlarında olmayabilir). Bu kadar - boş dağılımı bildiğiniz sürece, p-değeri hesaplanabilir.


1
Şunu belirtmeliyim - bu, p-değerlerinin yanlış anlaşılmasının çok popüler ve kolay olmasının nedenlerinden biridir. (IMHO)
suncoolsu

Tamam, bu mantıklı. Ben null dağılımının iyi bir tahmin olduğuna inandığım şey var. Bunu R'de nasıl uygulayacağınıza dair herhangi bir ipucu var mı? Teşekkürler!
Alan H.

1
@Alan - Null dağıtımından rasgele değerler oluşturmayı biliyor musunuz? Varsa, - T = c (T1, ..., TN) sıfır dağılımından çekildiğini varsayalım - p-değeri = toplam (T> T_obs) / N. Nasıl üreteceğinizi bilmiyorsanız, T1 ... TN elde etmek için Metropolis Sampling veya Gibbs Sampling'i kullanmanız gerekebilir, ancak çok yapılabilir.
suncoolsu
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.