Tích hợp CDF theo kinh nghiệm


13

Tôi có một phân phối theo kinh nghiệm G(x) . Tôi tính toán như sau

    x <- seq(0, 1000, 0.1)
    g <- ecdf(var1)
    G <- g(x)

Tôi ký hiệu h(x)=dG/dx , tức là h là pdf trong khi G là cdf.

Bây giờ tôi muốn giải một phương trình cho giới hạn trên của tích hợp (giả sử a ), sao cho giá trị mong đợi của x là một số k .

Nghĩa là, tích hợp từ đến b , tôi nên có x h ( x ) d x = k . Tôi muốn giải quyết cho b .0bxh(x)dx=kb

Tích hợp bởi các phần, tôi có thể viết lại phương trình như

, nơi không thể thiếu là từ 0 đến b ------- (1)bG(b)0bG(x)dx=k0b

Tôi nghĩ rằng tôi có thể tính tích phân như sau

    intgrl <- function(b) {
        z <- seq(0, b, 0.01)
        G <- g(z)
        return(mean(G))
     }

Nhưng khi tôi cố gắng sử dụng chức năng này với

    library(rootSolve)
    root <- uniroot.All(fun, c(0, 1000))

trong đó vui là eq (1), tôi gặp lỗi sau

    Error in seq.default(0, b, by = 0.01) : 'to' must be of length 1  

Tôi nghĩ vấn đề là chức năng của tôi intgrlđược đánh giá ở một giá trị số, trong khi uniroot.Allđang vượt qua khoảngc(0,1000)

Làm thế nào tôi nên giải quyết cho trong tình huống này trong R?b

Câu trả lời:


13

Hãy để các dữ liệu được sắp xếp có . Để hiểu được những kinh nghiệm CDF G , hãy xem xét một trong các giá trị của x i --let của cuộc gọi nó g --và phải giả sử rằng một số số k của x i là ít hơn γt 1 của x i là tương đương với γ . Chọn một khoảng thời gian [ α , β ] trong đó, tất cả các giá trị dữ liệu có thể, chỉ γx1x2xnGxiγkxiγt1xiγ[α,β]γxuất hiện. Sau đó, theo định nghĩa, trong khoảng thời gian này có giá trị không đổi k / n cho số ít hơn γ và nhảy đến giá trị không đổi ( k + t ) / n cho số lớn hơn γ .Gk/nγ(k+t)/nγ

ECDF

Xem xét sự đóng góp cho từ khoảng [ α , β ] . Mặc dù h không phải là một chức năng - đó là một điểm đo kích thước t / n tại γ --Thư không thể thiếu được định nghĩa bằng phương pháp lồng ghép bằng các bộ phận để chuyển đổi nó thành một thiếu trung thực-to-tốt lành. Chúng ta hãy làm điều này trong khoảng [ α , β ] :0bxh(x)dx[α,β]ht/nγ[α,β]

αβxh(x)dx=(xG(x))|αβαβG(x)dx=(βG(β)αG(α))αβG(x)dx.

Integrand mới, mặc dù nó là không liên tục tại , là khả tích. Giá trị của nó có thể dễ dàng tìm thấy bằng cách phá vỡ miền tích hợp vào các phần trước và sau bước nhảy trong G :γG

αβG(x)dx=αγG(α)dx+γβG(β)dx=(γα)G(α)+(βγ)G(β).

Thay thế điều này vào những điều đã nói ở trên và thu hồi mang lạiG(α)=k/n,G(β)=(k+t)/n

αβxh(x)dx=(βG(β)αG(α))((γα)G(α)+(βγ)G(β))=γtn.

Nói cách khác, tích phân này nhân vị trí (dọc theo trục ) của mỗi lần nhảy theo kích thước của bước nhảy đó. Kích thước của bước nhảy làX

tn=1n++1n

với một thuật ngữ cho mỗi giá trị dữ liệu bằng . Thêm các đóng góp từ tất cả các bước nhảy như vậy của G cho thấy rằngγG

0bxh(x)dx=i:0xib(xi1n)=1nxibxi.

Chúng ta có thể gọi đây là "trung bình một phần", khi thấy rằng nó bằng lần một phần tổng. (Xin lưu ý rằng đó không phải là một kỳ vọng. Nó có thể liên quan đến kỳ vọng về một phiên bản phân phối cơ bản đã bị cắt ngắn trong khoảng [ 0 , b ] : bạn phải thay thế hệ số 1 / n bằng 1 / m trong đó m là số lượng giá trị dữ liệu trong [ 0 , b ] .)1/n[0,b]1/n1/mm[0,b]

Cho , bạn muốn tìm b trong đó 1kbBởi vì tổng một phần là một tập hợp các giá trị hữu hạn, thường không có giải pháp: bạn sẽ cần giải quyết xấp xỉ tốt nhất, có thể tìm thấy bằng cách đặt dấu ngoặckgiữa hai phương tiện một phần, nếu có thể. Đó là, khi tìm thấyjnhư vậy1nxibxi=k.kj

1ni=1j1xik<1ni=1jxi,

bạn sẽ thu hẹp vào khoảng [ x j - 1 , x j ) . Bạn không thể làm tốt hơn thế bằng cách sử dụng ECDF. (Bằng cách khớp một số phân phối liên tục vào ECDF, bạn có thể nội suy để tìm giá trị chính xác của b , nhưng độ chính xác của nó sẽ phụ thuộc vào độ chính xác của độ phù hợp.)b[xj1,xj)b


Rthực hiện phép tính tổng một phần với cumsumvà tìm nơi nó vượt qua bất kỳ giá trị được chỉ định nào bằng cách sử dụng whichhọ tìm kiếm, như trong:

set.seed(17)
k <- 0.1
var1 <- round(rgamma(10, 1), 2)
x <- sort(var1)
x.partial <- cumsum(x) / length(x)
i <- which.max(x.partial > k)
cat("Upper limit lies between", x[i-1], "and", x[i])

Đầu ra trong ví dụ này về dữ liệu được rút ra từ phân phối mũ là

Giới hạn trên nằm trong khoảng từ 0,39 đến 0,57

0.1=0bxexp(x)dx,0.531812

G

Figure of ECDF


Đây là một câu trả lời rất rõ ràng và hữu ích, vì vậy cảm ơn bạn!
dùng46768
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.