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ố 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, optionalHì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 scalarCá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
1Peyton 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.
2Wikipedia, Poisson Process, //en.wikipedia.org/wiki/poisson_process
3Wikipedia, Phân phối theo cấp số nhân, //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?
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ã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