Documente Academic
Documente Profesional
Documente Cultură
𝑃 (𝑋 ∈ [𝑎, 𝑏])
𝑃 (𝑌 ∈ [𝑐, 𝑑])
1
0.3.2 Trecerea de la variabile la vectori
Aceasta probabilitate o putem scrie si astfel:
(𝑋, 𝑌 ) ∈ [𝑎, 𝑏] × [𝑐, 𝑑] ne spune ca 𝑋 apartine intervalului [𝑎, 𝑏], iar 𝑌 intervalului [𝑐, 𝑑]. Sa
vizualizam acest lucru, desenand cat mai multe puncte (𝑥, 𝑦) pentru care 𝑥 si 𝑦 apartin intervalului
[−0.5, 0.5]!
Nota: Am ales intervalul [−0.5, 0.5] pentru ca este simetric in jurul lui 0, si duce la vizualizari mai
‘frumoase’. Observatiile de mai jos sunt valide pentru orice alte intervale, chiar si diferite.
Nota 2: Codul de mai jos este scris in Python, folosind libraria matplotlib. Nu este necesar sa
il intelegeti pentru a intelege graficele. Graficele seamana cu cele din Matlab, deoarece la inceput
libraria incerca sa emuleze graficele din acest limbaj.
[ ]: import matplotlib.pyplot as plt
import numpy as np
from math import ceil
from scipy.stats import norm
[ ]: plt.gca().set_aspect('auto')
2
[ ]: def generate_uniform_vector(interval_x, interval_y, point_count):
x_min, x_max = interval_x
y_min, y_max = interval_y
x = np.random.rand(1, point_count)*(x_max - x_min) + x_min
y = np.random.rand(1, point_count)*(y_max - y_min) + y_min
return x, y
plt.tight_layout()
plt.show()
3
Cu cat crestem numarul de puncte, cu atat figura ce apare seamana mai mult cu un patrat!
Observam ca domeniul [−0.5, 0.5]×[−0.5, 0.5] este un patrat. Deci atunci cand spunem ca vectorul
continuu (𝑋, 𝑌 ) ia valori in acest domeniu, ne gandim ca punctele (𝑥, 𝑦) pica intr-un patrat.
Observatie: Daca cele 2 intervale ar fi avut dimensiuni diferite, am fi obtinut dreptunghiuri in loc
de patrate. De exemplu, domeniul [0, 1] × [3, 8] arata astfel:
4
0.3.3 Concluzie
Deci, in cazul variabilelor continue, in principal ne intereseaza calculul probabilitatii ca variabila
sa ia valori intr-un anumit interval, iar in cazul vectorilor continui, in loc de interval(valori pentru
o singura variabila), suntem interesati de domenii(valori pentru mai multe variabile)!
5
Fie un punct oarecare (𝑥, 𝑦). Distanta de la acest punct la centru este:
Ridicand la patrat:
(𝑥 − 𝑎)2 + (𝑦 − 𝑏)2 = 𝑟2
Aceasta este ecuatia cercului de centru (𝑎, 𝑏) si raza 𝑟. Ea are drept solutii punctele ce se afla pe
cerc.
In cazul vectorilor continui suntem in general interesati de domenii circulare care contin si interiorul
cercului. Interiorul cercului este format de acele puncte care se afla la distanta cel mult 𝑟 de centru,
deci care respecta urmatoarea inegalitate:
(𝑥 − 𝑎)2 + (𝑦 − 𝑏)2 ≤ 𝑟2
Sa vizualizam acest domeniu circular! Mai intai vom vizualiza marginea acestuia, adica graficul
ecuatiei (𝑥 − 𝑎)2 + (𝑦 − 𝑏)2 = 𝑟2 .
Pentru simplitate, vom alege drept centru punctul (0, 0) si 1 drept raza, deci ecuatia devine 𝑥2 +𝑦2 =
1. Primul pas este sa scoatem pe 𝑦 din aceasta ecuatie:
𝑦 2 = 1 − 𝑥2
√
𝑦 = ± 1 − 𝑥2
Observatie: Aceasta ecuatie nu reprezinta o functie, deoarece pentru√un anumit 𝑥, exista√ doar
valori distincte ale lui 𝑦. Ea reprezinta de fapt 2 functii, anume 𝑦 = 1 − 𝑥 , si 𝑦 = − 1 − 𝑥2 .
2
[ ]: x = np.linspace(-1, 1, 1000)
y1 = np.sqrt(1 - x*x)
y2 = -np.sqrt(1 - x*x)
plt.plot(x, y1, color = "red")
plt.plot(x, y2, color = "blue")
plt.show()
6
Acum vom vizualiza intreg cercul, adica marginea sa(partile rosii si albastre de mai sus), plus
interiorul sau.
[ ]: x = np.linspace(-1, 1, 1000)
y1 = np.sqrt(1 - x*x)
y2 = -np.sqrt(1 - x*x)
plt.fill_between(x, y1, alpha = 0.5)
plt.fill_between(x, y2, alpha = 0.5)
plt.show()
7
0.4.2 Domeniu triunghiular
Dorim sa gasim o ecuatie pentru un domeniu triunghiular. Sa zicem ca una dintre laturile tri-
unghiului se afla fix pe axa 𝑂𝑥, pornind din centru(punctul (0, 0)) pana la punctul (1, 0), deci are
lungimea 1. Sa consideram ca triunghiul trece si prin punctul de coordonate (0.5, 1). De ce (1, 0.5)?
De ce nu! :)
Incepem prin a reprezenta grafic aceste puncte:
[ ]: points_x = [0, 1, 0.5]
points_y = [0, 0, 1]
plt.scatter(points_x, points_y)
plt.show()
8
Cele 3 puncte vor fi conectate prin linii. Sa gasim ecuatiile acestor linii. Ecuatia generala a unei
linii are urmatoarea forma:
𝑦 = 𝑎𝑥 + 𝑏
Sa consideram mai intai linia de la punctul (0, 0) pana la punctul (0.5, 1). Linia trebuie sa treaca
prin aceste 2 puncte, deci aceste 2 puncte trebuie sa satisfaca ecuatia liniei. Substituind primul
punct in ecuatie, adica substituind 𝑥 = 0 si 𝑦 = 0, obtinem:
0=𝑎⋅0+𝑏
0=0+𝑏
𝑏=0
1 = 0.5𝑎 + 𝑏
Inlocuim 𝑏 = 0:
1 = 0.5𝑎
𝑎=2
Deci ecuatia acestei linii este 𝑦 = 2𝑥 + 0 = 2𝑥. Analog vom obtine ecuatiile celorlalte 2 linii, care
sunt 𝑦 = −2𝑥 + 2, respectiv 𝑦 = 0.
9
Incepem prin a reprezenta grafic aceste linii:
[ ]: x = np.linspace(0, 1, 10000)
y1 = 2*x
y2 = -2*x + 2
y3 = 0*x
plt.plot(x, y1)
plt.plot(x, y2)
plt.plot(x, y3)
plt.show()
10
Pentru a obtine domeniul triunghiular, trebuie sa consideram si punctele din interior:
[ ]: x = np.linspace(0, 1, 10000)
y1 = 2*x
y2 = -2*x + 2
y3 = 0*x
plt.plot(x[y1 <= 1], y1[y1 <= 1])
plt.plot(x[y2 <= 1], y2[y2 <= 1])
plt.plot(x[y3 <= 1], y3[y3 <= 1])
plt.fill_between(x[y1 <= 1], y1[y1 <= 1], alpha = 0.5)
plt.fill_between(x[y2 <= 1], y2[y2 <= 1], alpha = 0.5)
plt.fill_between(x[y3 >= 0], y3[y3 >= 0], alpha = 0.5)
plt.show()
11
Deci un domeniu triunghiular poate fi dat de urmatoarele ecuatii:
⎧𝑦 ≤ 2𝑥
{
⎨𝑦 ≤ −2𝑥 + 2
{𝑦 ≥ 0
⎩
12
Aceasta linie poarta si numele de prima bisectoare. Aceasta linie continua la infinit in ambele
directii, dar aici reprezentam doar o mica parte a sa.
Realizam ca, daca am reprezenta domeniul ce se afla sub aceasta linie, am obtine un triunghi:
[ ]: x = np.linspace(0, 1, 1000)
y = np.linspace(0, 1, 1000)
xx, yy = np.meshgrid(x, y)
xx, yy = xx.ravel(), yy.ravel()
triangle = yy < xx
xx = xx[triangle]
yy = yy[triangle]
plt.plot(xx, yy)
plt.show()
13
Acest triunghi este dat de urmatorul sistem de ecuatii:
⎧0 ≤ 𝑥 ≤ 1
{
⎨0 ≤ 𝑦 ≤ 1
{𝑦 ≤ 𝑥
⎩
𝑑 𝑏
𝑃 ((𝑋, 𝑌 ) ∈ [𝑎, 𝑏] × [𝑐, 𝑑]) = ∫ ∫ 𝑓𝑋,𝑌 (𝑥, 𝑦)𝑑𝑥𝑑𝑦
𝑐 𝑎
Pentru a intelege mai bine, ne reamintim formula pentru probabilitatea ca variabila 𝑋 sa ia valori
in intervalul [𝑎, 𝑏]. Daca 𝑓𝑋 este densitatea de probabilitate a variabilei 𝑋, atunci:
14
𝑏
𝑃 (𝑋 ∈ [𝑎, 𝑏]) = ∫ 𝑓𝑋 (𝑥)𝑑𝑥
𝑎
Observam ca formula pentru vectori continui contine 2 integrale. Integrala interioara, adica
𝑏
∫𝑎 𝑓𝑋,𝑌 (𝑥, 𝑦)𝑑𝑥, este asemanatoare cu cea din formula pentru variabile continue. Aceasta in-
tegreaza densitatea de probabilitate doar in functie de 𝑥, pe intervalul [𝑎, 𝑏]. Asemanator, cea
𝑑
exterioara, ∫𝑐 𝑑𝑦 integreaza in functie de 𝑦, pe intervalul care ne intereseaza.
∞ ∞
∫ ∫ 𝑓𝑋,𝑌 (𝑥, 𝑦)𝑑𝑥𝑑𝑦 = 1
−∞ −∞
Pe de alta parte, aceasta integrala dubla este o probabilitate, deci nu are sens sa ia valori negative.
Ne putem asigura ca nu va lua niciodata valori negative cerand ca functia 𝑓𝑋,𝑌 sa fie mereu ≥ 0,
deoarece integrala unei functii pozitive va fi mereu pozitiva:
𝑓𝑋,𝑌 ≥ 0
O proprietate in plus pe care trebuie sa o aiba functia densitate de probabilitate este integrabilitatea
pe ℝ2 . Aceasta proprietate inseamna ca doar functiile ale caror integrale “le putem calcula” pot fi
densitati de probabilitate.
Avem deci urmatoarele 3 cerinte pentru ca o functie 𝑓𝑋,𝑌 ∶ ℝ2 → 𝑅 sa fie densitate de probabilitate:
∞ ∞
- 𝑓𝑋,𝑌 ≥ 0 - functia 𝑓𝑋,𝑌 sa fie integrabila pe ℝ2 - ∫−∞ ∫−∞ 𝑓𝑋,𝑌 𝑑𝑥𝑑𝑦 = 1
15
Altfel spus, daca derivam functia de repartitie in functie de 𝑥, apoi in functie de 𝑦, obtinem functia
de densitate.
𝑃 (𝑋 ≤ 𝑥)
Aceasta probabilitate cere ca variabila 𝑋 sa ia o valoare mai mica sau egala cu 𝑥. Nu sunt deci
puse restrictii asupra valorilor lui 𝑌 . Atunci putem considera ca 𝑌 ia orice valoare posibila, deci
𝑌 ∈ (−∞, ∞). Probabilitatea de mai sus devine:
𝑥 ∞
𝑃 (−∞ < 𝑋 ≤ 𝑥, −∞ < 𝑌 < ∞) = ∫ ∫ 𝑓𝑋,𝑌 (𝑡, 𝑠)𝑑𝑠𝑑𝑡
−∞ −∞
Considerand doar integrala din exterior, observam ca limita sa superioara este 𝑥. Teorema fun-
damentala a algebrei ne spune ca daca aplicam derivata in functie de 𝑥 peste aceasta integrala,
integrala dispare:
𝑥 ∞
𝑑 𝑑
𝐹 (𝑥) = ∫ ∫ 𝑓 (𝑡, 𝑠)𝑑𝑠𝑑𝑡
𝑑𝑥 𝑋 𝑑𝑥 −∞ −∞ 𝑋,𝑌
∞
𝑑
𝐹 (𝑥) = ∫ 𝑓𝑋,𝑌 (𝑡, 𝑠)𝑑𝑠
𝑑𝑥 𝑋 −∞
In partea stanga a ecuatiei, avem derivata functiei de repartitie. Prin definite, aceasta este chiar
functia de densitate, deci:
∞
𝑓𝑋 (𝑥) = ∫ 𝑓𝑋,𝑌 (𝑡, 𝑠)𝑑𝑠
−∞
16
Am obtinut deci functia de densitate a variabilei 𝑋. Observam ca in partea dreapta integram pe
𝑓𝑋,𝑌 (𝑡, 𝑠) in functie de 𝑠. 𝑠 tine locul variabilei 𝑦, deci practic am integrat variabila 𝑦 si am ramas
doar cu o functie de 𝑥, ceea ce are sens pentru densitatea variabilei 𝑋!
Exercitiu: Obtineti densitatea variabilei 𝑌 .
1 1 2
𝑓𝑋 (𝑥) = √ 𝑒− 2 𝑥
2𝜋
Constanta √12𝜋 este necesara pentru ca integrala de la −∞ la ∞ sa fie egala cu 1. Mai jos vom
folosi direct formula functiei de densitate:
[ ]: x = np.linspace(-5, 5, 1000)
y = 1/np.sqrt(2*np.pi)*np.exp(-1/2*x**2)
plt.plot(x, y)
plt.show()
17
In libraria Python scipy, exista functia scipy.stats.norm.pdf care este fix functia de densitate a
distributiei normale. Putem folosi si aceasta functie pentru a realiza graficul functiei de densitate:
[ ]: y = norm.pdf(x, 0, 1)
plt.plot(x, y)
plt.show()
18
Stim ca probabilitatea ca variabila distribuita normal sa ia valori sub 𝑥 este egala cu aria de sub
graful functiei de densitate de la −∞ pana la 𝑥.
[ ]: plt.plot(x, y)
x1 = np.linspace(-5, 0, 1000)
y1 = norm.pdf(x1, 0, 1)
plt.fill_between(x1, y1, step = "pre", alpha = 0.5)
plt.show()
19
In figura de mai sus, partea colorata cu albastru deschis are aria egala cu 𝑃 (𝑋 ≤ 0). Putem observa
ca aceasta figura este fix jumatate din intreaga figura, adica jumatatea din dreapta lui 0 este egala,
ca arie, cu cea din stanga sa.
∞
Stim ca aria totala este 1(din definitia densitatii de probabilitate, stim ca ∫−∞ 𝑓𝑋 (𝑥)𝑑𝑥 = 1, adica
aria totala de sub grafic este egala cu 1). Atunci rezulta ca aria colorata mai sus este egala cu 0.5,
deci 𝑃 (𝑋 ≤ 0) = 0.5.
Deci o valoare a variabilei 𝑋 este la fel de probabil sa fie in stanga mediei, sau in dreapta mediei.
Se observa de asemenea ca, in partea stanga a lui −2, aria este mica:
[ ]: plt.plot(x, y)
x1 = np.linspace(-5, -2, 1000)
y1 = norm.pdf(x1, 0, 1)
plt.fill_between(x1, y1, step = "pre", alpha = 0.5)
plt.show()
20
Pe de alta parte, aria dintre −2 si −1 este mult mai mare:
[ ]: plt.plot(x, y)
x1 = np.linspace(-2, -1, 1000)
y1 = norm.pdf(x1, 0, 1)
plt.fill_between(x1, y1, step = "pre", alpha = 0.5)
plt.show()
21
Iar aria dintre −1 si 0 este mult mai mare decat cea dintre −2 si −1. Altfel spus, observam ca,
atunci cand ne apropiem de medie, 0, aria de sub grafic creste foarte rapid, si deci si probabilitatea
va creste foarte rapid.
Putem sa reprezentam grafic si aceasta probabilitate, adica 𝑃 (𝑋 ≤ 𝑥). Prin definitie, aceasta
probabilitate este egala cu:
𝑥 𝑥
1 1 2
∫ 𝑓𝑋 (𝑠)𝑑𝑠 = ∫ √ 𝑒− 2 𝑠 𝑑𝑠
−∞ −∞ 2𝜋
Integrala din partea dreapta nu are o forma elementara, adica nu o putem exprima cu functiile
obisnuite(functii trigonometrice, ridicare la putere, etc). Deci nu vom putea gasi o formula de tipul
𝑔(𝑥) care sa contina doar functiile elementare, si care sa ne dea valoarea lui 𝑃 (𝑋 ≤ 𝑥).
Putem insa aproxima valoarea acestei integrala pentru o valoare fixa a lui 𝑥, de exemplu putem
calcula aproximari ale lui 𝑃 (𝑋 ≤ 0.5).
Functia scipy.stats.norm.cdf implementeaza o asemenea aproximare.
[ ]: y = norm.cdf(x, 0, 1)
plt.plot(x, y)
plt.show()
22
Observam ca pana la aproximativ 𝑥 = −2, probabilitatea ramane mica, deci 𝑃 (𝑋 ≤ −2) este mica.
Dupa 𝑥 = −2, functia creste rapid, de la aproximativ 0 la 𝑥 = −2 pana la 0.5 la 𝑥 = 0. Atunci
cand trecem de 𝑥 = 2, probabilitatea nu mai creste atat de rapid.
Pentru a vedea mai bine ce se intampla in zona lui 𝑥 = 2, vom reprezenta grafic functia 𝑓(𝑥) =
𝑃 (𝑥 − 0.1 ≤ 𝑋 ≤ 𝑥 + 0.1), adica probabilitatea ca variabila sa ia o valoare in jurul lui 𝑥, la o
diferenta de cel mult 0.1:
[ ]: y = norm.cdf(x + 0.1, 0, 1) - norm.cdf(x - 0.1, 0, 1)
plt.plot(x, y)
plt.show()
23
Observam clar ca probabilitatea este maxima pentru 𝑥 = 0, si scade cand ne indepartam de acest
punct.
24
si varsta, la greutate), si presupunem implicit ca acest model este bun, adica in medie predictiile
modelului nostru sunt egale cu realitatea.
Predictiile noastre nu sunt insa exact corecte, adica exista o oarecare diferenta intre realitate si
ceea ce am prezis noi. Acest fapt il modelam prin dispersie(in engleza, variance).
Astfel, presupunerea este ca, in medie, ceea ce modelul nostru de Inteligenta Artificiala ne spune,
este in medie de acord cu realitatea, dar exista si o oarecare diferenta intre realitate si ce am prezis
noi.
Notam cu 𝑦 valoarea reala, si cu 𝑦 ̂ valoarea prezisa de modelul nostru. Aici, 𝑦 si 𝑦 ̂ sunt greutati.
Atunci vom considera ca in medie valoarea prezisa este egala cu cea reala, si ca exista o anumita
diferenta(speram noi ca mica) intre cele 2 marimi, pe care o notam ca 𝑉 2 .
Nota: In romana, aceasta “diferenta” este numita dispersie, iar in engleza este cunoscuta drept
variance. In ambele cazuri poate fi notata ca 𝜎2 , dar in engleza este notata si ca 𝑉 2 .
Atunci cand cunoastem media si dispersia unei variabile, sau a unui vector, cel mai natural este sa
presupunem ca variabila este distribuita normal.
Nota: Se poate demonstra ca, dintr-un anumit punct de vedere, daca stim media si dispersia unui
set de date, atunci distributia normala face cele mai putine presupuneri asupra acestui set de date.
Presupunem deci ca 𝑦 ̂ ≈ 𝑁 (𝑦, 𝑉 2 ). Din aceasta presupunere vom putea obtine modele de Inteligenta
Artificiala foarte puternice, asa cum veti vedea in anul 3 la materia BIA.
𝑦 ̂ de mai sus este o singura variabila. Vom vedea mai jos o posibile aplicatia a vectorilor con-
tinui(adica a unui set de mai multe variabile continuie).
Revenind la exemplu anterior, unde aveam drept date cunoscute inaltimea si varsta. Sa presupunem
ca stim si lungimea mainilor persoanelor. Pentru a putea aplica algoritmi de Machine Learning pe
astfel de date, este foarte foarte important sa avem foarte foarte foarte multe date, adica sa avem
foarte multe persoane ale caror inaltime, varsta, si lungime a mainilor le cunoastem.
Ce se intampla insa daca pentru o anumita persoana cunoastem doar varsta, iar greutatea si
lungimea mainilor nu le cunoastem(sau le cunoastem, dar realizam ca ceea ce stim nu este corect,
de exemplu avem o greutate de 999 de KG, ceea ce inseamna ca, intr-un mod sau altul, am ajuns
sa avem date incorecte)?
Modelele de Machine Learnig nu pot, in general, sa lucreze cu date incomplete, deci avem 2 variante:
- ignoram persoana pentru care stim doar varsta - asignam acestei persoane o greutate si o lungime
a mainilor care sa fie cat mai plauzibile
Deoarece in Machine Learning avem nevoie de cat mai multe date, preferam a 2-a varianta, desi
intuitiv ceea ce vom obtine nu va fi la fel de bun ca datele reale.
Pentru a gasi marimile necunoscute, adica greutatea si lungimea mainilor, consideram un vector
continuu de tipul (𝑋, 𝑌 , 𝑍), unde 𝑋 este varsta, 𝑌 este greutatea si 𝑍 este lungimea mainilor.
Cunoastem doar varsta, deci stim valoarea pe care o ia variabila 𝑋, si suntem interesati de valorile
pe care le iau variabilele 𝑌 si 𝑍, adica am dori sa cunoastem urmatoarea probabilitate:
𝑃 (𝑌 ∈ 𝐼, 𝑍 ∈ 𝐽 |𝑋 = 𝑥)
Ne intereseaza deci probabilitatea ca 𝑌 si 𝑍 sa ia valori in anumite intervale, stiind deja valoarea
pe care a luat-o 𝑋.
25
4 Extra
Intuitie:
De ce suntem nevoiti sa calculam probabilitatea ca o variabila continua sa ia valori intr-un anumit
interval, si nu calculam probabilitatea ca acea variabila sa ia o anumita valoare fixa?
Sa consideram o variabila 𝑋 care ia valori in intervalul [0, 1], si sa luam 0.5 drept valoarea fixa.
Ne amintim formula pentru probabilitati din liceu:
Numarul de cazuri favorabile
𝑃 (𝑋 = 0.5) = Numarul de cazuri posibile
26