İkinci şey, x+y < 20
durum için kullanılan hesaplamaya bir yaklaşımdır , ancak Stirling yaklaşımına dayanmaktadır .
Bu yaklaşım için bu tür kullanılmakta olan normal olarak, insanlar, en azından aşağıdaki ilave terimi (faktörünü kullanmak için yaklaşımda Küçük için büyük ölçüde göreli yaklaşım iyileştirecektir), .2 πn---√n !n
Örneğin, ve her ikisi de 10 ise, ilk hesaplama yaklaşık 0.088 verirken, faktörü tüm terimlere dahil edildiğinde yaklaşık 0.089 civarındadır, çoğu amaç için yeterince yakındır ... ama bu terimi yaklaşık olarak atlamak 0.5 verir - ki bu gerçekten yeterince yakın değildir! Bu işlevin yazarı, sınır davasındaki yaklaşımının doğruluğunu kontrol etme zahmetine girmedi.xy2 πn---√
Bu amaçla, yazar muhtemelen yerleşik lgamma
işlevi çağırmış olmalıdır - özellikle, bunun için sahip olduğu şey yerine bunu kullanarak log_p1
:
log_p1 <- lgamma(x+y+1)-lgamma(x+1)-lgamma(y+1)-(x+y+1)*log(2)
bu da yaklaştırmaya çalıştığı cevabı verir ( lgamma(x+1)
aslında döndürdüğü için , Stirling yaklaşımı ile yaklaşık olarak - kötü bir şekilde - yapmaya çalıştığı şey).günlük( x ! )
Benzer şekilde, yazarın neden choose
ilk bölümde yerleşik işlevi kullanmadığını, R'nin standart dağılımında gelen bir işlevi kullanmadığından emin değilim. Bu nedenle , ilgili dağıtım işlevi de muhtemelen yerleşiktir.
Gerçekten iki ayrı davaya ihtiyacınız yok; en lgamma
küçük değerlere kadar gayet iyi çalışıyor. Öte yandan, choose
fonksiyon oldukça büyük değerler için çalışır (örneğin choose(1000,500)
gayet iyi çalışır). Daha güvenli seçenek muhtemelen lgamma
, bir sorun olmadan önce oldukça büyük ve sahip olmanız gerekir .xy
Daha fazla bilgi ile testin kaynağını tanımlamak mümkün olmalıdır. Benim tahminim yazar bir yerden almış, bu yüzden onu takip etmek mümkün olmalı. Bunun için bir bağlamınız var mı?
'Optimize' dediğinizde, onu daha hızlı, daha kısa, daha sürdürülebilir veya başka bir şey yapmak mı demek istersiniz?
Kağıdı hızlı bir şekilde okuduktan sonra düzenleyin:
Yazarlar bazı noktalarda yanlış gibi görünüyor. Fisher'ın kesin testi , marjların sabit olduğunu varsaymaz , sadece bunlarla ilgili koşullar , ki bu, örneğin burada referanslarla tartışıldığı gibi hiç de aynı şey değildir . Gerçekten de, marjlar üzerinde koşullandırma ve neden yapıldığına dair tartışmalardan tamamen habersiz görünüyorlar. Oradaki bağlantılar okumaya değer.
['Fisher'in testi her zaman bizimkinden daha muhafazakardır' dan Fisher'in testinin çok muhafazakâr olduğu iddiasına ilerlerler ... koşullandırma yanlış olmadıkça mutlaka uymaz . Bunu belirlemek zorunda kalacaklardı, ancak bunun istatistikçilerin yaklaşık 80 yıldır tartıştığı bir şey olduğu ve bu yazarların koşullandırma neden yapıldığından habersiz göründükleri için, bu adamların bu konunun sonuna geldiğini sanmıyorum. .]
Makalenin yazarları en azından p-değerleri vermek için verdikleri olasılıkların birikmesi gerektiğini anlamış gibi görünüyor; örneğin, sayfa 5'teki ilk sütunun ortasına yakın (vurgulama mayını):
Fisher'ın böyle bir sonuç için kesin testine göre istatistiksel anlamlılık% 4.6'dır (iki kuyruklu P değeri, yani aktin EST frekanslarının cDNA kütüphanelerinden bağımsız olduğu hipotezinde böyle bir tablonun meydana gelme olasılığı). Buna karşılık,
Denklem 2'nin kümülatif formundan (Denklem 9, bkz. Yöntemler) hesaplanan P değeri (yani, aktin EST'lerin nispi frekansının her iki kütüphanede de aynı olması için, en az 11 aynı kökenli EST'nin gözlenmesi beyin kütüphanesinde iki kişiden sonra karaciğer kütüphanesi gözlendi)% 1.6'dır.
(buradaki değer hesaplamasına katıldığımdan emin değilim; diğer kuyrukla gerçekten ne yaptıklarını görmek için dikkatlice kontrol etmeliydim.)
Programın bunu yaptığını sanmıyorum.
Onların analizi olduğunu, ancak, dikkat değil , standart bir binom testi; aksi halde sık kullanılan bir testte p-değeri türetmek için Bayesci bir argüman kullanırlar. Ayrıca - biraz garip bir şekilde, aklıma - yerine üzerinde koşullanıyor gibi görünüyorlar . Bu, bir binomdan ziyade negatif bir binom gibi bir şeyle sonuçlanması gerektiği anlamına gelir , ancak kağıdı gerçekten kötü organize edilmiş ve çok kötü bir şekilde açıklanmış buluyorum (ve istatistik kağıtlarında neler olup bittiğini öğrenmeye alışkınım), bu yüzden dikkatlice geçmediğim sürece emin olmayacağım.xx + y
Bu noktada olasılıklarının toplamının 1 olduğuna bile ikna olmadım.
Burada söylenecek çok şey var, ama soru kağıtla ilgili değil, programdaki uygulama ile ilgili.
-
Her neyse, sonuç olarak, en azından kağıt, p-değerlerinin denklem 2'deki gibi olasılıkların toplamından oluştuğunu doğru bir şekilde tanımlamaktadır, ancak program bunu yapmaz . (Makalenin Yöntemler bölümündeki eqn 9a ve 9b'ye bakın.)
Kod bu konuda yanlış.
[ pbinom
@ Whuber'ın yorumundan da anlaşılacağı gibi, bireysel olasılıkları (ancak kuyruğu değil, yapılandırdığı için bir binom testi olmadığı için) kullanmak için kullanabilirsiniz, ancak daha sonra denklem 2'de fazladan bir faktör 1/2 vardır. sonuçları makalede çoğaltmak istiyorsanız bunları değiştirmeniz gerekir.]
Biraz uğraşarak, pnbinom
-
Negatif binomun olağan biçimleri ya kt hbaşarı veya sayısı arızaları içinkt hbaşarısı. İkisi eşdeğerdir; Wikipedia burada ikinci formu veriyor . Olasılık fonksiyonu:
(k + r - 1k) ⋅(1-p)rpk,
P4'teki denklem 2 (ve ayrıca 1) negatif bir binomiyaldir, ancak 1 ile değiştirilir . , ve .p =N-1/ (N-1+N-2)k = xr = y+ 1
Bu beni üzerindeki sınırlar benzer şekilde değişmediği için olasılıklarının 1'e bile eklenemeyeceği konusunda beni endişelendiriyor .y
Bu kötü olur.
p2
; daha küçükp1
vep2
daha küçük karşılık gelirx
vey
bir verimsizlik olduğunu - sırasıyla. Olası bir hata, koşulun ikinci dalınınp2
hiç hesaplama yapamaması ve sadece kullanmasıdırp1
. Kodun tamamen hatalı olabileceğinden de şüpheliyim, çünkü bir p değeri hesaplıyor gibi görünmüyor: sadece binom olasılığının yarısıdır ve belki de bir kuyruk olasılığı olmalıdır. Neden sadecepbinom
/ kullanmıyorsunuzdbinom
?