Hướng dẫn how do you generate random numbers with an exponential distribution in python? - làm thế nào để bạn tạo các số ngẫu nhiên với phân phối theo cấp số nhân trong python?

Random.Exentential (tỷ lệ = 1.0, size = none)#exponential(scale=1.0, size=None)#

Vẽ các mẫu từ phân phối theo cấp số nhân.

Hàm mật độ xác suất của nó là

\ [f (x; \ frac {1} {\ beta}) = \ frac {1} {\ beta} \ exp (-\ frac {x} {\ beta}), \]

cho x > 0 và 0 ở nơi khác. \ (\ beta \) là tham số tỷ lệ, là nghịch đảo của tham số tốc độ \ (\ lambda = 1/\ beta \). Tham số tốc độ là một tham số thay thế, được sử dụng rộng rãi của phân phối theo cấp số nhân [3].\(\beta\) is the scale parameter, which is the inverse of the rate parameter \(\lambda = 1/\beta\). The rate parameter is an alternative, widely used parameterization of the exponential distribution [3].

Phân phối theo cấp số nhân là một sự tương tự liên tục của phân phối hình học. Nó mô tả nhiều tình huống phổ biến, chẳng hạn như kích thước của các hạt mưa được đo trên nhiều cơn mưa [1] hoặc thời gian giữa các yêu cầu trang đến Wikipedia [2].

Ghi chú

Mã mới nên sử dụng phương thức exponential của một thể hiện default_rng() thay thế; Vui lòng xem bắt đầu nhanh chóng.Quick Start.

Tham sốScalefloat hoặc Array_like of Floatsscalefloat or array_like of floats

Tham số tỷ lệ, \ (\ beta = 1/\ lambda \). Phải không âm.\(\beta = 1/\lambda\). Must be non-negative.

kích thước hoặc tuple của int, tùy chọnint or tuple of ints, optional

Hình dạng đầu ra. Nếu hình dạng đã cho là, ví dụ, (m, n, k), thì các mẫu m * n * k được rút ra. Nếu kích thước là None (mặc định), một giá trị duy nhất được trả về nếu scale là vô hướng. Nếu không, các mẫu

from math import exp
from scipy.optimize import curve_fit
import numpy as np

def model(x, p):
    return p*np.exp(-p*x)

x = list(range(9))
Y = [0.22219001972988275, 0.15537454187341937, 0.15864069451825827, 0.056411162886672819, 0.037398831058143338, 0.10278251869912845, 0.03984605649260467, 0.0035360087611421981, 0.075855255999424692]

popt, pcov = curve_fit(model, x, Y)
print (popt[0])
print (pcov)
0 được rút ra.

ReturnSoutNDarray hoặc vô hướngoutndarray or scalar

Các mẫu rút ra từ phân phối theo cấp số nhân được tham số hóa.

Người giới thiệu

1

Peyton Z. Peebles Jr., Xác suất, biến ngẫu nhiên và nguyên tắc tín hiệu ngẫu nhiên, Ed, 4th, 2001, tr. 57.

2

Wikipedia, Poisson Process, https://en.wikipedia.org/wiki/poisson_process

3

Wikipedia, Phân phối theo cấp số nhân, https://en.wikipedia.org/wiki/Exponential_distribution

Hàm được sử dụng để tạo ra các mẫu ngẫu nhiên từ phân phối theo cấp số nhân là gì?regression problem, which is what Praveen was suggesting.

Hàm mật độ xác suất (PDF) có thể rất hữu ích trong việc phân tích các bộ dữ liệu.

import matplotlib.pyplot as plt
from math import exp
from scipy.stats import norm


x = range(0, 16)
Y = [0.27*exp(-0.27*_) for _ in x]
error = norm.rvs(0, scale=0.05, size=9)
simulated_data = [max(0, y+e) for (y,e) in zip(Y[:9],error)]

plt.plot(x, Y, 'b-')
plt.plot(x[:9], simulated_data, 'r.')
plt.show()

print (x[:9])
print (simulated_data)

