두 번째는 x+y < 20사례 에 사용되는 계산에 대한 근사 이지만 스털링 근사를 기반으로합니다 .
이 근사 이런 종류의 위해 사용되고 일반적으로 할 때, 사람들은 적어도 다음 추가 용어 (의 요인 사용하는 것이 에 대한 근사에서 작은을 위해 실질적으로 상대적으로 근사치를 개선 것), .2πn−−−√n!n
예를 들어, 와 가 모두 10 인 경우 첫 번째 계산은 약 0.088이고 의 인수가 모든 항에 포함되어 있을 때의 근사값 은 약 0.089입니다. 근사치에서이 용어를 생략하면 0.5가됩니다. 이 함수의 저자는 경계 사건에서 그의 근사치의 정확성을 확인하기 위해 분명히 신경 쓰지 않았습니다.xy2πn−−−√
이를 위해 저자는 아마도 내장 lgamma함수를 호출했을 것 입니다 log_p1.
log_p1 <- lgamma(x+y+1)-lgamma(x+1)-lgamma(y+1)-(x+y+1)*log(2)
그는 대략 근사하려고하는 대답을 얻습니다 ( lgamma(x+1)실제로 스털링 근사법을 통해-근사하게하려고하는 반환하기 때문에 ).log(x!)
마찬가지로 저자가 왜 chooseR의 표준 분포에 나오는 함수 인 내장 함수를 사용하지 않는지 잘 모르겠습니다 .이 문제에 대해 관련 분포 함수도 내장되어있을 것입니다.
실제로 두 가지 별도의 사례가 필요하지 않습니다. lgamma하나는 오른쪽으로 작은 값으로 잘 작동합니다. 반면에이 choose함수는 꽤 큰 값으로 choose(1000,500)작동 합니다 (예 : 제대로 작동 함). 더 안전한 옵션은 아마도 lgamma이지만 문제가 발생하기 전에 꽤 큰 와 가 필요합니다 .xy
더 많은 정보를 가지고 테스트 소스를 식별 할 수 있어야합니다. 내 생각 엔 작가가 어딘가에서 가져 왔으므로 추적 할 수 있어야한다. 이에 대한 컨텍스트가 있습니까?
'최적화'라고 말하면 더 빠르고, 짧고, 유지 보수가 용이하거나 다른 것을 만드는 것입니까?
종이를 빠르게 읽은 후 편집하십시오.
저자들은 여러 가지 점에서 잘못된 것으로 보입니다. 피셔의 정확한 테스트를하지 않는 가정 이 단순히 마진이 고정 된 상태 , 예를 들어, 논의 된 바와 같이, 전혀 같은 것이 아니다 그들에, 여기에 참조로. 실제로, 그들은 여백에 대한 컨디셔닝에 대한 논쟁과 그것이 왜 수행되는지에 대해 거의 완전히 무지한 것처럼 보입니다. 읽을 가치가있는 링크입니다.
[피셔의 시험이 너무 보수적 이라는 주장에 '피셔의 시험은 우리보다 더 보수적입니다.'라는 말은 조건이 잘못 되지 않으면 반드시 따라야하는 것은 아닙니다 . 그들은 그것을 확립해야했지만 통계 학자들이 약 80 년 동안 논쟁 해 왔던 점을 감안할 때이 저자들은 왜 컨디셔닝이 수행되는지 알지 못하는 것 같습니다.이 사람들이 그 문제의 맨 아래에 있다고 생각하지 않습니다. .]
논문의 저자들은 적어도 그들이주는 확률이 p- 값을주기 위해 누적되어야한다는 것을 이해하는 것처럼 보인다. 예를 들어 5 페이지의 첫 번째 열의 중앙 근처 (강조 광산) :
이러한 결과에 대한 Fisher의 정확한 검정에 따른 통계적 유의성은 4.6 %입니다 (두 꼬리 P- 값, 즉 EST 빈도가 cDNA 라이브러리와 독립적이라는 가설에서 그러한 테이블이 발생할 확률). 대조적으로,
수학 식 2 의 누적 형태 (식 9, 방법 참조) 로부터 계산 된 P- 값 (즉, 적어도 11 개의 동족 EST가 관찰되는 경우 액틴 EST의 상대 빈도가 두 라이브러리에서 동일해야 함) 뇌 라이브러리에서 2 개가 관찰 된 후 간 라이브러리는 1.6 %이다.
(나는 그들의 가치 계산에 동의하지는 않지만 그들이 실제로 다른 꼬리로 무엇을하고 있는지주의 깊게 확인해야합니다.)
나는 그 프로그램이 그렇게 생각하지 않는다.
그러나 분석은 표준 이항 테스트 가 아님 을주의하십시오 . 그들은 베이지안 인수를 사용하여 잦은 테스트에서 p- 값을 도출합니다. 그들은 또한 이상하게도 이상하게도 보다는 를 조절하는 것처럼 보입니다 . 이것은 그들이 이항이 아닌 음의 이항 과 같은 것으로 끝나야한다는 것을 의미 하지만, 나는 논문이 실제로 잘못 조직되고 몹시 잘못 설명되어 있음을 알았습니다 (통계 논문에서 진행되는 작업을 수행하는 데 익숙합니다). 주의 깊게 살펴 보지 않으면 확실하지 않습니다.xx+y
이 시점에서 확률의 합이 1이라고 확신조차하지 못합니다.
여기에 더 많은 이야기가 있지만 문제는 논문에 관한 것이 아니라 프로그램의 구현에 관한 것입니다.
-
어쨌든, 결론은 적어도 논문이 p- 값이 방정식 2와 같은 확률의 합으로 구성되어 있음을 정확하게 식별하지만 프로그램 은 그렇지 않다는 것 입니다. (용지의 방법 섹션의 식 9a 및 9b 참조)
코드는 단순히 잘못되었습니다.
[ pbinom@ whuber의 의견에서 알 수 있듯이 개별 확률을 계산하기 위해 (그러나 이항 테스트가 아니기 때문에 꼬리는 아님)을 사용할 수 있지만 방정식 2에 1/2의 추가 요소가 있습니다. 종이에 결과를 복제하려면 결과를 변경해야합니다.]
당신은 그것을 약간의 조정으로 얻을 수 있습니다 pnbinom-
이항있는 음극 중 어느 하나에 시도 횟수의 일반적인 형태 성공 횟수 장애 받는 성공. 둘은 동등하다. 위키 백과 두 번째 양식을 제공 여기 . 확률 함수는 다음과 같습니다.kthkth
(k+r−1k)⋅(1−p)rpk,
p4의 방정식 2 (및 p3의 방정식 1도)는 음의 이항이지만 1 만큼 시프트 됩니다. , 및 .p=N1/(N1+N2)k=xr=y+1
이것은 대한 한계 가 비슷하게 바뀌지 않았기 때문에 그 확률이 1에 추가되지 않을 수도 있습니다.y
그것은 나쁠 것입니다.
p2전혀 계산할 필요가 없습니다 . 의 작은p1과p2의 작은에 해당x하고y비 효율성의 그 - 각각. 가능한 버그는 조건부의 두 번째 분기가p2전혀 계산하지 않고 단지 사용 한다는 것p1입니다. 또한 코드가 p- 값을 계산하지 않는 것처럼 보이기 때문에 코드가 완전히 잘못된 것일 수도 있습니다. 이항 확률의 절반에 불과하고 아마도 꼬리 확률 이어야합니다 . 왜pbinom/를 사용dbinom하고 끝내지 않습니까?