Հակադարձ գամմա բաշխում 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 մոդուլն առաջարկում են բոլոր այն գործիքները, որոնք անհրաժեշտ են հակադարձ գամմա բաշխման հետ հմտորեն վարվելու համար, անկախ նրանից՝ դուք պետք է պատահական թվեր ստեղծեք կամ ուսումնասիրեք բաշխման առանձնահատկությունները: