Հակադարձ գամմա բաշխում Python-ում
<h2>Ներածություն <p>Հավանականության շարունակական բաշխումը, որը հայտնի է որպես հակադարձ գամմա, ի հայտ է գալիս բազմաթիվ առարկաներում, ինչպիսիք են Բայեսյան վիճակագրությունը, տնտեսագիտությունը և ֆիզիկան: Այն ծառայում է որպես սովորական բաշխման ճշգրտության պարամետրի առաջնային միավոր և հաճախ օգտագործվում է դրական թեքությամբ փոփոխականները ներկայացնելու համար: Հակադարձ գամմա բաշխումը, դրա նկարագրությունը, շարահյուսությունը Python-ում և աշխատանքային կոդով օրինակներ, որոնք ցույց են տալիս, թե ինչպես կարելի է օգտագործել այն, բոլորը ընդգրկված են այս հոդվածում:
Հակադարձ գամմա բաշխում
Սահմանում
Դրական իրական գծի վրա սահմանված հավանականության բաշխումը հակադարձ գամմա բաշխումն է: Ձևը (ալֆա) և մասշտաբը (բետա) այն բնութագրող երկու հատկանիշ են: Հակադարձ գամմա բաշխման հավանականության խտության ֆունկցիան (PDF) տրված է --ով
f(x|alpha, beta) = (betaalpha / math.gamma(alpha)) * x(-alpha-1) * exp(-beta / x)
որտեղ x > 0, ալֆա > 0, բետա > 0, իսկ math.gamma նշանակում է գամմա ֆունկցիա:
Շարահյուսություն
Python-ի scipy.stats մոդուլը, որն առաջարկում է հավանականության բաշխումների մեծ ընտրություն, կարող է օգտագործվել հակադարձ գամմա բաշխման հետ աշխատելու համար։ Հետևյալը շարահյուսությունն է հակադարձ գամմա բաշխման օբյեկտի կառուցման համար
from scipy.stats import invgamma
# Creating an Inverse Gamma distribution object
inverse_gamma_dist = invgamma(alpha, scale=beta)
Դուք կարող եք կրկնօրինակել վերը նշված կոդի հատվածը և փոխել ալֆա և բետա ցանկալի արժեքները հակադարձ գամմա բաշխման ձևի և մասշտաբի պարամետրերի համար: Խնդրում ենք տեղյակ լինել, որ հակադարձ գամմա բաշխման օգտագործումը պահանջում է, որ scipy.stats մոդուլը տեղադրվի ձեր Python միջավայրում:
Շարահյուսության բացատրություն
-
«from scipy.stats import invgamma»: Այս տողը ներմուծում է scipy.stats մոդուլի invgamma դասը:
«inverse_gamma_dist=invgamma(alpha, scale=beta)»: Այս տողում ալֆան ծառայում է որպես ձևի պարամետր, իսկ բետա-ն որպես մասշտաբի պարամետր՝ հակադարձ գամմա բաշխման օրինակ ստեղծելու համար:
Ալգորիթմ
Քայլ 1 - Ներմուծեք անհրաժեշտ գրադարանները
Քայլ 2 - Սահմանեք ձևի և մասշտաբի պարամետրերը
Քայլ 3 - Ստեղծեք հակադարձ գամմա բաշխման օբյեկտ
Քայլ 4 - Ստեղծեք պատահական թվեր հակադարձ գամմա բաշխումից
Քայլ 5 - Գծագրեք հավանականության խտության ֆունկցիան (PDF) և առաջացած թվերի հիստոգրամը
Մոտեցում
Մոտեցում 1 − Պատահական թվերի ստեղծում
Մոտեցում 2 − Հավանականության խտության ֆունկցիա (PDF)
Մոտեցում 1. Պատահական թվերի ստեղծում
Օգտագործելով հակադարձ գամմա բաշխման օբյեկտի rvs մեթոդը, մենք այս տեխնիկայում պատահական թվեր ենք արտադրում Հակադարձ գամմա բաշխումից: Մենք կարող ենք կարգավորել ստեղծված պատահական թվերի քանակը՝ ընտրելով չափի պարամետրը։
Օրինակ
import numpy as np
from scipy.stats import invgamma
# Define the shape and scale parameters
alpha = 3
beta = 2
# Create an Inverse Gamma distribution object
inverse_gamma_dist = invgamma(alpha, scale=beta)
# Generate random numbers from the Inverse Gamma distribution
random_numbers = inverse_gamma_dist.rvs(size=1000)
print(random_numbers)
Արդյունք
[0.50492148 0.99333748 1.75490027 ... 0.65061424 0.70721182 0.78544613]
Մոտեցման 1-ի հիմնական նպատակն է պատահական թվեր արտադրել՝ օգտագործելով հակադարձ գամմա բաշխումը: Հակադարձ գամմա բաշխման օբյեկտի rvs մեթոդը կարող է օգտագործվել՝ անհրաժեշտ թվով պատահական նմուշներ արագ արտադրելու համար: Այս մեթոդում մենք նախ նշում ենք հակադարձ գամմա բաշխման ձևի (ալֆա) և մասշտաբի (բետա) պարամետրերը: Հաջորդիվ մենք օգտագործում ենք invgamma դասը scipy.stats մոդուլից՝ հակադարձ գամմա բաշխման օրինակ ստեղծելու համար: Հակադարձ գամմա բաշխումն օգտագործվում է պատահական թվերի հավաքածու ստեղծելու համար՝ օգտագործելով rvs մեթոդը բաշխման օբյեկտի վրա և ապահովելով պահանջվող չափը: Այս մեթոդով պատահական թվեր կարող են ստեղծվել տվյալների մոդելավորման կամ Մոնտե Կառլոյի սիմուլյացիաներ գործարկելու համար տարբեր նպատակներով: .
Խնդրում ենք նկատի ունենալ, որ քանի որ ստեղծված պատահական թվերը ստեղծվում են պատահականորեն, դրանք կտարբերվեն ամեն անգամ, երբ կոդը գործարկվի:
Մոտեցում 2. հավանականության խտության ֆունկցիա (PDF)
Այս մեթոդում մենք օգտագործում ենք հակադարձ գամմա բաշխման օբյեկտի pdf մեթոդը՝ բաշխման հավանականության խտության ֆունկցիան (PDF) պատկերացնելու համար։ Սա մեզ հնարավորություն է տալիս տեսնել բաշխման ձևը և հասկանալ դրա հատկությունները:
Օրինակ
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import invgamma
# Define the shape and scale parameters
alpha = 2.5
beta = 1.2
# Create an Inverse Gamma distribution object
inverse_gamma_dist = invgamma(alpha, scale=beta)
# Generate an array of x values
x = np.linspace(0.001, 10, 100)
# Calculate the PDF values for the x values
pdf_values = inverse_gamma_dist.pdf(x)
# Plot the PDF of the Inverse Gamma distribution
plt.plot(x, pdf_values, 'r-', label='PDF')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.title('PDF of Inverse Gamma Distribution')
plt.legend()
plt.show()
Արդյունք
np.linspace ֆունկցիան, որն արտադրում է 100 հավասարաչափ արժեքներ 0,001-ի և 10-ի միջև, օգտագործվում է այս մեթոդում՝ նախ x արժեքների զանգված կառուցելու համար: Այն միջակայքը, որի վրա մենք ցանկանում ենք գնահատել PDF-ը, ներկայացված է այս x արժեքներով: Հավանականության խտության ֆունկցիայի (PDF) արժեքները ստացված x արժեքների համար այնուհետև հաշվարկվում են հակադարձ գամմա բաշխման օբյեկտի pdf մեթոդով: Արդյունքում մեզ տրվում է PDF արժեքների զանգված յուրաքանչյուր x արժեքի համար:
Ի վերջո, մենք օգտագործում ենք matplotlib.pyplot մոդուլի plt.plot մեթոդը՝ հակադարձ գամմա բաշխման PDF-ը գծագրելու համար: X արժեքներով x առանցքի վրա և PDF արժեքները y առանցքի վրա, ստացված գծապատկերը պատկերում է բաշխման ձևը: Մենք կարող ենք տեսնել կարևոր մանրամասներ, ինչպիսիք են բաշխման դիրքը, տարածումը և թեքությունը՝ պատկերացնելով PDF-ը: Հակադարձ գամմա բաշխումը և դրա վարքագիծը ավելի լավ են ընկալվում այս մեթոդով:
Խնդրում ենք նկատի ունենալ, որ գեներացված սյուժեն կցուցադրվի առանձին պատուհանում, երբ գործարկեք կոդը:
Եզրակացություն
Հավանականության ճկուն բաշխում, հակադարձ գամմա բաշխումն օգտագործվում է մի շարք տարբեր ոլորտներում: Մենք քննարկեցինք դրա նկարագրությունը, Python-ի շարահյուսությունը և աշխատանքային կոդով օրինակներ՝ ցույց տալու համար, թե ինչպես օգտագործել այն այս հոդվածում: Դուք կարող եք օգտագործել հակադարձ գամմա բաշխումը Python-ում տվյալները մոդելավորելու և վերլուծելու համար՝ հասկանալով հիմունքները և օգտագործելով scipy.stats մոդուլը: Հակադարձ գամմա բաշխման համար կան մի քանի հավելվածներ, ներառյալ Բայեսյան վերլուծությունը, ֆինանսները և ֆիզիկան: Դրական թեքությամբ փոփոխականների մոդելավորման համար այն առաջարկում է բազմակողմանի և արդյունավետ տեխնիկա: Օգտվելով այս հոդվածում ներկայացված գաղափարներից և նկարազարդումներից՝ դուք կարող եք ապահով կերպով ավելացնել հակադարձ գամմա բաշխումը ձեր Python տվյալների վերլուծության նախագծերում:
Python-ը և scipy.stats մոդուլն առաջարկում են բոլոր այն գործիքները, որոնք անհրաժեշտ են հակադարձ գամմա բաշխման հետ հմտորեն վարվելու համար, անկախ նրանից՝ դուք պետք է պատահական թվեր ստեղծեք կամ ուսումնասիրեք բաշխման առանձնահատկությունները: