Tính giá trị p từ phân phối tùy ý


14

Tôi hy vọng đây không phải là một câu hỏi ngớ ngẩn. Hãy nói rằng tôi có một số phân phối liên tục tùy ý. Tôi cũng có một thống kê và tôi muốn sử dụng phân phối tùy ý này để lấy giá trị p cho thống kê này.

Tôi nhận ra rằng trong R, thật dễ dàng để làm điều này miễn là bản phân phối của bạn phù hợp với một trong những cái tích hợp, giống như nếu nó bình thường. Nhưng có một cách dễ dàng để làm điều này với bất kỳ phân phối nhất định, mà không đưa ra giả định đó?

Câu trả lời:


12

Nếu bạn có hàm phân phối tích lũy , thì việc tính giá trị p cho thống kê T đã cho chỉ đơn giản là 1 - F ( T ) . Đây là đơn giản trong R. Nếu bạn có hàm mật độ xác suất trên Mặt khác, sau đó F ( x ) = x - p ( t ) d tFpT1F(T)F(x)=xp(t)dt . Bạn có thể tìm thấy tích phân này hoặc bằng số. Trong R, nó sẽ trông như thế này:

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

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

Bạn có thể điều chỉnh integrate cho chính xác hơn. Điều này tất nhiên có thể thất bại đối với các trường hợp cụ thể, khi tích phân không hoạt động tốt, nhưng nó sẽ hoạt động với phần lớn các hàm mật độ.

Tất nhiên bạn có thể chuyển tham số vào pF, nếu bạn có một vài giá trị tham số để thử và không muốn xác định lại dFmỗi lần.

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

Tất nhiên, bạn cũng có thể sử dụng các phương thức Monte-Carlo như chi tiết bởi @suncoolsu, đây sẽ chỉ là một phương thức số khác để tích hợp.


Tôi nghĩ rằng phương pháp của bạn dễ dàng hơn những gì tôi đề xuất, đặc biệt là nếu không có hạn chế về chức năng mà bạn đang tích hợp. Tôi không nhận thức được công nghệ số. trong R.
suncoolsu

Vâng, tôi nghĩ rằng điều này phù hợp hơn với khả năng hiện tại của tôi. Cảm ơn!
Alan H.

Trên thực tế, tôi không chắc chắn tôi hoàn toàn làm theo cách các chức năng này hoạt động. Các ví dụ cho kết quả cho một phân phối bình thường, nhưng tôi phải cắm hàm mật độ xác suất ở đâu?
Alan H.

(Tôi đã thực hiện các bài kiểm tra và dữ liệu của tôi dường như không bình thường từ xa.)
Alan H.

@Alan H., cắm chức năng mật độ của bạn vào dF. Đó là dFtrả về giá trị hàm mật độ tại đối số đã cho.
mpiktas

9

Có, có thể sử dụng bất kỳ phân phối tùy ý để có giá trị p cho bất kỳ thống kê nào . Về mặt lý thuyết và thực tế, bạn có thể tính giá trị p (một phía) theo công thức này.

pvalue=P[T>Tobserved|H0holds]

Trong đó là thống kê kiểm tra về lợi ích và T o b s e r v e d là giá trị mà bạn đã tính cho dữ liệu được quan sát.TTobserved

TH0T

Giả định duy nhất bạn đang thực hiện ở đây là - bạn biết phân phối null của T (có thể không có trong các định dạng trình tạo số ngẫu nhiên R tiêu chuẩn). Đó là nó - miễn là bạn biết phân phối null, giá trị p có thể được tính.


1
Tôi phải nhận xét - đây là một trong những lý do tại sao giá trị p rất phổ biến và dễ bị hiểu lầm. (IMHO)
suncoolsu

Ok, điều này có ý nghĩa. Tôi có những gì tôi tin là một ước tính tốt về phân phối null. Bất kỳ gợi ý về cách thực hiện điều này trong R? Cảm ơn!
Alan H.

1
@Alan - Bạn có biết cách tạo giá trị ngẫu nhiên từ Phân phối Null của mình không? Nếu có, giả sử - T = c (T1, ..., TN) được rút ra từ phân phối null - p-value = sum (T> T_obs) / N. Nếu bạn không biết cách tạo, có thể bạn cần sử dụng Lấy mẫu từ xa hoặc Lấy mẫu Gibbs để lấy T1 ... TN, nhưng điều đó rất khả thi.
suncoolsu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.