22.6 Atsitiktiniai dydžiai
2.6 skyrelis matėme pagrindus, kaip dirbti su diskrečiaisiais atsitiktiniais dydžiais, kurie mūsų atveju yra tie atsitiktiniai dydžiai, kurie įgyja arba baigtinę galimų reikšmių aibę, arba sveikuosius skaičius. Šiame skyriuje išplėtosime tolydžiųjų atsitiktinių dydžių teoriją – tai atsitiktiniai dydžiai, kurie gali įgyti bet kurią realiąją reikšmę.
22.6.1 Tolydieji atsitiktiniai dydžiai
Tolydieji atsitiktiniai dydžiai yra gerokai subtilesnė tema nei diskretieji. Teisinga analogija būtų, kad techninis šuolis yra panašus į šuolį tarp skaičių sąrašų sudėjimo ir funkcijų integravimo. Todėl teks skirti šiek tiek laiko teorijai išplėtoti.
22.6.1.1 Nuo diskrečiųjų prie tolydžiųjų
Kad suprastume papildomus techninius iššūkius dirbant su tolydžiaisiais atsitiktiniais dydžiais, atlikime minties eksperimentą. Tarkime, metame smiginio strėlytę į taikinį ir norime sužinoti tikimybę, kad ji pataikys tiksliai nuo taikinio centro.
Pradžiai įsivaizduokime, kad matuojame vieno skaitmens tikslumu, t. y. su intervalais , , ir t. t. Metame, tarkime, strėlyčių į taikinį, ir jei iš jų patenka į intervalą, darome išvadą, kad mūsų metamų strėlyčių pataiko į taikinį nuo centro.
Tačiau įdėmiau pažvelgę matome, kad tai neatitinka mūsų klausimo! Norėjome tikslios lygybės, o šiuose intervaluose yra viskas, kas pateko, tarkime, tarp ir .
Nenusiminę tęsiame toliau. Matuojame dar tiksliau, tarkime, , , , ir dabar matome, kad gal iš strėlyčių pataikė į intervalą. Taigi darome išvadą, kad tikimybė yra .
Tačiau tai nieko neišsprendžia! Problemą tiesiog nustūmėme vienu skaitmeniu toliau. Šiek tiek abstrahuokime. Įsivaizduokime, kad žinome tikimybę, jog pirmieji skaitmenų sutampa su , ir norime žinoti tikimybę, kad sutaps pirmieji skaitmenų. Gana pagrįsta daryti prielaidą, kad -asis skaitmuo iš esmės yra atsitiktinis pasirinkimas iš aibės . Bent jau negalime įsivaizduoti fiziškai prasmingo proceso, dėl kurio mikrometrų skaičius nuo centro labiau linktų baigtis , o ne .
Tai reiškia, kad iš esmės kiekvienas papildomas reikalaujamo tikslumo skaitmuo turėtų sumažinti sutapimo tikimybę kartų. Arba kitaip tariant, tikėtumėmės, kad
Reikšmė iš esmės užkoduoja, kas vyksta su pirmaisiais keliais skaitmenimis, o tvarko likusią dalį.
Atkreipkite dėmesį, kad jei žinome padėtį skaitmenų po kablelio tikslumu, tai reiškia, kad žinome, jog reikšmė patenka į intervalą, tarkime, , kurio ilgis yra . Taigi, jei šio intervalo ilgį pavadinsime , galime sakyti
Žengkime dar paskutinį žingsnį. Visą laiką galvojome apie tašką , bet niekada negalvojome apie kitus taškus. Iš esmės ten nieko nesiskiria, bet reikšmė greičiausiai bus kitokia. Bent jau tikėtumėmės, kad strėlyčių metikas labiau tikėtinai pataikys į tašką netoli centro, pavyzdžiui, , o ne . Taigi reikšmė nėra fiksuota, o turėtų priklausyti nuo taško . Tai mums sako, kad turėtume tikėtis
Iš tiesų (22.6.1) tiksliai apibrėžia tikimybės tankio funkciją. Tai funkcija , užkoduojanti santykinę tikimybę pataikyti arti vieno taško, palyginti su kitu. Pavaizduokime, kaip tokia funkcija gali atrodyti.
%matplotlib inline
from d2l import mxnet as d2l
from IPython import display
from mxnet import np, npx
npx.set_np()
# Plot the probability density function for some random variable
x = np.arange(-5, 5, 0.01)
p = 0.2*np.exp(-(x - 3)**2 / 2)/np.sqrt(2 * np.pi) + \
0.8*np.exp(-(x + 1)**2 / 2)/np.sqrt(2 * np.pi)
d2l.plot(x, p, 'x', 'Density')
%matplotlib inline
from d2l import torch as d2l
from IPython import display
import torch
torch.pi = torch.acos(torch.zeros(1)).item() * 2 # Define pi in torch
# Plot the probability density function for some random variable
x = torch.arange(-5, 5, 0.01)
p = 0.2*torch.exp(-(x - 3)**2 / 2)/torch.sqrt(2 * torch.tensor(torch.pi)) + \
0.8*torch.exp(-(x + 1)**2 / 2)/torch.sqrt(2 * torch.tensor(torch.pi))
d2l.plot(x, p, 'x', 'Density')
%matplotlib inline
from d2l import tensorflow as d2l
from IPython import display
import tensorflow as tf
tf.pi = tf.acos(tf.zeros(1)).numpy() * 2 # Define pi in TensorFlow
# Plot the probability density function for some random variable
x = tf.range(-5, 5, 0.01)
p = 0.2*tf.exp(-(x - 3)**2 / 2)/tf.sqrt(2 * tf.constant(tf.pi)) + \
0.8*tf.exp(-(x + 1)**2 / 2)/tf.sqrt(2 * tf.constant(tf.pi))
d2l.plot(x, p, 'x', 'Density')
Vietos, kuriose funkcijos reikšmė didelė, rodo sritis, kuriose labiau tikėtina rasti atsitiktinę reikšmę. Žemos dalys yra sritys, kuriose atsitiktinę reikšmę rasti mažai tikėtina.
22.6.1.2 Tikimybės tankio funkcijos
Dabar išnagrinėkime tai toliau. Jau matėme, kas intuityviai yra tikimybės tankio funkcija atsitiktiniam dydžiui , būtent tankio funkcija yra funkcija , kad
Bet ką tai reiškia savybėms?
Pirma, tikimybės niekada nėra neigiamos, todėl turėtume tikėtis, kad ir .
Antra, įsivaizduokime, kad supjaustome į begalinį skaičių juostelių, kurių plotis , tarkime, juostelės . Kiekvienai iš jų iš (22.6.2) žinome, kad tikimybė yra apytiksliai
taigi susumavus per visas jas turėtų būti
Tai yra ne kas kita, kaip integralo aproksimacija, aptarta 22.5 skyrelis, todėl galime sakyti, kad
Žinome, kad , nes atsitiktinis dydis turi įgyti kokį nors skaičių, todėl galime daryti išvadą, kad bet kuriam tankiui
Iš tiesų, gilinantis toliau matyti, kad bet kuriems ir turime
Tai galime aproksimuoti kode naudodami tuos pačius diskrečiuosius aproksimavimo metodus kaip anksčiau. Šiuo atveju galime aproksimuoti tikimybę patekti į mėlyną sritį.
# Approximate probability using numerical integration
epsilon = 0.01
x = np.arange(-5, 5, 0.01)
p = 0.2*np.exp(-(x - 3)**2 / 2) / np.sqrt(2 * np.pi) + \
0.8*np.exp(-(x + 1)**2 / 2) / np.sqrt(2 * np.pi)
d2l.set_figsize()
d2l.plt.plot(x, p, color='black')
d2l.plt.fill_between(x.tolist()[300:800], p.tolist()[300:800])
d2l.plt.show()
f'approximate Probability: {np.sum(epsilon*p[300:800])}'
# Approximate probability using numerical integration
epsilon = 0.01
x = torch.arange(-5, 5, 0.01)
p = 0.2*torch.exp(-(x - 3)**2 / 2) / torch.sqrt(2 * torch.tensor(torch.pi)) +\
0.8*torch.exp(-(x + 1)**2 / 2) / torch.sqrt(2 * torch.tensor(torch.pi))
d2l.set_figsize()
d2l.plt.plot(x, p, color='black')
d2l.plt.fill_between(x.tolist()[300:800], p.tolist()[300:800])
d2l.plt.show()
f'approximate Probability: {torch.sum(epsilon*p[300:800])}'
# Approximate probability using numerical integration
epsilon = 0.01
x = tf.range(-5, 5, 0.01)
p = 0.2*tf.exp(-(x - 3)**2 / 2) / tf.sqrt(2 * tf.constant(tf.pi)) +\
0.8*tf.exp(-(x + 1)**2 / 2) / tf.sqrt(2 * tf.constant(tf.pi))
d2l.set_figsize()
d2l.plt.plot(x, p, color='black')
d2l.plt.fill_between(x.numpy().tolist()[300:800], p.numpy().tolist()[300:800])
d2l.plt.show()
f'approximate Probability: {tf.reduce_sum(epsilon*p[300:800])}'
Pasirodo, šios dvi savybės tiksliai aprašo galimų tikimybės tankio funkcijų erdvę (arba t. t. f., kaip dažnai sutrumpinama). Tai neneigiamos funkcijos , kad
Šią funkciją interpretuojame naudodami integravimą, kad gautume tikimybę, jog mūsų atsitiktinis dydis yra konkrečiame intervale:
22.8 skyrelis pamatysime keletą įprastų skirstinių, tačiau toliau dirbkime abstrakčiai.
22.6.1.3 Pasiskirstymo funkcijos
Ankstesniame skyrelyje matėme t. t. f. sąvoką. Praktikoje tai yra dažnai sutinkamas būdas kalbėti apie tolydžiuosius atsitiktinius dydžius, tačiau jis turi vieną didelę spąstą: t. t. f. reikšmės pačios nėra tikimybės, o veikiau funkcija, kurią turime suintegruoti, kad gautume tikimybes. Nėra nieko blogo, kad tankis didesnis nei , kol jis nėra didesnis nei ilgesnėje nei ilgio atkarpoje. Tai gali prieštarauti intuicijai, todėl žmonės dažnai galvoja ir pasiskirstymo funkcijos (angl. cumulative distribution function, p. f.) terminais, kuri yra tikimybė.
Visų pirma, naudodami (22.6.4), atsitiktinio dydžio su tankiu pasiskirstymo funkciją apibrėžiame kaip
Pastebėkime keletą savybių.
- , kai .
- , kai .
- yra nemažėjanti ().
- yra tolydi (neturi šuolių), jei yra tolydusis atsitiktinis dydis.
Dėl ketvirtojo punkto atkreipkite dėmesį, kad tai nebūtų tiesa, jei būtų diskretusis, tarkime, įgyjantis reikšmes ir , abi su tikimybe . Tuo atveju
Šiame pavyzdyje matome vieną pasiskirstymo funkcijos naudojimo privalumų – galimybę tame pačiame pagrinde dirbti su tolydžiaisiais arba diskrečiaisiais atsitiktiniais dydžiais, ar net jų mišiniais (metame monetą: jei herbas, grąžiname kauliuko metimo rezultatą, jei skaičius – strėlytės metimo atstumą nuo taikinio centro).
22.6.1.4 Vidurkiai
Tarkime, dirbame su atsitiktiniu dydžiu . Patį skirstinį gali būti sunku interpretuoti. Dažnai naudinga mokėti glaustai apibendrinti atsitiktinio dydžio elgseną. Skaičiai, padedantys užfiksuoti atsitiktinio dydžio elgseną, vadinami suvestinėmis statistikomis. Dažniausiai sutinkamos yra vidurkis, dispersija ir standartinis nuokrypis.
Vidurkis užkoduoja vidutinę atsitiktinio dydžio reikšmę. Jei turime diskretųjį atsitiktinį dydį , kuris įgyja reikšmes su tikimybėmis , tai vidurkis yra svertinis vidurkis: susumuojame reikšmes, padaugintas iš tikimybės, kad atsitiktinis dydis įgyja tą reikšmę:
Vidurkį (nors ir atsargiai) turėtume interpretuoti taip: jis mums iš esmės pasako, kur linkęs būti atsitiktinis dydis.
Minimalistiniam pavyzdžiui, kurį nagrinėsime visame šiame skyriuje, paimkime kaip atsitiktinį dydį, kuris įgyja reikšmę su tikimybe , su tikimybe ir su tikimybe . Naudodami (22.6.5) galime apskaičiuoti, kad bet kuriam galimam ir pasirinkimui vidurkis yra
Taigi matome, kad vidurkis yra . Tai atitinka intuiciją, nes yra vieta, apie kurią centravome savo atsitiktinį dydį.
Kadangi jos naudingos, apibendrinkime keletą savybių.
- Bet kuriam atsitiktiniam dydžiui ir skaičiams ir turime .
- Jei turime du atsitiktinius dydžius ir , tai .
Vidurkiai naudingi norint suprasti vidutinę atsitiktinio dydžio elgseną, tačiau vien vidurkio nepakanka net pilnam intuityviam supratimui. Gauti \10 \pm $1$10 \pm $15$ už pardavimą, nepaisant to, kad vidutinė reikšmė ta pati. Antrasis turi daug didesnį svyravimo laipsnį, taigi reiškia daug didesnę riziką. Taigi norėdami suprasti atsitiktinio dydžio elgseną, mums reikės bent vieno papildomo mato: kokio nors mato, kaip plačiai atsitiktinis dydis svyruoja.
22.6.1.5 Dispersijos
Tai priveda prie atsitiktinio dydžio dispersijos nagrinėjimo. Tai kiekybinis matas, kiek atsitiktinis dydis nukrypsta nuo vidurkio. Panagrinėkime išraišką . Tai atsitiktinio dydžio nuokrypis nuo jo vidurkio. Ši reikšmė gali būti teigiama arba neigiama, todėl turime ką nors padaryti, kad ji būtų teigiama ir matuotume nuokrypio dydį.
Pagrįsta būtų išbandyti , ir iš tiesų tai veda prie naudingo dydžio, vadinamo vidutiniu absoliučiuoju nuokrypiu, tačiau dėl ryšių su kitomis matematikos ir statistikos sritimis žmonės dažnai naudoja kitokį sprendimą.
Visų pirma jie nagrinėja Jei pažiūrėsime į tipinį šio dydžio didumą paėmę vidurkį, gauname dispersiją
Paskutinė lygybė (22.6.6) galioja išskleidus vidurinį apibrėžimą ir pritaikius vidurkio savybes.
Pažiūrėkime savo pavyzdį, kur yra atsitiktinis dydis, įgyjantis reikšmę su tikimybe , su tikimybe ir su tikimybe . Šiuo atveju , todėl tereikia apskaičiuoti . Tai galima lengvai padaryti:
Taigi matome, kad pagal (22.6.6) mūsų dispersija yra
Šis rezultatas vėl prasmingas. Didžiausia reikšmė gali būti , o tai atitinka arba pasirinkimą metant monetą. Kad šios dispersija yra , atitinka faktą, kad tiek , tiek yra vienetų atstumu nuo vidurkio, o . Kitame spektro gale, jei , šis atsitiktinis dydis visada įgyja reikšmę , taigi jis visai neturi dispersijos.
Žemiau išvardysime keletą dispersijos savybių:
- Bet kuriam atsitiktiniam dydžiui , , ir tada ir tik tada, kai yra konstanta.
- Bet kuriam atsitiktiniam dydžiui ir skaičiams ir turime .
- Jei turime du nepriklausomus atsitiktinius dydžius ir , tai .
Interpretuojant šias reikšmes, gali kilti nedidelių keblumų. Visų pirma pabandykime įsivaizduoti, kas nutinka, jei sekame vienetus per šį skaičiavimą. Tarkime, dirbame su produkto įvertinimu žvaigždutėmis tinklalapyje. Tada , ir yra matuojami žvaigždučių vienetais. Panašiai ir vidurkis matuojamas žvaigždutėmis (kaip svertinis vidurkis). Tačiau kai prieiname prie dispersijos, iškart susiduriame su problema: norime nagrinėti , kuris yra žvaigždučių kvadratais. Tai reiškia, kad pati dispersija nėra palyginama su pradiniais matavimais. Kad ją galėtume interpretuoti, turėsime grįžti prie pradinių vienetų.
22.6.1.6 Standartiniai nuokrypiai
Šią suvestinę statistiką visada galima gauti iš dispersijos paėmus kvadratinę šaknį! Taigi standartinį nuokrypį apibrėžiame kaip
Mūsų pavyzdyje tai reiškia, kad standartinis nuokrypis yra . Jei dirbame su žvaigždučių vienetais mūsų atsiliepimų pavyzdyje, vėl yra žvaigždutėmis.
Savybes, kurias turėjome dispersijai, galima performuluoti standartiniam nuokrypiui.
- Bet kuriam atsitiktiniam dydžiui , .
- Bet kuriam atsitiktiniam dydžiui ir skaičiams ir turime
- Jei turime du nepriklausomus atsitiktinius dydžius ir , tai .
Šiuo metu natūralu paklausti: „Jei standartinis nuokrypis yra mūsų pradinio atsitiktinio dydžio vienetais, ar jis atspindi ką nors, ką galime išvesti to atsitiktinio dydžio atžvilgiu?“ Atsakymas – skambus taip! Iš tiesų, kaip vidurkis mums pasakė tipinę mūsų atsitiktinio dydžio vietą, taip standartinis nuokrypis duoda tipinį to atsitiktinio dydžio kitimo diapazoną. Tai galime padaryti griežta pasitelkę vadinamąją Čebyševo nelygybę:
Arba žodžiais, kai , bet kurio atsitiktinio dydžio imčių patenka į standartinių nuokrypių nuo vidurkio atstumą. Tai suteikia tiesioginę interpretaciją mūsų standartinėms suvestinėms statistikoms.
Kad pamatytume, kaip šis teiginys gana subtilus, dar kartą pažiūrėkime savo pavyzdį, kuriame yra atsitiktinis dydis, įgyjantis reikšmę su tikimybe , su tikimybe ir su tikimybe . Matėme, kad vidurkis buvo , o standartinis nuokrypis . Tai reiškia, kad jei Čebyševo nelygybę (22.6.7) imsime su , matome, kad išraiška yra
Tai reiškia, kad laiko šis atsitiktinis dydis pateks į šį intervalą bet kuriai reikšmei. Dabar atkreipkite dėmesį, kad kai , šis intervalas taip pat konverguoja į vieną tašką . Tačiau žinome, kad mūsų atsitiktinis dydis įgyja tik reikšmes ir , todėl galiausiai galime būti tikri, kad ir pateks už intervalo ribų! Klausimas, su kuria tai nutinka. Taigi norime išspręsti: su kuria , o tai išsprendžiama, kai , o tai yra būtent pirmoji , su kuria tai galėtų nutikti nepažeidžiant mūsų teiginio, kad ne daugiau nei skirstinio imčių pateks už intervalo ribų ( kairėje ir dešinėje).
Pavaizduokime tai. Tikimybę gauti tris reikšmes parodysime kaip tris vertikalias juosteles, kurių aukštis proporcingas tikimybei. Intervalas bus nubrėžtas kaip horizontali linija viduryje. Pirmasis grafikas rodo, kas nutinka, kai , kai intervalas saugiai apima visus taškus.
# Define a helper to plot these figures
def plot_chebyshev(a, p):
d2l.set_figsize()
d2l.plt.stem([a-2, a, a+2], [p, 1-2*p, p], use_line_collection=True)
d2l.plt.xlim([-4, 4])
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.hlines(0.5, a - 4 * np.sqrt(2 * p),
a + 4 * np.sqrt(2 * p), 'black', lw=4)
d2l.plt.vlines(a - 4 * np.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.vlines(a + 4 * np.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.title(f'p = {p:.3f}')
d2l.plt.show()
# Plot interval when p > 1/8
plot_chebyshev(0.0, 0.2)
# Define a helper to plot these figures
def plot_chebyshev(a, p):
d2l.set_figsize()
d2l.plt.stem([a-2, a, a+2], [p, 1-2*p, p], use_line_collection=True)
d2l.plt.xlim([-4, 4])
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.hlines(0.5, a - 4 * torch.sqrt(2 * p),
a + 4 * torch.sqrt(2 * p), 'black', lw=4)
d2l.plt.vlines(a - 4 * torch.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.vlines(a + 4 * torch.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.title(f'p = {p:.3f}')
d2l.plt.show()
# Plot interval when p > 1/8
plot_chebyshev(0.0, torch.tensor(0.2))
# Define a helper to plot these figures
def plot_chebyshev(a, p):
d2l.set_figsize()
d2l.plt.stem([a-2, a, a+2], [p, 1-2*p, p], use_line_collection=True)
d2l.plt.xlim([-4, 4])
d2l.plt.xlabel('x')
d2l.plt.ylabel('p.m.f.')
d2l.plt.hlines(0.5, a - 4 * tf.sqrt(2 * p),
a + 4 * tf.sqrt(2 * p), 'black', lw=4)
d2l.plt.vlines(a - 4 * tf.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.vlines(a + 4 * tf.sqrt(2 * p), 0.53, 0.47, 'black', lw=1)
d2l.plt.title(f'p = {p:.3f}')
d2l.plt.show()
# Plot interval when p > 1/8
plot_chebyshev(0.0, tf.constant(0.2))
Antrasis rodo, kad kai , intervalas tiksliai liečia du taškus. Tai rodo, kad nelygybė yra aštri, nes negalima paimti mažesnio intervalo išlaikant nelygybę teisingą.
# Plot interval when p = 1/8
plot_chebyshev(0.0, 0.125)
# Plot interval when p = 1/8
plot_chebyshev(0.0, torch.tensor(0.125))
# Plot interval when p = 1/8
plot_chebyshev(0.0, tf.constant(0.125))
Trečiasis rodo, kad kai , intervale yra tik centras. Tai nepaneigia nelygybės, nes mums reikėjo užtikrinti tik tai, kad ne daugiau nei tikimybės patenka už intervalo ribų, o tai reiškia, kad kai , du taškus ir galima atmesti.
# Plot interval when p < 1/8
plot_chebyshev(0.0, 0.05)
# Plot interval when p < 1/8
plot_chebyshev(0.0, torch.tensor(0.05))
# Plot interval when p < 1/8
plot_chebyshev(0.0, tf.constant(0.05))
22.6.1.7 Vidurkiai ir dispersijos tolydžiuoju atveju
Visa tai buvo diskrečiųjų atsitiktinių dydžių terminais, tačiau tolydžiųjų atsitiktinių dydžių atvejis panašus. Kad intuityviai suprastume, kaip tai veikia, įsivaizduokime, kad realiųjų skaičių tiesę padalijame į intervalus, kurių ilgis , duodamus . Kai tai padarome, mūsų tolydusis atsitiktinis dydis tampa diskretusis ir galime naudoti (22.6.5) bei pasakyti, kad
kur yra tankis. Tai yra integralo aproksimacija, todėl galime daryti išvadą, kad
Panašiai, naudojant (22.6.6), dispersiją galima užrašyti kaip
Viskas, kas aukščiau pasakyta apie vidurkį, dispersiją ir standartinį nuokrypį, tinka ir šiuo atveju. Pavyzdžiui, jei nagrinėjame atsitiktinį dydį su tankiu
galime apskaičiuoti
ir
Kaip įspėjimą, panagrinėkime dar vieną pavyzdį, žinomą kaip Koši skirstinys. Tai skirstinys, kurio t. t. f. yra
# Plot the Cauchy distribution p.d.f.
x = np.arange(-5, 5, 0.01)
p = 1 / (1 + x**2)
d2l.plot(x, p, 'x', 'p.d.f.')
# Plot the Cauchy distribution p.d.f.
x = torch.arange(-5, 5, 0.01)
p = 1 / (1 + x**2)
d2l.plot(x, p, 'x', 'p.d.f.')
# Plot the Cauchy distribution p.d.f.
x = tf.range(-5, 5, 0.01)
p = 1 / (1 + x**2)
d2l.plot(x, p, 'x', 'p.d.f.')
Ši funkcija atrodo nekalta, ir iš tiesų pasitelkus integralų lentelę matyti, kad plotas po ja lygus vienetui, taigi ji apibrėžia tolydųjį atsitiktinį dydį.
Kad pamatytume, kas negerai, pabandykime apskaičiuoti jo dispersiją. Tam reikėtų naudoti (22.6.6) ir apskaičiuoti
Vidinė funkcija atrodo taip:
# Plot the integrand needed to compute the variance
x = np.arange(-20, 20, 0.01)
p = x**2 / (1 + x**2)
d2l.plot(x, p, 'x', 'integrand')
# Plot the integrand needed to compute the variance
x = torch.arange(-20, 20, 0.01)
p = x**2 / (1 + x**2)
d2l.plot(x, p, 'x', 'integrand')
# Plot the integrand needed to compute the variance
x = tf.range(-20, 20, 0.01)
p = x**2 / (1 + x**2)
d2l.plot(x, p, 'x', 'integrand')
Ši funkcija akivaizdžiai turi begalinį plotą po ja, nes iš esmės tai yra konstanta vienas su nedidele įduba prie nulio, ir iš tiesų galėtume parodyti, kad
Tai reiškia, kad jis neturi gerai apibrėžtos baigtinės dispersijos.
Tačiau įsigilinus matyti dar nerimą keliantis rezultatas. Pabandykime apskaičiuoti vidurkį naudodami (22.6.5). Naudodami kintamųjų keitimo formulę, matome
Vidinis integralas yra logaritmo apibrėžimas, todėl iš esmės tai , taigi nėra ir gerai apibrėžtos vidutinės reikšmės!
Mašininio mokymo mokslininkai savo modelius apibrėžia taip, kad daugeliu atvejų nereikėtų susidurti su šiomis problemomis, ir didžiąja dauguma atvejų dirba su atsitiktiniais dydžiais, turinčiais gerai apibrėžtus vidurkius ir dispersijas. Vis dėlto kartkartėmis atsitiktiniai dydžiai su sunkiomis uodegomis (t. y. tie atsitiktiniai dydžiai, kuriems didelių reikšmių tikimybės pakankamai didelės, kad tokie dalykai kaip vidurkis ar dispersija tampa neapibrėžti) yra naudingi modeliuojant fizikines sistemas, todėl verta žinoti, kad jie egzistuoja.
22.6.1.8 Bendrieji tankio funkcijos
Visi aukščiau aprašyti dalykai darė prielaidą, kad dirbame su vienu realiąja reikšme įgyjančiu atsitiktiniu dydžiu. Bet ką daryti, jei turime du ar daugiau potencialiai stipriai koreliuojančių atsitiktinių dydžių? Ši aplinkybė yra norma mašininiame mokyme: įsivaizduokite atsitiktinius dydžius, pvz., , kuris užkoduoja raudonąją pikselio reikšmę koordinatėse paveikslėlyje, arba , kuris yra akcijos kainos atsitiktinis dydis laiku . Gretimi pikseliai linkę turėti panašią spalvą, o gretimi laiko momentai – panašias kainas. Negalime jų nagrinėti kaip atskirų atsitiktinių dydžių ir tikėtis sukurti sėkmingą modelį (22.9 skyrelis pamatysime modelį, kuris dėl tokios prielaidos veikia prastai). Turime išplėtoti matematinę kalbą šiems koreliuojantiems tolydiesiems atsitiktiniams dydžiams tvarkyti.
Laimei, su 22.5 skyrelis aptartais daugialypiais integralais galime išplėtoti tokią kalbą. Tarkime, paprastumo dėlei, turime du atsitiktinius dydžius , kurie gali būti koreliuoti. Tada, kaip vieno kintamojo atveju, galime užduoti klausimą:
Panašus samprotavimas kaip vieno kintamojo atveju rodo, kad tai turėtų būti apytiksliai
kokiai nors funkcijai . Tai vadinama ir bendruoju tankiu. Jam galioja panašios savybės, kaip matėme vieno kintamojo atveju. Būtent:
- ;
- ;
- .
Šitaip galime dirbti su keliais, potencialiai koreliuojančiais atsitiktiniais dydžiais. Jei norime dirbti su daugiau nei dviem atsitiktiniais dydžiais, daugelio kintamųjų tankį galime išplėsti iki tiek koordinačių, kiek pageidaujama, nagrinėdami . Tos pačios savybės – būti neneigiamam ir turėti vienetinį pilnąjį integralą – vis dar galioja.
22.6.1.9 Ribiniai skirstiniai
Dirbant su keliais kintamaisiais, dažnai norime mokėti nepaisyti ryšių ir paklausti: „kaip pasiskirstęs šis vienas kintamasis?“ Toks skirstinys vadinamas ribiniu skirstiniu.
Konkretumo dėlei tarkime, turime du atsitiktinius dydžius su bendruoju tankiu . Apatinį indeksą naudosime nurodydami, kokių atsitiktinių dydžių tankis tai yra. Ribinio skirstinio radimo klausimas yra paimti šią funkciją ir panaudoti ją rasti.
Kaip ir daugeliu atvejų, geriausia grįžti prie intuityvaus vaizdo ir išsiaiškinti, kas turėtų būti tiesa. Prisiminkite, kad tankis yra funkcija , kad
Apie nėra užsiminta, bet jei mums duota tik , turime kažkaip įtraukti . Pirmiausia galime pastebėti, kad tai yra tas pats, kas
Mūsų tankis tiesiogiai nepasako, kas nutinka šiuo atveju, turime skaidyti į mažus intervalus ir pagal , todėl tai galime užrašyti kaip
22.6.1 pav. Susumavę mūsų tikimybių masyvo stulpelius, galime gauti ribinį skirstinį tik atsitiktiniam dydžiui, pavaizduotam išilgai ašies.
Tai mums sako susumuoti tankio reikšmes išilgai eilės kvadratų, kaip parodyta 22.6.1 pav.. Iš tiesų, iš abiejų pusių suprastinus vieną epsilono daugiklį ir atpažinus, kad dešinėje esanti suma yra integralas pagal , galime daryti išvadą, kad
Taigi matome
Tai mums sako, kad norėdami gauti ribinį skirstinį, integruojame pagal kintamuosius, kurie mums nerūpi. Šis procesas dažnai vadinamas nereikalingų kintamųjų suintegravimu (angl. integrating out) arba marginalizavimu.
22.6.1.10 Kovariacija
Dirbant su keliais atsitiktiniais dydžiais, yra viena papildoma suvestinė statistika, kurią naudinga žinoti: kovariacija. Ji matuoja, kokiu laipsniu du atsitiktiniai dydžiai svyruoja kartu.
Tarkime, turime du atsitiktinius dydžius ir , pradžiai tarkime, kad jie diskretieji ir įgyja reikšmes su tikimybe . Šiuo atveju kovariacija apibrėžiama kaip
Kad apie tai pagalvotume intuityviai, panagrinėkime tokią atsitiktinių dydžių porą. Tarkime, įgyja reikšmes ir , o – reikšmes ir . Tarkime, turime tokias tikimybes
kur yra parametras iš , kurį galime pasirinkti. Atkreipkite dėmesį, kad jei , tai abu visada vienu metu yra savo minimumo arba maksimumo reikšmės, o jei , garantuota, kad jie vienu metu įgis apverstas reikšmes (vienas didelis, kai kitas mažas, ir atvirkščiai). Jei , tai visi keturi variantai vienodai tikėtini ir nei vienas neturėtų būti susijęs su kitu. Apskaičiuokime kovariaciją. Pirmiausia pastebėkime, kad ir , taigi galime apskaičiuoti naudodami (22.6.8):
Kai (atvejis, kai abu vienu metu maksimaliai teigiami arba neigiami), kovariacija yra . Kai (atvejis, kai jie apversti), kovariacija yra . Galiausiai, kai (atvejis, kai jie nesusiję), kovariacija yra . Taigi matome, kad kovariacija matuoja, kaip šie du atsitiktiniai dydžiai yra susiję.
Trumpa pastaba apie kovariaciją: ji matuoja tik šiuos tiesinius ryšius. Sudėtingesni ryšiai, pavyzdžiui, , kur atsitiktinai renkamas iš su vienoda tikimybe, gali likti nepastebėti. Iš tiesų greitas skaičiavimas rodo, kad šie atsitiktiniai dydžiai turi nulinę kovariaciją, nors vienas yra deterministinė kito funkcija.
Tolydiesiems atsitiktiniams dydžiams galioja beveik tas pats. Šiuo metu jau gana patogiai jaučiamės pereidami tarp diskrečiųjų ir tolydžiųjų, todėl (22.6.8) tolydųjį analogą pateiksime be išvedimo.
Vizualizacijai pažiūrėkime į atsitiktinių dydžių rinkinį su reguliuojama kovariacija.
# Plot a few random variables adjustable covariance
covs = [-0.9, 0.0, 1.2]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = np.random.normal(0, 1, 500)
Y = covs[i]*X + np.random.normal(0, 1, (500))
d2l.plt.subplot(1, 4, i+1)
d2l.plt.scatter(X.asnumpy(), Y.asnumpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cov = {covs[i]}')
d2l.plt.show()
# Plot a few random variables adjustable covariance
covs = [-0.9, 0.0, 1.2]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = torch.randn(500)
Y = covs[i]*X + torch.randn(500)
d2l.plt.subplot(1, 4, i+1)
d2l.plt.scatter(X.numpy(), Y.numpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cov = {covs[i]}')
d2l.plt.show()
# Plot a few random variables adjustable covariance
covs = [-0.9, 0.0, 1.2]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = tf.random.normal((500, ))
Y = covs[i]*X + tf.random.normal((500, ))
d2l.plt.subplot(1, 4, i+1)
d2l.plt.scatter(X.numpy(), Y.numpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cov = {covs[i]}')
d2l.plt.show()
Pažiūrėkime keletą kovariacijų savybių:
- Bet kuriam atsitiktiniam dydžiui , .
- Bet kuriems atsitiktiniams dydžiams ir skaičiams ir , .
- Jei ir yra nepriklausomi, tai .
Be to, kovariaciją galime naudoti anksčiau matytam ryšiui išplėsti. Prisiminkite, kad jei ir yra du nepriklausomi atsitiktiniai dydžiai, tai
Žinodami apie kovariacijas, šį ryšį galime išplėsti. Iš tiesų šiek tiek algebros gali parodyti, kad bendru atveju
Tai leidžia apibendrinti dispersijų sumavimo taisyklę koreliuojantiems atsitiktiniams dydžiams.
22.6.1.11 Koreliacija
Kaip darėme vidurkių ir dispersijų atveju, dabar apsvarstykime vienetus. Jei matuojamas vienu vienetu (tarkime, coliais), o – kitu (tarkime, doleriais), kovariacija matuojama šių dviejų vienetų sandauga . Šiuos vienetus gali būti sunku interpretuoti. Šiuo atveju dažnai norėsime bevienetio ryšio matavimo. Iš tiesų dažnai nesirūpiname tiksliu kiekybiniu ryšiu, o veikiau klausiame, ar ryšys yra ta pačia kryptimi ir kiek stiprus.
Kad pamatytume, kas prasminga, atlikime minties eksperimentą. Tarkime, savo atsitiktinius dydžius coliais ir doleriais konvertuojame į coliais ir centais. Šiuo atveju atsitiktinis dydis padauginamas iš . Jei pereisime per apibrėžimą, tai reiškia, kad bus padauginta iš . Taigi matome, kad šiuo atveju vienetų pakeitimas pakeičia kovariaciją kartų. Todėl norėdami rasti vienetų atžvilgiu invariantišką koreliacijos matą, turėsime padalyti iš kažko kito, kas taip pat pasikeičia kartų. Iš tiesų turime aiškų kandidatą – standartinį nuokrypį! Iš tiesų, jei koreliacijos koeficientą apibrėšime kaip
matome, kad tai yra bevienetė reikšmė. Šiek tiek matematikos gali parodyti, kad šis skaičius yra tarp ir , kur reiškia maksimaliai teigiamą koreliaciją, o – maksimaliai neigiamą koreliaciją.
Grįžę prie aiškaus diskrečiojo pavyzdžio aukščiau, matome, kad ir , taigi galime apskaičiuoti koreliaciją tarp dviejų atsitiktinių dydžių naudodami (22.6.9) ir pamatyti, kad
Dabar tai kinta tarp ir su tikėtina elgsena: reiškia stipriausią koreliaciją, o – minimaliai koreliuotus.
Kaip kitą pavyzdį panagrinėkime kaip bet kurį atsitiktinį dydį, o – kaip bet kurią tiesinę deterministinę funkciją. Tada galima apskaičiuoti, kad
ir taigi pagal (22.6.9), kad
Taigi matome, kad koreliacija yra bet kuriam ir bet kuriam , o tai iliustruoja, kad koreliacija matuoja laipsnį ir kryptingumą, kuriais du atsitiktiniai dydžiai yra susiję, o ne svyravimo mastą.
Vėl nubraižykime atsitiktinių dydžių rinkinį su reguliuojama koreliacija.
# Plot a few random variables adjustable correlations
cors = [-0.9, 0.0, 1.0]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = np.random.normal(0, 1, 500)
Y = cors[i] * X + np.sqrt(1 - cors[i]**2) * np.random.normal(0, 1, 500)
d2l.plt.subplot(1, 4, i + 1)
d2l.plt.scatter(X.asnumpy(), Y.asnumpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cor = {cors[i]}')
d2l.plt.show()
# Plot a few random variables adjustable correlations
cors = [-0.9, 0.0, 1.0]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = torch.randn(500)
Y = cors[i] * X + torch.sqrt(torch.tensor(1) -
cors[i]**2) * torch.randn(500)
d2l.plt.subplot(1, 4, i + 1)
d2l.plt.scatter(X.numpy(), Y.numpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cor = {cors[i]}')
d2l.plt.show()
# Plot a few random variables adjustable correlations
cors = [-0.9, 0.0, 1.0]
d2l.plt.figure(figsize=(12, 3))
for i in range(3):
X = tf.random.normal((500, ))
Y = cors[i] * X + tf.sqrt(tf.constant(1.) -
cors[i]**2) * tf.random.normal((500, ))
d2l.plt.subplot(1, 4, i + 1)
d2l.plt.scatter(X.numpy(), Y.numpy())
d2l.plt.xlabel('X')
d2l.plt.ylabel('Y')
d2l.plt.title(f'cor = {cors[i]}')
d2l.plt.show()
Žemiau išvardykime keletą koreliacijos savybių.
- Bet kuriam atsitiktiniam dydžiui , .
- Bet kuriems atsitiktiniams dydžiams ir skaičiams ir , .
- Jei ir yra nepriklausomi su nenuline dispersija, tai .
Paskutinė pastaba: galite pajusti, kad kai kurios iš šių formulių yra pažįstamos. Iš tiesų, jei viską išskleisime darydami prielaidą, kad , matome, kad tai yra
Tai atrodo kaip narių sandaugų suma, padalyta iš narių sumų kvadratinės šaknies. Tai yra būtent kampo tarp dviejų vektorių kosinuso formulė, kai skirtingos koordinatės pasvertos :
Iš tiesų, jei normas laikysime susijusiomis su standartiniais nuokrypiais, o koreliacijas – kampų kosinusais, didelę dalį intuicijos, kurią turime iš geometrijos, galima pritaikyti mąstant apie atsitiktinius dydžius.
22.6.2 Santrauka
- Tolydieji atsitiktiniai dydžiai yra atsitiktiniai dydžiai, kurie gali įgyti reikšmių kontinuumą. Jie turi tam tikrų techninių sunkumų, dėl kurių su jais dirbti sudėtingiau nei su diskrečiaisiais atsitiktiniais dydžiais.
- Tikimybės tankio funkcija leidžia dirbti su tolydžiaisiais atsitiktiniais dydžiais, pateikdama funkciją, kurios plotas po kreive tam tikrame intervale duoda tikimybę rasti imties tašką tame intervale.
- Pasiskirstymo funkcija yra tikimybė, kad stebimas atsitiktinis dydis bus mažesnis už duotą slenkstį. Ji gali suteikti naudingą alternatyvų požiūrį, vienijantį diskretuosius ir tolydžiuosius kintamuosius.
- Vidurkis yra vidutinė atsitiktinio dydžio reikšmė.
- Dispersija yra tikėtinas atsitiktinio dydžio ir jo vidurkio skirtumo kvadratas.
- Standartinis nuokrypis yra dispersijos kvadratinė šaknis. Jį galima laikyti reikšmių diapazono, kurį gali įgyti atsitiktinis dydis, matu.
- Čebyševo nelygybė leidžia šią intuiciją padaryti griežta, pateikdama aiškų intervalą, kuriame atsitiktinis dydis yra didžiąją laiko dalį.
- Bendrieji tankiai leidžia dirbti su koreliuojančiais atsitiktiniais dydžiais. Bendruosius tankius galime marginalizuoti integruodami pagal nepageidaujamus atsitiktinius dydžius ir gauti norimo atsitiktinio dydžio skirstinį.
- Kovariacija ir koreliacijos koeficientas suteikia būdą matuoti bet kokį tiesinį ryšį tarp dviejų koreliuojančių atsitiktinių dydžių.
22.6.3 Pratimai
- Tarkime, turime atsitiktinį dydį su tankiu , kai , ir kitais atvejais. Kam lygu ?
- Laplaso skirstinys yra atsitiktinis dydis, kurio tankis yra . Koks yra šios funkcijos vidurkis ir standartinis nuokrypis? Užuomina: ir .
- Prieinu prie jūsų gatvėje ir sakau: „Turiu atsitiktinį dydį su vidurkiu , standartiniu nuokrypiu , ir pastebėjau, kad mano imčių įgijo reikšmę, didesnę nei .“ Ar man tikite? Kodėl taip ar ne?
- Tarkime, turite du atsitiktinius dydžius su bendruoju tankiu , kai , ir kitais atvejais. Kokia yra ir kovariacija?
