Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python

Tôi đã cố gắng mô phỏng NHPP trong Python. Hàm hoạt động nhưng các số mô phỏng không theo NHPP.

Mã là:

def nhpp(parametros,T,N):
    numeros=list()
    # the function of rate  λ(t) is a power law model, that is λ(t) = λ β 𝑡**(𝛽−1) ,𝑡, 𝜆, 𝛽>0.
     
    funçao =lambda x:parametros[1] * parametros[0] * x ** (parametros[0] - 1)
  #calculate the maximum of the function in the interval (0,T)
    res=integrate.quad(funçao,0,T)
   # l represents the λ
    l=res[0]
    t=0
    cont=0
    contagem =list()
    listafinal=list()
    for i in range (1,N+1):
        u = numpy.random.uniform(0, 1)
      #t represents the exponential times generated
        t = t - (ln(u) / l)
       #fun represents the values of λ(t) for the t1,t2,t3...tN
        fun=parametros[1] * parametros[0] * t ** (parametros[0] - 1)
    # if u<λ(t)/λ we acept the time 
        if u<=fun/l:
            numeros.append(t)
     #cont represents the number of times (N(T)) that were acepted as NHPP
            cont = cont + 1
            contagem.append(cont)
    listafinal.append(numeros)
    listafinal.append(contagem)
    print(listafinal)
    return listafinal

x=nhpp([0.5,0.35],500,20000)

Đầu ra của chức năng này là: [[6.637092201160706, 12.739051189013342, 22.89616658744735, 161.12015416135688, 386.6019409119157, 424.7928356177192, 428.48931184149734, 733.1527508780554, 886.1376014091232, 1073.653026573429, 1133.4535462717483, 1787.4258499386765, 2077.7766357676205], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]]

Nếu tôi thực hiện đồ họa của các điểm, thời gian giữa các lần xuất hiện không giảm nhưng chúng nên vì, khi B (tham số của mô hình luật công suất) là <1 (trong trường hợp này là b = 0,5), thời gian giữa các lần xuất hiện giảm . Bất cứ ai cũng có thể giúp mô phỏng NHPP trong Python một cách chính xác?

LƯU Ý: Trong quy trình luật điện: Trường hợp B1 lần liên tục tăng.

Tôi muốn tạo ra đôi khi như thế này:

Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python

Trong hình ảnh, đường màu đen biểu thị B = 0,5, đường màu xanh B = 1 và đường màu đỏ B = 1,5.

Cài đặt: pip install nhpp

PURPOSE:

Gói này là một mô-đun độc lập để tạo ra các quy trình Poisson không đồng nhất (NHPP). Các quy trình poisson đồng nhất có thể dễ dàng tạo ra bằng cách chỉ định tỷ lệ đến, lambda, sau đó tạo các mẫu từ X ~ exp (1 / lambda). Các mẫu này cho biết thời gian giữa các sự kiện hoặc độ trễ giữa các sự kiện.

Trường hợp trên chỉ đúng khi Lambda là một hằng số. Tổng quát hóa trường hợp của Lambda (T), tỷ lệ đến phụ thuộc vào thời gian, khó khăn hơn nhiều. Một vài cách tiếp cận chính tồn tại để giải quyết vấn đề này:

(1) relate the INTEGRATED rate function LAMBDA(t) to a homogeneous Poisson process via an inversion function,
(2) use a "thinning" method which acts as an acceptance-rejection sampling routine.

Phương thức NHPP.GET_ARRIVALS có thể được sử dụng theo hai cách khác nhau. Phương thức đầu tiên cho phép người dùng chỉ định hàm tuyến tính piecewise bằng cách truyền từ điển chỉ định 'nút thắt' của hàm. Xem ví dụ sử dụng dưới đây.

Ngoài ra, nếu hàm tốc độ đến thực sự (t) được biết đến, người ta có thể xác định một hàm sau đó được truyền như một đối số. Trong trường hợp này, 'nút thắt' phải được truyền dưới dạng đối số phải chỉ định hàm tuyến tính từng phần chi phối hàm tốc độ thực ở mọi nơi trong miền: Lambda (T)

Ví dụ sử dụng với chức năng tuyến tính Piecewise

# Specify the piecewise linear arrival rate via knots.
# Below we specify arrival_rate = 1 at time = 0, arrival_rate = 2 at time = 5,
# arrival_rate = 1 at time = 2.5 (linearity between time = 0 and time = 5), etc.

>>> knots = {0: 1, 5: 2, 12: 0.3, 15: 0.3, 16: 0, 18: 0, 20: 2}

>>> arrs = nhpp.get_arrivals(knots)

# Print out arrival times.
>>> for arr in arrs:
		print(round(arr, 2))

0.08
1.1
1.14
2.35
2.41
2.45
2.91
3.67
4.41
4.65
4.7
6.78
7.13
7.18
8.12
10.15
18.33
19.21
19.53
19.54

Ví dụ sử dụng cho chức năng đến đã biết

# Define a quadratic rate function.
def rate(t):
	return t*(5-t)

# Specify a piecewise linear function that dominates rate(t):
knots = {0: 0, 1: 6.25, 2.5: 6.25, 4: 6.25, 5: 0}

arrivals = get_arrivals(knots, rate)

for arr in arrivals:
	print(round(arr, 2))

0.59
0.73
0.74
0.89
1.02
1.11
1.39
1.6
1.61
1.7
2.1
2.17
2.18
2.7
3.04
3.24
3.47
3.57
3.6
3.61