Phân phối theo cấp số nhân có phải là một biến ngẫu nhiên không?

Hướng dẫn how do you generate random numbers with an exponential distribution in python? - làm thế nào để bạn tạo các số ngẫu nhiên với phân phối theo cấp số nhân trong python?

Một biến ngẫu nhiên có phân phối theo cấp số nhân cũng được gọi là biến ngẫu nhiên theo cấp số nhân. là một hàm mật độ xác suất hợp pháp. Để hiểu rõ hơn về phân phối theo cấp số nhân, bạn có thể xem xét các ô mật độ của nó.

from math import exp
from scipy.optimize import curve_fit
import numpy as np

def model(x, p):
    return p*np.exp(-p*x)

x = list(range(9))
Y = [0.22219001972988275, 0.15537454187341937, 0.15864069451825827, 0.056411162886672819, 0.037398831058143338, 0.10278251869912845, 0.03984605649260467, 0.0035360087611421981, 0.075855255999424692]

popt, pcov = curve_fit(model, x, Y)
print (popt[0])
print (pcov)

Tôi nghĩ rằng bạn thực sự đang hỏi về một vấn đề hồi quy, đó là những gì Praveen đã gợi ý.

Bạn có một sự phân rã theo cấp số nhân tiêu chuẩn BOG đến trục y ở khoảng Y = 0,27. Do đó, phương trình của nó là

from math import exp
from scipy.optimize import curve_fit
import numpy as np

def model(x, p):
    return p*np.exp(-p*x)

x = list(range(9))
Y = [0.22219001972988275, 0.15537454187341937, 0.15864069451825827, 0.056411162886672819, 0.037398831058143338, 0.10278251869912845, 0.03984605649260467, 0.0035360087611421981, 0.075855255999424692]

popt, pcov = curve_fit(model, x, Y)
print (popt[0])
print (pcov)
1. Tôi có thể mô hình hóa lỗi Gaussian xung quanh các giá trị của hàm này và vẽ kết quả bằng cách sử dụng mã sau.

residuals = [y-model(_, popt[0]) for (y, _) in zip(Y, x)]
print (residuals)

Nếu bạn muốn tiếp tục kiểm tra rằng chức năng của tôi thực sự đang đi qua các điểm dữ liệu 'thì tôi sẽ đề nghị tìm kiếm các mẫu trong phần dư. Nhưng các cuộc thảo luận như thế này có thể vượt ra ngoài những gì được hoan nghênh trên các lô Stackoverflow: Q-Q và P-P, các lô của phần dư so với

from math import exp
from scipy.optimize import curve_fit
import numpy as np

def model(x, p):
    return p*np.exp(-p*x)

x = list(range(9))
Y = [0.22219001972988275, 0.15537454187341937, 0.15864069451825827, 0.056411162886672819, 0.037398831058143338, 0.10278251869912845, 0.03984605649260467, 0.0035360087611421981, 0.075855255999424692]

popt, pcov = curve_fit(model, x, Y)
print (popt[0])
print (pcov)
6 hoặc
from math import exp
from scipy.optimize import curve_fit
import numpy as np

def model(x, p):
    return p*np.exp(-p*x)

x = list(range(9))
Y = [0.22219001972988275, 0.15537454187341937, 0.15864069451825827, 0.056411162886672819, 0.037398831058143338, 0.10278251869912845, 0.03984605649260467, 0.0035360087611421981, 0.075855255999424692]

popt, pcov = curve_fit(model, x, Y)
print (popt[0])
print (pcov)
5, v.v.


Phân phối theo cấp số nhân

Phân phối theo cấp số nhân được sử dụng để mô tả thời gian cho đến sự kiện tiếp theo, ví dụ: thất bại/thành công, v.v.

Nó có hai tham số:

from math import exp
from scipy.optimize import curve_fit
import numpy as np

def model(x, p):
    return p*np.exp(-p*x)