Bước tiếp theo

Tiến trình trong tương lai trên gói này sẽ bao gồm một phương tiện để chỉ xác định chức năng tốc độ mà không phải bao gồm 'nút thắt'.

Mô hình quy trình poisson không đồng nhất (NHPP) đại diện cho số lượng thất bại đã trải qua theo thời gian t là một quá trình poisson không đồng nhất {n (t), t ≥ 0}.NHPP) represents the number of failures experienced up to time t is a non-homogeneous Poisson process {N(t), t ≥ 0}.

Vấn đề chính trong mô hình NHPP là xác định hàm giá trị trung bình thích hợp để biểu thị số lượng lỗi dự kiến ​​đã trải qua đến một thời điểm nhất định. Với các giả định khác nhau, mô hình sẽ kết thúc với các dạng chức năng khác nhau của hàm giá trị trung bình. Lưu ý rằng trong một quy trình gia hạn, giả định theo cấp số nhân cho thời gian giữa các lần giữa các thất bại được thư giãn và trong NHPP, giả định đứng yên được nới lỏng.
With different assumptions, the model will end up with different functional forms of the mean value function. Note that in a renewal process, the exponential assumption for the inter-arrival time between failures is relaxed, and in the NHPP, the stationary assumption is relaxed.

Mô hình quy trình Poisson không đồng nhất dựa trên các giả định sau:

-> Quá trình thất bại có mức tăng độc lập, tức là số lượng thất bại trong khoảng thời gian (t, t + s) phụ thuộc vào thời gian hiện tại t và thời gian của khoảng thời gian s và không phụ thuộc vào lịch sử trong quá khứ của quá trình.The failure process has an independent increment, i.e. the number of failures during the time interval (t, t + s) depends on the current time t and the length of time interval s, and does not depend on the past history of the process.

-> Tốc độ thất bại của quá trình được đưa ra bởi p {chính xác một lỗi trong (t, t + t)} = p {n (t, t + t) - n (t) = 1} = (t) ∆T + O (∆T) trong đó (t) là hàm cường độ. The failure rate of the process is given by P{exactly one failure in (t, t + ∆t)} = P{N(t, t + ∆t) – N(t)=1} =

Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python
(t)∆t + o(∆t) where
Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python
(t) is the intensity function.

-> Trong một khoảng nhỏ ∆T, xác suất của nhiều hơn một lỗi là không đáng kể, nghĩa là p {hai hoặc nhiều thất bại trong (t, t+t)} = o (∆t) During a small interval ∆t, the probability of more than one failure is negligible, that is, P{two or more failure in (t, t+∆t)} = o(∆t)

-> Điều kiện ban đầu là n (0) = 0. The initial condition is N(0) = 0.

Trên cơ sở các giả định này, xác suất chính xác n thất bại xảy ra trong khoảng thời gian (0, t) đối với NHPP được đưa ra bởi

Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python

ở đâu và là chức năng cường độ. Có thể dễ dàng chỉ ra rằng hàm giá trị trung bình M (t) không giảm.

Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python
and
Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python
is the intensity function. It can be easily shown that the mean value function m(t) is non-decreasing.

Hàm độ tin cậy: Độ tin cậy r (t), được định nghĩa là xác suất không có thất bại trong khoảng thời gian (0, t), được đưa ra bởi
The reliability R(t), defined as the probability that there are no failures in the time interval (0, t), is given by

Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python

Nói chung, độ tin cậy r (x | t), xác suất không có thất bại trong khoảng (t, t + x), được đưa ra bởi

Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python

và mật độ của nó được đưa ra bởi nơi

Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python

where
Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python

Phương sai của NHPP có thể thu được như sau:

Hướng dẫn non homogeneous poisson process python - quá trình poisson không đồng nhất python

Quá trình poisson không đồng nhất là gì?

Một quá trình poisson không đồng nhất là một quá trình Poisson với tỷ lệ thay đổi theo thời gian.Nó có thể được sử dụng để mô hình hóa thời gian đến của khách hàng tại một cửa hàng, sự kiện giao thông và các vị trí thiệt hại dọc theo một con đường.Hàm mật độ xác suất của quá trình tại bất kỳ lúc nào t là Poisson phân phối.a Poisson process with a time-varying rate. It can be used to model the arrival times of customers at a store, events of traffic, and positions of damage along a road. The probability density function of the process at any time slice t is Poisson distributed.

Quá trình Poisson trong quá trình ngẫu nhiên là gì?

Một quy trình Poisson là một quy trình ngẫu nhiên đơn giản và được sử dụng rộng rãi để mô hình hóa các thời gian mà đến khi đến một hệ thống.Theo nhiều cách, phiên bản thời gian liên tục của quy trình Bernoulli được mô tả trong Phần 1.3.5.a simple and widely used stochastic process for modeling the times at which arrivals enter a system. It is in many ways the continuous-time version of the Bernoulli process that was described in Section 1.3. 5.

Các tính chất của quá trình Poisson là gì?

Các sự kiện tiêu chí quy trình Poisson độc lập với nhau.Sự xuất hiện của một sự kiện không ảnh hưởng đến xác suất một sự kiện khác sẽ xảy ra.Tỷ lệ trung bình (sự kiện mỗi khoảng thời gian) là không đổi.Hai sự kiện không thể xảy ra cùng một lúc.Events are independent of each other. The occurrence of one event does not affect the probability another event will occur. The average rate (events per time period) is constant. Two events cannot occur at the same time.