x = list(range(9))
Y = [0.22219001972988275, 0.15537454187341937, 0.15864069451825827, 0.056411162886672819, 0.037398831058143338, 0.10278251869912845, 0.03984605649260467, 0.0035360087611421981, 0.075855255999424692]

popt, pcov = curve_fit(model, x, Y)
print (popt[0])
print (pcov)
8 - nghịch đảo của tỷ lệ (xem LAM trong phân phối Poisson) mặc định là 1.0.

from math import exp
from scipy.optimize import curve_fit
import numpy as np

def model(x, p):
    return p*np.exp(-p*x)

x = list(range(9))
Y = [0.22219001972988275, 0.15537454187341937, 0.15864069451825827, 0.056411162886672819, 0.037398831058143338, 0.10278251869912845, 0.03984605649260467, 0.0035360087611421981, 0.075855255999424692]

popt, pcov = curve_fit(model, x, Y)
print (popt[0])
print (pcov)
9 - Hình dạng của mảng trả về.

Thí dụ

Vẽ ra một mẫu để phân phối theo cấp số nhân với tỷ lệ 2.0 với kích thước 2x3:

từ nhập khẩu ngẫu nhiên

x = Random.exential (tỷ lệ = 2, kích thước = (2, 3))

print(x)

Hãy tự mình thử »


Trực quan hóa phân phối theo cấp số nhân

Thí dụ

Vẽ ra một mẫu để phân phối theo cấp số nhân với tỷ lệ 2.0 với kích thước 2x3:
import matplotlib.pyplot as plt
import seaborn as sns

từ nhập khẩu ngẫu nhiên

plt.show()

x = Random.exential (tỷ lệ = 2, kích thước = (2, 3))

Hướng dẫn how do you generate random numbers with an exponential distribution in python? - làm thế nào để bạn tạo các số ngẫu nhiên với phân phối theo cấp số nhân trong python?

Hãy tự mình thử »


Trực quan hóa phân phối theo cấp số nhân

từ nhập khẩu Numpy Randomimport matplotlib.pyplot với tư cách là pltimport seeborn như SNS



Làm thế nào để bạn tạo ra một số ngẫu nhiên từ phân phối theo cấp số nhân?

Các bước liên quan như sau ...
Tính toán CDF của biến ngẫu nhiên mong muốn. Đối với phân phối theo cấp số nhân, CDF là ..
Đặt r = f (x) trên phạm vi của. ....
Giải phương trình f (x) = r cho. ....
Tạo (khi cần) số ngẫu nhiên đồng nhất và tính toán các biến thể ngẫu nhiên mong muốn bằng cách ..

Làm thế nào để bạn tạo một dữ liệu theo cấp số nhân trong Python?

Bạn có thể sử dụng hàm expon.rvs (tỷ lệ, kích thước) từ thư viện SCIPY trong Python để tạo các giá trị ngẫu nhiên từ phân phối theo cấp số nhân với tham số tốc độ cụ thể và kích thước mẫu: Đây là gì? Lưu ý: Bạn có thể tìm thấy tài liệu đầy đủ cho thư viện SCIPY tại đây.use the expon. rvs(scale, size) function from the SciPy library in Python to generate random values from an exponential distribution with a specific rate parameter and sample size: What is this? Note: You can find the complete documentation for the SciPy library here.

Hàm được sử dụng để tạo ra các mẫu ngẫu nhiên từ phân phối theo cấp số nhân là gì?

Hàm mật độ xác suất (PDF) có thể rất hữu ích trong việc phân tích các bộ dữ liệu.probability density function (pdf) can be very helpful in analyzing data sets.

Phân phối theo cấp số nhân có phải là một biến ngẫu nhiên không?

Một biến ngẫu nhiên có phân phối theo cấp số nhân cũng được gọi là biến ngẫu nhiên theo cấp số nhân.là một hàm mật độ xác suất hợp pháp.Để hiểu rõ hơn về phân phối theo cấp số nhân, bạn có thể xem xét các ô mật độ của nó.. is a legitimate probability density function. To better understand the exponential distribution, you can have a look at its density plots.