Sunteți pe pagina 1din 291

Studiul calitatii si abilitatii

folosind R-Studio

Daniel Volovici Daniel N.Pop


Cuprins

1 Preliminarii 8
1.1 Medii statistice.Indicatori ai variatiei . . . . . . . . . . 8
1.2 Integrale Euleriene . . . . . . . . . . . . . . . . . . . . 12
1.3 Functia de repartitie. Densitatea de probabilitate . . . 14
1.4 Transformata lui Laplace . . . . . . . . . . . . . . . . . 16

2 Mediul de programare RStudio 17


2.1 Prezentare general . . . . . . . . . . . . . . . . . . . . 17
2.2 Tipurile de date ^n R. . . . . . . . . . . . . . . . . . . . 25
2.2.1 Obiecte . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 Citirea datelor dintr-un sier . . . . . . . . . . . 29
2.2.3 Salvarea datelor . . . . . . . . . . . . . . . . . . 31
2.2.4 Generarea datelor . . . . . . . . . . . . . . . . . 32
2.2.5 Manipularea obiectelor . . . . . . . . . . . . . . 35
2.3 Programarea ^n RStudio . . . . . . . . . . . . . . . . . 54
2.3.1 Bucle si vectorizari . . . . . . . . . . . . . . . . 54
2.3.2 Instructiunea de decizie . . . . . . . . . . . . . 57
2.3.3 Instructiuni de repetitie . . . . . . . . . . . . . 58
2.3.4 De nirea functiilor proprii . . . . . . . . . . . . 62
2.3.5 Calculul integralelor de nite . . . . . . . . . . . 63
2.4 Apelul din R al functiilor scrise ^n C . . . . . . . . . . 64
2.5 Crearea de siere C++ ^n R . . . . . . . . . . . . . . . 73

2
CUPRINS 3

2.6 Data frame . . . . . . . . . . . . . . . . . . . . . . . . 75


2.7 Generarea numerelor aleatoare ^n R . . . . . . . . . . . 85
2.8 Functii gra ce ^n R . . . . . . . . . . . . . . . . . . . . 89
2.8.1 Gestionarea gra celor . . . . . . . . . . . . . . . 89
2.8.2 Pachetele grid si lattice . . . . . . . . . . . . . . 97

3 Legi de repartitie a priori 99


3.1 Repartitia beta . . . . . . . . . . . . . . . . . . . . . . 99
3.2 Repartitia gamma . . . . . . . . . . . . . . . . . . . . . 104
3.3 Repartitia uniforma . . . . . . . . . . . . . . . . . . . . 106

4 Distributii utilizate 108


4.1 Repartitii discrete . . . . . . . . . . . . . . . . . . . . . 108
4.1.1 Repartitia binomial . . . . . . . . . . . . . . . 108
4.1.2 Repartitia Poisson . . . . . . . . . . . . . . . . 112
4.1.3 Repartitia hipergeometrica . . . . . . . . . . . . 115
4.2 Repartitii continue . . . . . . . . . . . . . . . . . . . . 117
4.2.1 Repartitia normal . . . . . . . . . . . . . . . . 117
4.2.2 Repartitia normal redusa . . . . . . . . . . . . 119
4.2.3 Repartitia lognormal . . . . . . . . . . . . . . 120
4.2.4 Repartitia exponential negativ . . . . . . . . 123
4.2.5 Repartitia Weibull . . . . . . . . . . . . . . . . 125
2
4.2.6 Repartitia ................... 127
5 Teste statistice 131
5.1 Teste statistice pentru un esantion . . . . . . . . . . . 134
5.1.1 Testul Z pentru un esantion . . . . . . . . . . . 134
5.1.2 Testul t pentru un esantion . . . . . . . . . . . 140
5.1.3 Testul binomial . . . . . . . . . . . . . . . . . . 144
2
5.1.4 Testul ..................... 145
5.2 Teste statistice pentru doua esantioane . . . . . . . . . 150
5.2.1 Testul Sign (al semnelor) . . . . . . . . . . . . . 150
4 CUPRINS

5.2.2 Testul t pentru doua esantioane independente . 152


5.2.3 Testul Wilcoxon pentru doua esantioane inde-
pendente . . . . . . . . . . . . . . . . . . . . . . 158
5.2.4 Testul F pentru doua esantioane independente . 160
5.2.5 Testul Kolmogorov-Smirnov . . . . . . . . . . . 164
5.2.6 Puterea unui test . . . . . . . . . . . . . . . . . 170
5.3 Elemente de analiz dispersional . . . . . . . . . . . . 174

6 Studiul calitatii produselor 177


6.1 Indicatori de conformitate . . . . . . . . . . . . . . . . 177
6.2 Estimarea si veri carea indicatorilor . . . . . . . . . . . 179
6.3 Controlul calitatii productiei . . . . . . . . . . . . . . . 186
6.4 Planuri de control atributiv (PCCVI) . . . . . . . . . . 188
6.5 Controlul prin esantionare la receptie . . . . . . . . . . 191
6.6 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . 198

7 Fiabilitatea sistemelor 219


7.1 Indicatori de abilitate . . . . . . . . . . . . . . . . . . 219
7.1.1 Probabilitatea de buna functionare R(t) . . . . 220
7.1.2 Probabilitatea de defectare F(t) . . . . . . . . . 221
7.1.3 Cuantila timpului de functionare . . . . . . . . 222
7.1.4 Densitatea de probabilitate a caderilor f(t) . . . 222
7.1.5 Rata de defectare z(t) . . . . . . . . . . . . . . 223
7.1.6 Media timpului de buna functionare (MTBF) . 225
7.1.7 Dispersia D si abaterea medie patratic. . . 226
7.1.8 Limitele indicatorilor de abilitate . . . . . . . . 227
7.2 Fiabilitate previzional . . . . . . . . . . . . . . . . . . 227
7.2.1 Factori ce in uenteaz abilitatea . . . . . . . . 229
7.2.2 Studiul abilitatii sistemelor prin metoda arbo-
rilor de defectare . . . . . . . . . . . . . . . . . 230
7.2.3 Modelul proceselor MARKOV . . . . . . . . . . 231
7.3 Fiabilitate parametric . . . . . . . . . . . . . . . . . . 250
CUPRINS 5

7.3.1 Obiective . . . . . . . . . . . . . . . . . . . . . 250


7.3.2 Metode pentru studiul abilitatii parametrice . 251
7.3.3 Metoda Monte Carlo . . . . . . . . . . . . . . . 253
7.4 Fiabilitate experimental si operational . . . . . . . . 255
7.5 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . 256

8 Probleme propuse 274

Bibliogra e 278

Glosar 283
Lista de guri

2.1 Fereastra de lucru . . . . . . . . . . . . . . . . . . . . . 18


2.2 Fisier C++ . . . . . . . . . . . . . . . . . . . . . . . . 74
2.3 Data frame . . . . . . . . . . . . . . . . . . . . . . . . 78
2.4 Trei gra ce densitate de probabilitate . . . . . . . . . . 92
2.5 Gra ce cu adnotari . . . . . . . . . . . . . . . . . . . . 95
2.6 QQ norm . . . . . . . . . . . . . . . . . . . . . . . . . 96

3.1 Repartitia Beta . . . . . . . . . . . . . . . . . . . . . . 103

4.1 Repartitia Binomial . . . . . . . . . . . . . . . . . . . 111


4.2 Repartitia Poisson . . . . . . . . . . . . . . . . . . . . 114
4.3 Repartitia Lognormal . . . . . . . . . . . . . . . . . . 122
4.4 Generare nr. aleatoare prin repartitia exponential . . 124
4.5 Distributie Weibull . . . . . . . . . . . . . . . . . . . . 126
4.6 Repartitia 2 . . . . . . . . . . . . . . . . . . . . . . . 130
5.1 Testul T . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.2 Testul Komogorov-Smirnov doua selectii . . . . . . . . 169
5.3 Puterea unui test . . . . . . . . . . . . . . . . . . . . . 173

6.1 Caracteristica operativ . . . . . . . . . . . . . . . . . 197


6.2 Curbele densitatii empirice . . . . . . . . . . . . . . . . 201
6.3 Exemplu fotodiode . . . . . . . . . . . . . . . . . . . . 211

6
LISTA DE FIGURI 7
2
6.4 Test Kolmogorov + .................. 214
7.1 Teste de anduranta . . . . . . . . . . . . . . . . . . . . 262
7.2 Model Markov continuu . . . . . . . . . . . . . . . . . 268
7.3 Disponibonibilitatea sistemului pentru un singur depa-
nator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
7.4 Disponibilitatea sistemului pentru doi depanatori . . . 272
Introducere

Am ales sa prezentam ^n aceast lucrare un studiu privind ingi-neria


calitatii si abilitatii folosind mediul RStudio. O mare parte din exemplele
prezentate au fost utilizate ^n cadrul orelor de laborator de la
specialitatile Calculatoare, Electronica Aplicat si Electromecanic din
departamentul de Calculatoare si Inginerie Electrica a Unversitatii Lucian
Blaga din Sibiu. Pentru a putea lucra cu acest software este necesar o
pregatire temeinica ^n teoria probabilitatilor si ^n statistic matematica,
adic se presupune cunoasterea termenilor de: variabil aleatoare, functie
densitate de probabilitate, functie de repartitie, test statistic, etc

Prima variant de R a fost creat ^n Noua Zeelanda, ^n anul 1991, de


Ross Ihaka si Robert Gentleman. Limbajul R este un limbaj orientat
obiect, adic variabilele cu care se lucreaz sunt obiecte.
^

Ross Ihaka scria ^n 1998:" In august 1993 Robert Gentleman si cu


mine am plasat copii ale R-ului la Statlib si am facut un mic grup pe s-
news. Unii ne-au descarcat copiile si s-au oferit sa colaboreze. Cel mai
de nadejde a fost Martin Maehler de la ETH Zurich care ne-a convins sa
lansam codul sursa ca un software gratuit. La ^nceput am avut ezitari,
dar ^n iunie 1995 am convenit sa punem la dispozitia tuturor codul sursa
^n conditiile fundatiei FRF".
Pachetul de baza, este acela care se descarc de la http://cran.r-
project.org, si este su cient pentru a putea rula RStudio pe orice plat-

8
LISTA DE FIGURI 9

forma Windows, acest pachet contine functiile fundamentale ale limba-


jului. Manualul complet \RStudio Reference Manual" ^n care este
continut si kitul de instalare, RStudio are 1884 de pagini din care 60
pagini reprezinta indexul cu peste 4000 de functii puse la dispozitia
utilizatorilor care stiu sa le foloseasca, iar cei mai putin initiati pot folosii
help-ul on line folosind instructiunea help.search ( ).
Cunoscatorii apreciaz RStudio pentru facilitatile sale gra ce; de
asemenea exista macroinstructiuni care ofera rezultate foarte bune(de
exemplu pentru a gasi minimul, maximul, mediana unui sir de date sau
pentru ai face histograma, teste de concordanta, teste anova etc).
Informatii referitoare la proiectul RStudio pentru statistic se pot accesa la
adresa de web
https://www.r-project.org/.
Pentru a descarca softul trebuie accesat un server CRAN (Com-
prehensive R Archive Network) de la adresa
https://cran.r-project.org/mirrors.html.
Ultima versiune a limbajului R este versiunea R-3.3.2 pentru 32 de
^

biti si 64 de biti. In mod implicit se instaleaz versiunea pe 32 de biti


pentru Windows, dar se poate alege versiunea pe 64 de biti. Evident ca
fanii sistemelor de operare Linux sau MacOX au la dispozitie variantele
corespunzatoare.
Odat cu RStudio se descarc si o serie de pachete de programe (numite
si pachete standard), dar sunt disponibile si alte pachete de programe
RStudio prin intermediul CRAN (Comprehensive R Archive Network
{ http://CRAN.R-project.org) care contin diferite variante ale sistemului
RStudio si ale pachetelor de programe. Folosirea e - cienta acestui mediu
de programare este conditionat de legatur la Internet.

RStudio are o multime de functii pentru analiza statistic si gra-ca;


cele recente au vizualizare instantanee ^n propria fereastr si pot
salvate ^n diferite formate (jpg, png, bmp, ps, pdf, emf, pictex, x g;
formatele disponibile pot depinde de sistemul de operare). Rezultatele
10 LISTA DE FIGURI

unei analize statistice sunt a sate pe ecran, c^ateva rezultate interme-diare


(probabilitati, coe cienti de regresie, valori reziduale, . . . ) pot
salvate, scrise ^ntr-un sier, sau folosite ^n analize ulterioare.
Exista alte doua colectii principale de pachete RStudio: Omega-hat
Project for Statistical Computing care se axeaz pe aplicatii web-based si
interfete ^ntre software-uri si limbaje, si Bioconductor Project specializat
^n aplicatii bioinformatice (^n special pentru analiza micro-datelor).

Limbajul RStudio permite utilizatorului, spre exemplu, sa pro-


grameze grupurile de instructiuni pentru analiza succesiva a seturilor de
date. De asemenea este posibila combinarea ^ntr-un singur pro-gram a
mai multor functii statistice pentru a efectua analize mai com-plexe.
Utilizatorii RStudio pot bene cia de o gam larg de programe ^ntocmite
pentru Statistic si care sunt disponibile pe Internet, majo-ritatea put^and
folosite direct ^n RStudio.
Exista carti specializate pe diverse domenii, unde se utilizeaz sta-
tistica si unde se arat cum se poate utiliza RStudio pentru calculele
statistice. ([3] , [7] , [9]).
Autorii multumesc pe aceast cale echipei R-omania care se ocupa de
sustinerea RStudio Project ^n Rom^ania, prin intermediul carora am avut
acces la documentatia necesar ^n elaborarea capitolului II al acestei carti
(w.w.w.r-project.ro), precum si domnilor prof.dr.ing Remus Brad,
conf.dr.ing Arpad Gellert de la Universitatea Lucian Blaga din Sibiu si
conf.dr.mat Radu T.Tr^ambitas de la Universitatea Babes-Bolyai Cluj
Napoca care ne-au ajutat foarte mult la elaborarea acestei carti.

Primul capitol l-am dedicat unei prezentari succinte a unor notiuni


fundamentale din teoria probabilitatilor si statistic matematica, uti-lizate
^n studiul calitatii si abilitatii produselor.
Capitolul II este dedicat programarii ^n RStudio, capitolul III le-gilor
de repartitie apriori, capitolul IV distributiilor statistice utilizate ^n
studiul calitatii si abilitatii, capitoul V testelor statistice, iar ulti-
LISTA DE FIGURI 11

mele capitole sunt dedicate indicatorilor de conformitate si abilitate,


procese Markov utilizate ^n abilitate.
Orice observatii privind aceasta carte sunt binevenite pe adresele de
e-mail:
daniel.volovici@ulbsibiu.ro, nicolae.pop@ulbsibiu.ro.
Capitolul 1
Preliminarii

1.1 Medii statistice.Indicatori ai variatiei


De nitie 1 Fie x1; x2;:::xn valorile distincte ale unei caracteristici va-
riabile ^ntr-o selectiei de volum n: Marimea
x + x + :::x
x= 1 2 n
n
reprezinta media aritmetic a selectiei.
Media aritmetic pentru date negrupate are urmatoarele proprietati:
0 Suma algebric a abaterilor diferitelor valori de la medie este egal
cu zero.
1 Fie a o constanta, are loc inegalitatea:
0 ∑
(xi a)2(xi x )2
i i
De nitie 2 Media geometrica este dat de urmatoarele formule:
p
g = n
x1 x2:::xn
∑i

1 n
log g = n log xi
=1

12
1.1. MEDII STATISTICE.INDICATORI AI VARIATIEI 13

De nitie 3 Valoarea inversa a mediei aritmetice a valorilor inverse ale


caracteristicii variabile se numeste media armonic a selectiei:
n
h= n
∑i
1
x
i
=1

De nitie 4 Fie x1 < x2;::: < xn < xn+1 < ::: < x2n+1 valorile
caracteristicii intr-o selectie oarecare de volum cel putin egal cu 2n+1;
prin de nitie
x =M
n+1 e
se numeste mediana, iar ^n cazul ^n care seria statistic contine
5888 valori
x +x
Me = n n+1
2
Intervalul care contine pe xn=2 se numeste interval median.

De nitie 5 Moda este valoarea caracteristicii variabile careia ^i co-


respunde frecventa maxima, iar un interval care contine modulul se
numeste interval modal.

Dac (li 1; li) putem lua drept valoare a modei repartitiei mijlocul
acestui interval, adic
′ 1
M = (l + l )
0 2 i 1 i

Indicatorii folositi pentru caracterizarea variatiei se bazeaz pe cal-


culul unor abateri, abaterea medie absolut reprezinta media aba-^

terilor fata de media aritmetic luate ^n valoare absolut . In practica,


pentru caracterizarea ^mprastierii valorilor variabilei cu ajutorul aba-terii
medii absolute, se acord preferinta medianei, deoarece marimea abaterii
medii absolute este minima, dac marimea fata de care se cal-culeaz aceast
abatere coincide cu mediana.
14 CAPITOLUL 1. PRELIMINARII

Indicatorul abatere medie absolut se utilizeaz ^n cazul unui numar


redus de date si atunci c^and problema luat ^n studiu nu necesita o analiz
ulterioar .

De nitie 6 Amplitudinea reprezinta diferenta dintre valorile ex-treme pe


care le ia caracteristica variabil .
^
Observatia 1 In cazul selectiilor de volum mic, mai ales c^and selectia se
repeta si sunt folosite rezultatele selectiilor anterioare, amplitudinea este
un indicator ce da bune rezultate. Acestea a dus la folosirea ei ^n cazul
veri carilor speciale ale calitatii productiei.

Indicatorul care caracterizeaz cel mai bine variatia este dispersia.

De nitie 7 Fiind dat variabila aleatoare discreta:


(x x x
X: 1 2 ::: n )
p1 p2 ::: pn

de nim media, i
n
m= xipi
=1

dispersia ∑i
2 1 n
2
= (xi x )
n =1

si abaterea medie patratic

u n

= u 1 ∑ pi(xi
v n m)
2
t

i=1
1.1. MEDII STATISTICE.INDICATORI AI VARIATIEI 15

Observatia 2 Dispersiile (respectiv abaterile medii patratice) sunt de-


osebit de utile, atunci c^and se compar doua sau mai multe serii sta-
tistice.

Pentru o mai buna interpretare a rezultatelor obtinute se utilizeaz coe


cientul de variatie
s
v=x
Diferentele mici ^n forma variatiei se ^nregistreaz cu ajutorul momen-
telor de selectie.

De nitie 8 Momentul de selectie de ordin r este dat de relatia

1 ∑n r
mer = n nix i
i=1

De nitie 9 Momentele centrate sunt momentele calculate ^n ra-port cu


media aritmetic x; adic
∑i
1 n
mr′ =
n
ni(xi x )r
=1

unde ni sunt frecventele de aparitie al elementelor xi:

Observatia 3 Momentul centrat de ordin doi m′2 este tocmai dispersia de


selectie 2:

Forma unei repartitii se poate aprecia si din punctul de vedere al


gradului de asimetrie pe care ^l reprezinta. Asimetria unei repartitii
statistice este cu at^at mai mare cu c^at diferenta dintre x si M0′ este mai
mare. Putem a rma ca:

As = x M0′
16 CAPITOLUL 1. PRELIMINARII

Asimetria relativ se determina cu ajutorul formulei

M0′
As = x

iar dac Me se localizeaz mai precis dec^at M0′

Me )
As = 3(x

Din cele prezentate rezulta ca asimetria este nula pentru repartitia


normal si pentru orice repartitie simetrica.

1.2 Integrale Euleriene


De nitie 10 Integrala
∫1
a) = xa 1e xdx
0

se numeste integrala de speta a II-a a lui Euler.

Propozitie 1 Integrala de speta II-a a lui Euler are urmatoarele pro-


prietati:
a) = (a 1) a 1)
p
= 1 ; =2) =
n) = (n 1)!

∫b ∫1
a) = xa 1e xd x + xa 1e xd x
0 b
1.2. INTEGRALE EULERIENE 17

De nitie 11 Integrala:

∫ 1
B(p; q) = 0 2 xp 1(1 x)q 1dx + ∫1 xp 1(1 x)q 1dx
2
1

∫2 d x ∫1
dx
21 p + 21 p x1 1 q
;
p (1 x)
1
0 2

se numeste integrala de speta I a lui Euler.

Propozitie 2 Au loc urmatoarele proprietati:

a 1
B(a; b) = B(a 1; b)
a+b 1
B(a; b + 1) = b B(a; b)
a+b
a) b)
B(a; b) =
a + b)
a
B(a + 1; b) = b + a a; b)

De nitie 12 Integrala

1 2 1 1 p2

∫0 e x dx = 2 2) = 2
se numeste integrala Euler-Poisson.
18 CAPITOLUL 1. PRELIMINARII

1.3 Functia de repartitie. Densitatea de


probabilitate
De nitie 13 Fie o variabil aleatoare. Functia F (x) de nita pen-tru 8x 2 R
prin:
F (x) = P (t = (t) < x)
se numeste functia de repartitie a variabilei aleatoare :

De nitie 14 Dac A 2 K si P(A)>0 atunci

F (x =A) = P (ft = (t) < xg = A)

se numeste functia de repartitie conditionat de evenimentul A.

Functia de repartitie a unei variabile aleatoare discrete se numeste


functia de repartitie de tip discret.
Proprietati

0
1 F (x1) F (x2); 8 x1 < x2 (x1; x2 2 R) adic functia de repartitie
este monoton crescatoare,

20 Functia de repartitie este continua la st^anga,


F (x) = F (x 0)

30 F (-1) = 0; F (+1) = 1
40 Fie o variabil aleatoare a carei functie de repartitie este F (x)
are loc:

P (a b) = F (b) F (a) + P ( = b); a < b; a; b 2 R


1.3. FUNCTIA DE REPARTITIE. DENSITATEA DE PROBABILITATE19

De nitie 15 Fie o variabil aleatoare a carei functie de repartitie este F


(x): Dac exista o functie real f de nita pe R si integrabil a.^.
∫x
F (x) = f(u)du

pentru 8x 2 R atunci numim functia f densitatea de repartitie sau


densitatea de probabilitate.
Observatia 4 Dac F are o densitate de repartitie f atunci
′ F (x + ∆x) F (x)
f(x) = F (x) = lim =
∆x!1 ∆x
= lim P (x< x + ∆x)
∆x!1 ∆x
rezulta
P (x < x + ∆x) = f(x)dx
Proprietati
1. f(x) 0; 8x 2 R

∫1
23 f (u)du = 1

24 Pentru orice a < b reale are loc relatia ∫b


P (a < b) = f(u)du
a

Observatia 5 Proprietatile 1, 2 constituie conditii su ciente pentru ca o


functie f sa e densitate de probabilitate.
Variabilele aleatoare sunt caracterizate complet prin functiile lor de
repatitie.
20 CAPITOLUL 1. PRELIMINARII

1.4 Transformata lui Laplace


De nitie 16 Tranformata lui Laplace a unei functii f (t) ; 0 < t <
_

1 este o functie de nita astfel:


1 b
st st
f t e f t dt lim e f(t)dt; dac exista
=
$f ()g = ∫0 () b!1 ∫0
Teorema 1
1
$ featg = s a; s > a (1.1)


$ (y (t)) = sY (s) y(0) (1.2)
Corolar 1
1
$f1g = s (1.3)
De nitie 17 Spunem ca functia f(t) are un ordin exponential,
dac 9 c; M 2 R si un numar natural T > 0 astfel nc^at
j f(t)j M ect; t T (1.4)
Teorema 2 First Translation Theorem (FTT) 8 a 2 R atunci
at
$ fe f(t)g = F (s a); F (s) = $ ff(t)g (1.5)
at
5888 fe f(t)g = $ ff(t)gs!s a
De nitie 18 Dac $ ff(t)g; atunci f(t) este inversa transformatei Laplace ;

1
f (t) = $ fF (s)g (1.6)

Teorema 3 Dac f (t) este continua, f (t) are derivata continua pe
portiuni , f(t) ^ndeplineste conditia (1.4) atunci:

$ f f (t)g = sF (s) f(0) (1.7)
Capitolul 2

Mediul de programare
RStudio

2.1 Prezentare general


Cu R se poate lucra din linia de comand
^
sau cu ajutorul unei
interfete gra ce; In cele ce urmeaz vom folosi o astfel de interfata gra ca:
RStudio care este open-source si poate folosita pe sistemele de operare:
Linux, Windows sau Mac.
La lansarea ^n executie a mediului de programare RStudio apare
urmatoarea fereastr (2.1):

21
23 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Figura 2.1: Fereastra de lucru

RStudio contine uzual patru paneluri (^ncep^and din st^anga sus, ^n


sens geometric): unul ^n care se pot edita si executa scripturile R (care
contin functii si comenzi) sau sierele de date, unul dedicat vizualizarii
variabilelor, istoricului comenzilor etc., ^n al treilea apar gra cele, se
poate parcurge help-ul atasat comenzilor si continutul sierelor din
directorul curent, iar ultimul panel este cel care contine prompterul liniei
de comand >, aici se pot executa comenzi R.
O sesiune trebuie sa ^nceap prin setarea directorului de lucru: din
meniul Session ->Set Working Directory ->Choose Directory si se va
termina prin salvarea spatiului de lucru ^n fereastra de dialog, la
^ntrebarea "Save workspace image to /.RData?" alegeti :"Save" din
Session -> Save Workspace As).
2.1. PREZENTARE GENERALA 23

Pentru a a a care este directorul de lucru, se va da comanda:

>getwd()

Pentru a modi ca calea se va folosii comanda:

>setwd("<Location of...")

Observatia 6 Dac dorim sa facem o extensie a directorului de lucru se


foloseste comanda:
>path.expand(path)

Exemplul 1 >path.expand("~/R")
[1] "C:/Users/DANIEL/Documents/R"
>setwd("C:/Users/DANIEL/Documents/R")
5888 getwd()
[1] "C:/Users/DANIEL/Documents/R"
^
In meniul Tools-Install packages se gasesc optiuni de instalare separat
a unor pachete suplimentare de programe specializate pe di-verse
domenii prin care posibilitatile lui RStudio se pot extinde foarte mult. Se
poate lucra astfel:

e ^n regim interactiv: ^n fereastra Rconsole (partea st^ang jos a


ecranului), dupa prompter-ul >, se scrie o comand accep-tat de
RStudio, apoi se apas tasta Enter si rezultatul apare imediat mai jos
^n aceeasi fereastra, (dac apare + ^nseamn ca instructiunea se
complecteaz pe r^andul urmator),

e prin script-uri, ^n regim de programare: comenzile de calcul


sunt grupate ^ntr-un sier cu extensia .r care poate apelat ^n mai
multe moduri.
23 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Un sier script poate scris ^n orice editor de text, dar RStudio are un
editor ce se apeleaz din meniul File prin fOpen script...sau New scriptg .

Fisierul script poate executat dupa ce se ^ncarc ^n mediul RStudio prin


fFile -> Open script...g sau se poate folosi direct functia R fsource()g,de
exemplu, presupunand ca sierul script se numeste prim.r si se a a ^n
directorul de lucru curent, se da comanda scrisa la promp-terul >

>source("prim.r")

va avea ca efect ^ncarcarea ^n spatiul de lucru a sierului si execu-


tarea comenzilor continute ^n sierul prim.r.
Pentru stergerea continutului consolei se foloseste cmanda CTRL+l
sau din meniul EDIT ultima optiune.
Rstudio dispune de un mecanism de rechemare a comenzilor exe-
cutate ^n linia de comand ^n fereastra RConsole. Se procedeaza ast-fel:
^n fereastra dreapta sus optiunea history dublu click pe comanda
selectat . Acestea pot reexecutate sau modi cate folosind tastele de
navigare si apoi executate. Directorul curent (de lucru) poate a at prin
comanda getwd() si poate xat si prin comanda se-twd("directorul de lucru
dorit"). RStudio dispune de functii care permit obtinerea rapid de
informatii referitoare la functiile si faci-litatile sistemului RStudio instalat
pe calculatorul propriu. Pentru a obtine informatii despre facilitatile
oferite de functia help(), se exe-cuta comanda:

> help.start()

Se va lansa o pagin web cu o serie de link-uri care permit accesarea


informatiilor legate de sistemul RStudio. Pentru a obtine informatii
despre o anumit functie RStudio, de exemplu qqplot, se executa comanda
2.1. PREZENTARE GENERALA 25

> help(qqplot)

sau comanda alternativ

> ?qqplot

^n fereastra dreapta jos se a seaz informatii referitoare la functia


qqplot.
Dac ^n linia de comand se tasteaza:

> ??qqplot

Aceasta va deschide un Web browser cu o pagin ^n care se a seaz


informatii referitoare la functia qqplot. Pentru functiile speci cate prin
cuvinte cheie, ca de exemplu, if, while, function, argumentele trebuie
incluse ^ntre ghilimele:

> help("if")

Pentru a a sa: siere, titluri, obiecte, etc. ce contin un anumit sir de


caractere, se foloseste comanda:

5888 help.search(sir de caractere) De


exemplu:

5889 help.search("binomial")
sau echivalent
> ?binomial

^n fereastra dreapta jos se a seaz informatii referitoare la functia


binomial. Pentru ^ncarcarea de exemplu a pachetului grid, putem folosi
comanda:

> library(grid)
23 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Dac dorim sa a am informatii despre un anumit pachet de pro-grame,


de exemplu utils tastam ^n linia de comanda:
> library(help="utils")
Pentru vedea ce pachete de programe RStudio sunt disponibile ^n
versiunea curenta, se poate folosi functia:
> library()
^
In fereastra st^anga sus va aparea:
Packages in library:
`C:/Users/Daniel/Documents/R/win-library/3.2'
acepack ace() and avas() for selecting regression transformations
assert that Easy pre and post assertions.
base64enc Tools for base64 encoding
bitops Bitwise Operations
Functia apropos gaseste toate functiile ale caror nume contin sirul de
caractere dat ca argument; se caut doar ^n pachetele ^ncarcate ^n
memorie :
> apropos(help)
768 "help" ".helpForCall" "help.search"
0 "help.start"
Pentru a vizualiza exemple referitoare la anumite functii R, de
exemplu pentru functia median, se poate proceda astfel:
> example(median),
iar raspunsul sistemului este urmatorul:

median> median(1:4) # = 2.5 [even number] [1] 2.5

median> median(c(1:3, 100, 1000)) # = 3 [odd, robust] [1] 3


2.1. PREZENTARE GENERALA 27

Pentru a vizualiza programe disponibile se utilizeaz comanda:


>demo()
Spre exemplu o comanda:
>demo(persp)
va a sa diverse metode de reprezentari gra ce ^n 3D.

Observatia 7 Trebuie precizat ca orice sir de caractere precedat de


simbolul `#' este interpretat ca ind un comentariu. Comenzile se pot
separa ^n RStudio e prin simbolul punct si virgula e se pot scrie pe linii
diferite, iar dac linia de comanda este prea lunga se tasteaz Enter, iar pe
linia urmatoare apare semnul + si se continua.

Codul scris ^n limbajul RStudio este cod interpretat, instructiunile


sunt compilate la un stadiu intermediar (bytecode), de unde sunt
transformate ^n cod depenedent de masina ^n momentul executiei.
Acest proces de interpretare face ca timpul de executie sa e mai lung
dec^at pentru programele compilate de la ^nceput ^n cod-masina
executabil.
Sugeram utilizarea editorul propriu (apelabil cu optiunea \New script"
din meniul File) care are avantajul ca din el se poate rula o portiune din
program selectat ^n prealabil prinr-un clic dreapta si alegerea optiunii

\Run line or selection" din meniul contextual.


Dac programul a fost salvat ^n hard disc ^n sierul prog.r, atunci
rularea lui se poate face cu comanda:
source(``prog.r'')

dac este ^n directorul curent, altfel trebuie indicat si calea. Toate


instructiunile care se scriu la consola ^ntr-o sesiune de lucru
pot salvate la nal ^n sierul text .Rhistory (\Save history" din
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

meniul File) de unde se pot rula din nou cu comanda \Load history"
^

(din meniul File). In acest fel se poate repeta prelucrarea unor date ^ntr-o
sesiune noua sau se poate scrie un program dupa ce se executa pas cu pas
instructiunile lui ca si comenzi la consola.
Apare la consola mesajul:

Save workspace image to ~/.RData? [y/n]:y

Pentru a vedea care sunt caracterele speciale suportate de RStudio


scriem urmatorul script:

maybeOps <- objects("package:base", all.names=TRUE)


nameRegexp <- "^[.[:alpha:]][._[:alnum:]]*$" maybeOps <-
maybeOps[-grep(nameRegexp, maybeOps)] nameGetsRegexp <-
"^[.[:alpha:]][._[:alnum:]]*<-$" maybeOps <- maybeOps[-
grep(nameGetsRegexp, maybeOps)] S3MethodRegexp <- "[.]
[[:alpha:]][._[:alnum:]]*$" maybeOps <- maybeOps[-
grep(S3MethodRegexp, maybeOps)] maybeOps

Obtinem rezultatul:

5888"-" "!" "!=" "$" "$<-""%%" "%*%" "%/%""%in%""%o%""%x%"


23 "&" "&&" "(" "*" "/" ":" "::" ":::" "@" "@<-" "["
0 "[[" "[[<-" "[<-" "^" "{" "|" "||" "~" "+" "<" "<-"
0"<<-" "<=" "=" "==" ">" ">="

Pentru a a a care sunt cuvintele cheie rezervate, scriem urmatorul


script:

allObjects <- objects("package:base", all=TRUE) primitives


<- sapply(allObjects, function(x)is.primitive(get(x)))

primFuns <- allObjects[primitives]; primFuns


^
2.2. TIPURILE DE DATE IN R. 29

Retinem urmatoarele macroinstructiuni:

>mean(x)# calculeaza media unui vector x >sd(x) #


calculeaza abaterea medie patratica >var(x)# calculeaza
dispersia >summary(x) # xmin, xmax,mediana, media,
prima cuantila, a treia cuantila.

De asemnenea este util sa tastam frecvent comanda:

> update.packages()

care veri ca versiunile pachetelor instalate cu cele disponibile pe


CRAN (aceast comand poate apelat si din meniul \Tools", optiunea
"Check for Package Updates").
Utilizatorul poate apoi sa actualizeze pachetele cu versiuni mai re-
cente dec^at cele instalate pe calculator. Se pot utiliza comenzi matlab,
dar trebuie instalat pachetul R.matlab astfel:

> install.packages("R.matlab")

Iesirea din sesiunea RStudio se poate face utiliz^and comanda:

> q()

sau echivalent Ctrl+Q sau din meniul File alegem optiunea Quit.

2.2 Tipurile de date ^n R.


2.2.1 Obiecte
RStudio lucreaz cu obiecte care sunt, desigur, caracterizate de numele
lor si de continut, dar si de atribute care speci ca tipul datelor reprezentate
^n obiect. Pentru a ^ntelege utilitatea acestor atribute,
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

consideram o variabil care poate lua valorile 1, 2, sau 3. O asemenea


variabil poate de tip integer (de exemplu, numarul bilelor dintr-o urna)
sau codi carea unei variabile categoriale (de exemplu, culoarea lor albe,
negre, rosii)
Este clar ca analiza statistic a acestei variabile nu va aceeasi ^n
ambele cazuri: ^n RStudio, atributele unui obiect dau informatia
^

necesar . In termeni mai tehnici si mai generali, actiunea unei functii


asupra unui obiect depinde de atributele acestuia din urma.
Toate obiectele au doua atribute intrinseci: categoria si lungimea.
Categoria reprezinta tipul de baz al elementelor obiectului; exista patru
categorii principale: numeric, caracter, complex, si logic (FALSE or
TRUE). Exista si alte categorii ^nsa acestea nu reprezinta date, ca de
exemplu functia sau expresia.
Lungimea este numarul de elemente ale obiectului. Pentru a a sa
categoria si lungimea unui obiect, se pot utiliza functiile mode si,
respectiv, length:
0 x <- 1
1 mode(x)
0 "numeric"
> length(x)
1
> A <- "Produs_conform"; compar <- TRUE; z <- 1i >
mode(A); mode(compar); mode(z)
0 "character"
0 "logical"
0 "complex"

Indiferent de categorie, datele lipsa sunt reprezentate prin NA (not


available). O valoare numerica foarte mare poate speci cat cu ajutorul
unei notatii exponentiale:
> N <- 2.1e23
^
2.2. TIPURILE DE DATE IN R. 31

>N
[1] 2.1e+23
RStudio reprezinta ^n mod corect valori numerice in nite, cum ar
1 cu Inf si -Inf, sau valori nenumerice cu NaN (not a number ).
0 x <- 5/0
1 x
0 Inf
> exp(x)
Inf
> exp(-x)
0 0
>x-x
0 NaN
O valoare a categoriei de tip caracter este introdusa cu ghilimele
duble ". Este posibil sa includa ultimul caracter ^n valoare dac acesta
urmeaz un backslash n. Cele doua caractere n" vor tra-tate ^mpreuna ^n
mod speci c de c^ateva functii, cum ar cat pentru a sarea pe ecran, sau
write.table pentru scrierea pe hard-disk .
0 x <- "Double quotes \" delimitate R's strings."
1 x
0 "Double quotes \" delimitate R's strings." > cat(x)

Double quotes " delimitate R's strings.


Ca o alternativa, variabilele de tip caracter pot delimitate cu ghilimele
simple ('); ^n acest caz nu este necesar sa ^nlocuim ghilimelele duble cu
backslash-uri (^nsa trebuie sa existe ghilimele simple!):
23 x <- 'Double quotes " delimitate R\'s strings.'
24 x
[1] "Double quotes \" delimitate R's strings."
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Tipurile fundamentale de date compuse din date simple sunt vecto-rii,


matricele, blocurile multidimensionale (array), data.frame, listele. Se
utilizeaz de asemenea NA pentru date indisponibile si NaN pentru valori
ilegale (de exemplu nedeterminarile din analiza matematica), dar pot
create tipuri noi de date [21, pag 11].
Un vector este o variabil ^n sensul general valabil, un factor este o
variabil categoriala, un sir este un tabel cu k dimensiuni, o matrice ind un
caz particular de sir cu k = 2. De retinut ca elementele unui sir sau ale
unei matrici sunt toate de acelasi tip. O secventa de date este un tabel
compus din unul sau c^ativa vectori si/sau factori de aceeasi lungime, dar
posibil de tipuri diferite. Un `ts' este un set de date de serii de timp ce
contine atribute aditionale cum ar frecventa si datele. Nu ^n ultimul
r^and, o lista poate contine orice tip de obiect, inclusiv liste!
^
In cazul unui vector, tipul sau/si lungimea sunt su ciente pentru a
^

descrie datele. In cazul altor obiecte, sunt necesare alte informatii care
sunt date de atribute non-intrinseci. Dintre aceste atribute, putem
mentiona dim, ce corespunde dimensiunilor unui obiect. De exemplu, o
matrice cu 2 linii si 2 coloane are pentru dim perechea de valori [2, 2],
^nsa lungimea sa este 4.
Dac sunt pe acelasi r^and instructiunile se separ prin \;" iar dac sunt
pe r^anduri diferite nu e nevoie de vreun semn de separatie. Pentru
comentarea unor sectiuni de program se utilizeaz caracterul
0 la ^nceputul liniei de comentariu. Dupa efectuare unui calcul dac vrem
sa pastram rezultatele ele trebuie atribuite unei variabile.
Atribuirea se face prin <- (variabila care primeste valoarea atri-buita
este V):

V <- expresie
V <- expresie
A=expresie
expresie->V
^
2.2. TIPURILE DE DATE IN R. 33

expresie->V
Atribuirile <- sau -> sunt locale iar << - si
- >> sunt globale.
Atribuirea prin = este echivalenta cu atribuirea - > .

2.2.2 Citirea datelor dintr-un sier


Pentru scrierea si citirea ^n siere, RStudio utilizeaza folderul de lu-
cru. Pentru a gasi acest folder, dam comanda getwd(), iar folderul de
lucru poate schimbat cu setwd("C:/data") sau setwd("/home/-daniel").
Este necesar sa atribuim calea unui sier, dac acesta nu se a a ^n folderul
de lucru. RStudio poate citi date stocate ^n siere text (ASCII) cu
urmatoarele functii:

0 read.table,
1 scan si read.fwf.

RStudio poate de asemenea sa citeasc siere ^n alte formate (Ex-cel,


SAS, SPSS, . . . ) si sa acceseze baze de date de tip SQL, ^nsa functiile
necesare nu se a a ^n pachetul base. Aceste functionalitati sunt foarte e
ciente pentru o utilizare mai avansata a RStudio.
Functia read.table are ca efect crearea unei secvente de date, iar
aceasta este modalitatea principal de citire a datelor ^n forma tabelar . De
exemplu, pentru un sier numit statistica.dat, comanda:
> mydata <- read.table("statistica.dat")
va crea o secventa de date numita mydata, iar ecare variabil va
numita, implicit, V1, V2, . . . si poate accesat individual prin
mydata$V1, mydata$V2,. . . , sau prin mydata["V1"], mydata["V2"],
. . . , sau o alt varianta, prin mydata[, 1], mydata[,2 ], . . .
Exista c^ateva optiuni ale caror valori implicite (de ex. cele utilizate
de RStudio dac ele sunt omise de utilizator)
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

read.table(file, header = FALSE,sep = "",


quote = "\"'", dec = ".",row.names,col.names,as.is = FALSE, na.strings =
"NA", colClasses = NA, nrows = -1,
skip = 0, check.names = TRUE,fill = !blank.lines.skip, strip.white =
FALSE, blank.lines.skip = TRUE, comment.char = "#")

Variantele read.table sunt e ciente din moment ce au diferite valori


implicite:

read.csv(file, header = TRUE,sep = ",",quote="\"",dec=".", fill =


TRUE, ...)
read.csv2(file,header = TRUE,sep = ";",quote="\"",
dec=",",fill = TRUE, ...)
read.delim(file,header = TRUE,sep = "\t",quote="\"",
dec=".",fill = TRUE, ...)
read.delim2(file,header = TRUE,sep = "\t",quote="\"",
dec=",",fill = TRUE, ...)

Functia scan este mai exibila dec^at read.table. O diferenta consta ^n


posibilitatea speci carii tipului variabilelor, ca de exemplu:

> mydata <- scan("statistica.dat", what = list("", 0, 0))

citeste ^n sierul statistica.dat trei variabile, prima este de tip ca-racter,


iar urmatoarele doua sunt de tip numeric.
O alt diferenta important este aceea ca scan() poate utilizat pentru
crearea diferitelor obiecte, vectori, matrici, secvente de date,
^ ^

liste, . . . In exemplul anterior, mydata este o lista de trei vectori. In mod


implicit, dac what este omis, scan() creaz un vector numeric.
Dac datele citite nu corespund tipului asteptat (nici cel implicit, nici
cel speci cat de what), este a sat un mesaj de eroare. Optiunile sunt
urmatoarele:
^
2.2. TIPURILE DE DATE IN R. 35

scan(file = "",what = double(0),nmax = -1,n = -1,sep = "", quote = if


(sep=="\n") "" else "'\"", dec = ".", skip = 0,nlines = 0,na.strings = "NA",

flush = FALSE,fill = FALSE strip.white = FALSE, quiet =


FALSE,
blank.lines.skip = TRUE, multi.line = TRUE,
comment.char = "",allow Escapes = TRUE)

Functia read.fwf poate utilizat pentru citirea unor date ^ntr-un sier ^n
format de dimensiune xa:

read.fwf(file,widths,header = FALSE,sep = "\t", as.is =


FALSE,skip = 0,row.names,col.names, n = -1,buffersize =
2000, ...)

Optiunile sunt aceleasi ca pentru read.table(), cu exceptia widths care


speci ca dimensiunea c^ampurilor (buffersize este numarul maxim de
linii citite simultan).

2.2.3 Salvarea datelor


Functia write.table scrie ^ntr-un sier un obiect, ^n mod caracte-ristic o
secventa de date, dar si alte tipuri de obiecte (vector, matrice, . . . ).
Argumentele si optiunile sunt urmatoarele:

write.table(x, file = "", append = FALSE,quote = TRUE, sep = "


",eol = "\n", na = "NA", dec = ".", row.names = TRUE,col.names =
TRUE, qmethod = c("escape", "double"))

Pentru a scrie mai simplu un obiect ^ntr-un sier, poate utili-zat


comanda write(x, le="statistica.txt"), unde x este numele obiectului (care
poate vector, matrice, sau un sir).
Exista doua optiuni:
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

0 nc (sau ncol) care de neste numarul de coloane din sier ( impli-cit


nc=1, dac x este de tip caracter, nc=5 pentru alte tipuri),

1 append (de tip logic) pentru a adauga datele far stergerea celor
posibil existente ^n sier (TRUE) sau stergerea lor dac sierul exista
deja (FALSE, ^n mod implicit).

Pentru a ^nregistra un grup de obiecte de orice tip, putem utiliza


comanda save (x, y, z, le= "statistica.RData").
Pentru a usura transferul de date dintre diferite zone, poate utilizat
optiunea ascii TRUE.
Datele pot ^ncarcate mai t^arziu ^n memorie cu
load("statistica.RData").
Functia save.image() este un shortcut pentru
save(list =ls(all=TRUE), le=".RData").

2.2.4 Generarea datelor


Secvente regulate
O secventa regulat de obiecte integer, de exemplu de la 1 la 50, poate
generat astfel:
> x <- 1:50
Vectorul rezultat x are 50 de elemente. Operatorul `:' are prioritate
fata de operatorii aritmetici ^n cadrul unei expresii:
> 1:10-1
0 0 1 2 3 4 5 6 7 8 9 > 1:
(10-1)
0 123456789
Functia seq poate genera secvente de numere reale dupa cum ur-
meaza:
^
2.2. TIPURILE DE DATE IN R. 37

> seq(1, 6, 0.5)


[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6
unde primul numar indica ^nceputul secventei, al doilea sf^arsitul, iar
al treilea pasul utilizat pentru generarea secventei.
Se mai poate utiliza si:
> seq(length=9, from=1, to=5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Se pot atribui direct valori utiliz^and functia c:
0 c(1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5) [1] 1.0 1.5 2.0
2.5 3.0 3.5 4.0 4.5 5.0
Este posibil, dac se doreste introducerea unor date prin tastatura,
folosirea functiei scan cu optiunile implicite precum urmeaza:
> z <- scan()
5888 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
0
Read 9 items >
z
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Functia rep creaz un vector cu toate elementele identice:
0 rep(1, 5)
[1] 1 1 1 1 1
Functia sequence creaz o serie de secvente de obiecte integer terminat
ecare cu numerele date ca argumente:
> sequence(4:5)
23 1 2 3 4 1 2 3 4 5 >
sequence(c(10,5))
58881 2 3 4 5 6 7 8 9 10 1 2 3 4 5
23 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Functia gl (eng. generates levels) este foarte utila ^ntrucat gene-reaz


serii regulate de factori. Utilizarea acestei functii se face prin gl(k, n),
unde k este numarul de niveluri (sau clase) si n este numarul de
raspunsuri ^n ecare nivel. Pot utilizate doua optiuni: length pentru a speci
ca numarul de date generate si labels pentru a speci ca numele nivelurilor
factorului.
Exemple [21, pag 18]:
> gl(3, 5)
58881 1 1 1 1 2 2 2 2 2 3 3 3 3 3 Levels:
123
> gl(3, 5, length=15)
23 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 Levels:
123
> gl(2,3,label=c("Produs_Conform", "Produs_Neconform"))
23 Produs_Conform Produs_Conform Produs_Conform
5888Produs_Neconform Produs_Neconform Produs_Neconform
Levels: Produs_Conform Produs_Neconform
> gl(2, 10)
23 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 Levels: 1 2

> gl(2, 1, length=20)


23 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 Levels: 1 2

> gl(2, 2, length=20)


58881 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 Levels: 1 2

Functia expand.grid() creaz o secventa cu toate combinatiile de


vectori sau factori dati ca argumente:

23expand.grid(h=c(60,80),w=c(100, 300),
conformitate=c("Produs_Conform", "Produs_Neconform"))
^
2.2. TIPURILE DE DATE IN R. 39

h w conformitate
1 60 100 Produs_Conform
2 80 100 Produs_Conform
3 60 300 Produs_Conform
4 80 300 Produs_Conform
5 60 100 Produs_Neconform
6 80 100 Produs_Neconform
7 60 300 Produs_Neconform
8 80 300 Produs_Neconform
^
In statistic si simulari este necesar sa se poat genera date alea-toare,
iar RStudio poate face asta pentru o gam larg de distributii de
probabilitate. Aceste functii sunt de forma rfunc(n, p1, p2, ...), unde func
indica probabilitatea distributiei, n numarul de date gene-rate, iar p1, p2,
etc sunt valorile parametrilor distributiei.
Majoritatea acestor functii au echivalente obtinute prin ^nlocuirea
literei r cu d, p sau q pentru a obtine, densitatea de probabilitate (dfunc(x,
...)), distributia cumulativ de probabilitate (pfunc(x, ...)), respectiv
valoarea quantilei (qfunc(p, ...), cu 0 < p < 1). Ultimele seturi de functii
pot utilizate pentru a gasi valorile critice (cuantilele) sau P-values ale
testelor statistice.
De exemplu, valorile critice de 5% ale unei distributii normale:
23qnorm(0.025)
[1] -1.959964
24qnorm(0.975)
[1] 1.959964

2.2.5 Manipularea obiectelor


Crearea obiectelor
Este posibila crearea unui obiect si speci carea modului sau a lun-
gimii, categoriei, etc, aceast manier este interesant din perspec-
23 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

tiva manipularii obiectelor. Este posibila, spre exemplu, crearea unui


obiect 'gol' si modi carea elementelor sale ^n mod succesiv, ceea ce este
mai e cient dec^at combinarea elementelor sale cu c(). Poate de asemenea
foarte convenabil crearea unor obiecte din altele deja exis-tente. De
exemplu, dac se doreste ajustarea unei serii de modele, se pune formula
^ntr-o lista, iar apoi se extrag succesiv elementele pentru a le insera ^n
functia lm.

23 Vector. Functia vector, care are doua argumente mode si length,


creaz un vector ale carui elemente au o valoare depen-denta de
tipul speci cat ca argument: 0 pentru numeric, FALSE pentru logic,
sau "" pentru caracter.

24 Factor. Un factor include nu doar valorile corespunzatoare va-


riabilei categoriale, ci si diferitele niveluri posibile ale acelei va-
riabile (chiar dac nu exista ^n date).

Functia factor creaz un factor cu urmatoarele optiuni:

factor(x,levels = sort(unique(x),na.last = TRUE), labels =


levels,exclude = NA,ordered = is.ordered(x))

levels speci ca posibilele niveluri ale factorului (^n mod implicit


valorile unice ale vectorului x), labels de neste numele nivelurilor, ex-
clude valorile lui x pentru excluderea din niveluri si ordered este un
argument logic ce speci ca dac nivelurile factorului sunt ordonate.
Rechemarea lui x este de tip numeric sau caracter.
Dam urmatoarele exemple:

5888 fact
or(1:3) [1] 1 2 3
Levels: 1 2 3
5889 factor(1:3,levels=
1:5) [1] 1 2 3
^
2.2. TIPURILE DE DATE IN R. 41

Levels: 1 2 3 4 5
0 factor(1:3, labels=c("A","B","C")) [1] A B
C
Levels: A B C
1 factor(1:5,exclude=4)
0 1 2 3 NA 5
Levels: 1 2 3 5

Functia levels extrage posibilele niveluri ale unui factor astfel:

0 ff <- factor(c(2, 4),levels=2:5)


1 ff
2 4 Levels: 2 3 4 5
> levels(ff)

0 "2" "3" "4" "5"

0 Matrice. O matrice este de fapt un vector cu un atribut aditional (dim)


care la r^andul lui este un vector numeric de lungime 2 si de neste
numarul de linii si coloane ale matricii.

O matrice poate creat cu functia matrix:

matrix(statistica = NA,nrow = 1,ncol = 1, byrow =


FALSE,dimnames = NULL)

Optiunea byrow indica, dac valorile date de statistica trebuie sa


completeze succesiv coloanele (varianta implicita) sau liniile (pentru
TRUE). Optiunea dimnames permite atribuirea de nume liniilor si
coloanelor.
Exemple:
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

5888 matrix(data=5,nr=2,
nc=2) [,1] [,2]
[1,] 5 5
[2,] 5 5
5889 matrix(1:6,2,3)
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
23matrix(1:6,2,3,byrow=TRUE)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6

O alt modalitate de creare a unei matrici este atribuirea de valori


corespunzatoare atributului dim (care initial este NULL):
5888 x <- 1:15
5889 x
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > dim(x)

NULL
> dim(x) <- c(5,3) > x

[,1] [,2] [,3]


[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

0 Secventa de date. Am vazut p^an acum ca o secventa de date este


creat implicit de functia read.table; de asemenea este posibila
crearea unei secvente de date cu functia data.frame.
^
2.2. TIPURILE DE DATE IN R. 43

Vectorii astfel inclusi ^n secventa de date trebuie sa e de aceeasi


lungime, sau dac unul dintre ei este mai scurt, este \reciclat" de un
anumit numar de ori.
Dam urmatorul exemplu:
0 x <- 1:4; n <- 10; M <- c(10, 35); y <- 2:4
1 data.frame(x,n)
xn
1 1 10
2 2 10
3 3 10
4 4 10
0 data.frame(x,M) x
M
1 1 10
2 2 35
3 3 10
4 4 35
1 data.frame(x,y)
Error in data.frame(x y) :
arguments imply differing number of rows: 4,3
Dac un factor este inclus ^n secventa de date, trebuie sa e de aceeasi
lungime cu vectorul (vectorii). Este posibila schimbarea nume-lor
coloanelor cu, comanda, data.frame(A1=x, A2=n). De aseme-nea se pot
atribui nume liniilor cu optiunea row.names care trebuie sa e, bineinteles,
un vector de tip caracter si cu lungimea egal cu numarul de linii ale
secventei de date. De retinut ca secventele de date au un atribut dim
similar cu matricile.
5, List. O lista este creat ^ntr-un mod similar cu secventele de date prin
functia list. Nu exista nici o limitare asupra numarului obiectelor
din lista.
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Spre deosebire de data.frame(), numele obiectelor nu sunt luate implicit;


atribuirea vectorilor x si y se ilustreaz ^n exemplul urmator:

23L1 <- list(x,y); L2 <- list(A=x,B=y)


24L1
[[1]]
1 2 3 4 [[2]]
0234
> L2
$A
0 1234
$B
0 234
> names(L1)
NULL
> names(L2)
0 "A" "B"

0 Serii de timp. Functia ts creaz un obiect de clasa "ts" dintr-un vector


(serii de timp singulare) sau dintr-o matrice (serii de timp
multivariate) si c^ateva optiuni care caracterizeaz seriile.

Optiunile, cu valorile implicite, sunt urmatoarele:

ts(statistica = NA,start = 1,end = numeric(0), frequency =


1, deltat = 1,
ts.eps = getOption("ts.eps"),class,names)

unde:
- statistica este un vector sau o matrice,
^
2.2. TIPURILE DE DATE IN R. 45

5888 start timpul primei observatii, e ca este un numar sau un


vector de doua numere ^ntregi (vezi exemplul anterior)
5889 end timpul ultimei observatii speci cat ^n acelasi mod ca si
start frequency numarul de observatii pe unitate de timp
5890 deltat= fractiunea perioadei de esantionare dintre
observatii suc-cesive (ex. 1/12 pentru date lunare);
(Atentie: doar o frequency sau deltat trebuie atribuite)
5891 ts.eps toleranta pentru comparatia seriilor. Frecventele
sunt considerate egale dac diferentele lor sunt mai mici dec^at ts.eps,
class clasa atribuit obiectului; cea implicita este "ts" pentru o serie singu-
lar si c("mts", "ts") pentru serii multivariate names un vector de tip
caracter cu numele seriilor individuale ^n cazul seriilor multivariate; ^n
mod implicit numele coloanelor data sau Series 1, Series 2, . . .
Exemple [21, pag24]:

5889 ts(1:10,start = 2010)


Time Series:
Start =
End = 2019
Frequency = 1
[1] 1 2 3 4 5 6 7 8 9 10
̀ 嬀崀ĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀ㸀ĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀ
ĀᜀĀĀȀ⸀ĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀЀĀȀ⤀ĀᜀĀᜀĀᜀĀᜀĀᜀĀ
ᜀ0ts(1:47, frequency = 12, start = c(2016,2)) Jan Feb Mar
Apr May Jun Jul Aug Sep Oct Nov Dec 2016 1 2 3 4 5 6 7
8 9 10 11
2017 12 13 14 15 16 17 18 19 20 21 22 23
2018 24 25 26 27 28 29 30 31 32 33 34 35
2019 36 37 38 39 40 41 42 43 44 45 46 47
̀ 嬀崀ĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀ㸀ĀᜀĀᜀĀᜀĀᜀĀᜀ
ĀᜀĀᜀĀᜀĀĀȀ⸀ĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀᜀĀЀĀȀ⤀ĀᜀĀ
ᜀĀᜀĀᜀĀᜀĀᜀ1ts(1:10,frequency = 4,start =
c(2016,2)) Qtr1 Qtr2 Qtr3 Qtr4
2016 1 2 3
2017 4 5 6 7
2018 8 9 10
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

ts(matrix(rpois(36, 5),12,3),start=c(2016,1), frequency=12)


Series 1 Series 2 Series 3 Jan
2016 8 5 4
Feb 2016 6 6 9
Mar 2016 2 3 3
Apr 2016 8 5 4
May 2016 4 9 3
Jun 2016 4 6 13
Jul 2016 4 2 6 Aug
2016 11 6 4 Sep
2016 6 5 7 Oct
2016 6 5 7 Nov
2016 5 5 7 Dec
2016 8 5 2

0 Expresia. Obiectele de tip expresie au un rol fundamental ^n RStudio.


O expresie este o serie de caractere care are sens pentru RStudio;
toate comenzile valide sunt expresii. Atunci c^and o
comand este introdusa direct prin tastatur ^
este evaluat de
catre RStudio si executat dac este valid . In multe cazuri, este
necesar construirea unei expresii far evaluarea ei: aceasta este ceea
ce executa functia expression. Este, de asemenea, posibila
evaluarea ulterioar a expresiei cu eval().

0 x <- 3;y <- 2.5;z <- 1


1 exp1 <- expression(x/(y + exp(z)))
2 exp1
expression(x/(y + exp(z)))
0 eval(exp1)
[1] 0.5749019
^
2.2. TIPURILE DE DATE IN R. 47

O expresie poate creat dintr-o variabil de tip caracter. C^ateva functii


recunosc expresiile ca argumente, de exemplu D care returneaz derivate
partiale:

23D(exp1,"x") 1/
(y + exp(z))
24 D(exp1,"y")
-x/(y + exp(z))^2
> D(exp1,"z")
-x * exp(z)/(y + exp(z))^2

Conversia obiectelor
O asemenea conversie va efectuat cu o functie de tipul as.something.
Rezultatul unei conversii depinde, evident, de atribu-tele obiectului
convertit.
^

In general, conversia urmeaz reguli intuitive care se pot regasi ^n


lucrarea [21, pag 26]. Exista functii speciale pentru conversia tipurilor
obiectelor (as.matrix, as.ts, as.data.frame, as.expression,etc). Aceste
functii vor modi ca alte atribute ^n afara de tip ^n timpul conversiei.
Rezultatele sunt, din nou, intuitive ^n general. O situatie frecvent nt^alnit
este conversia factorilor ^n valori numerice.
^

In acest caz, RStudio face conversia cu o codare numerica a nive-


lurilor factorului:

23 fac <- factor(c(1,10))


24 fac
58881 10
Levels: 1 10
> as.numeric(fac)
23 1 2

Aceasta are sens, atunci c^and se considera un factor de tip caracter:


23 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

23fac2 <- factor(c("Produs_Conform","Produs_Neconform"))


24fac2
23 Produs_Conform Produs_Neconform
Levels: Produs_Conform Produs_Neconform >
as.numeric(fac2)
23 1 2

Pentru a converti factorul de tip numeric ^ntr-un vector numeric cu


pastrarea nivelurilor asa cum erau speci cate, trebuie convertit nt^ai ^n
caracter, apoi ^n numeric.

5888 as.numeric(as.character(fac
)) [1] 1 10

Aceast procedura este foarte utila, dac ^ntr-un sier o variabil


numerica are si valori nenumerice. Read.table() ^ntr-o asemenea situatie
data, va citi, implicit, aceast coloan ca si factor.
Operatorii aritmetici si de comparatie actioneaz asupra a doua
elemente (x + y, a < b). Operatorii aritmetici actioneaz nu doar asupra
variabilelor de tip numeric sau complex, dar si asupra variabi-lelor logice;
^n cazul din urma, valorile logice sunt fortat transformate ^n numerice.
Operatorii de comparatie pot aplicati oricarui tip: ei returneaz una sau mai
multe valori logice.
Operatorii logici sunt aplicati unui (!) sau unor obiecte de tip logic si
returneaz una (sau mai multe) valori logice. Operatorii \SI" si \SAU"
exista sub doua forme:

23 cel simplu actioneaz asupra ecarui element din obiect si retur-neaz


tot at^atea valori logice c^ate comparatii s-au facut;
24 cel dublu opereaz asupra primului element al obiectului.

Este necesar utilizarea operatorului \SI" pentru a speci ca o in-


egalitate de tipul 0 < x < 1 care va codat prin: 0 < x & x < 1.
^
2.2. TIPURILE DE DATE IN R. 49

Expresia 0 < x <1 este valida, dar nu va returna rezultatul asteptat: din
moment ce operatorii sunt identici, vor executati succesiv de la st^anga la
dreapta. Comparatia 0< x este executat prima si retur-neaz o valoare de
tip logic care este apoi comparata cu 1 (TRUE sau FALSE < 1): ^n
aceast situatie, valoarea logica este implicit trans-format ^n tip numeric
(1 sau 0 < 1).
5888 x <- 0.5
5889 0 < x < 1
[1] FALSE

Operatorii de comparatie opereaz pe ecare element al ambelor obiecte


de comparat (recicl^and valorile celei mai scurte dac este ne-cesar) si
astfel returneaz un obiect de aceeasi lungime. Pentru a compara `^n
^ntregime' doua obiecte, sunt disponibile doua functii: identical si
all.equal.
23 x <- 1:3; y <- 1:3
24 x == y
5888 TRUE TRUE
TRUE > identical(x, y)
23 TRUE
> all.equal(x, y)
5888TRUE

Functia identical compar reprezentarea interna a datelor si re-turneaz


TRUE, dac obiectele sunt identice si FALSE ^n caz contrar.
Functia all.equal compar \egalitatea element cu element" a doua
obiecte si returneaz TRUE sau a seaz un sumar al diferentelor. Cea de-a
doua functie ia ^n considerare aproximarea calculului procesului, atunci
c^and compar valori numerice.
0 0.9 == (1 - 0.1)
[1] TRUE
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

0 identical(0.9, 1 - 0.1) [1]


TRUE
1 all.equal(0.9, 1 - 0.1) [1]
TRUE
2 0.9 == (1.1 - 0.2)
[1] FALSE
0 identical(0.9, 1.1 - 0.2) [1]
FALSE
1 all.equal(0.9, 1.1 - 0.2) [1]
TRUE
2 all.equal(0.9, 1.1 - 0.2, tolerance = 1e-16) [1] "Mean
relative difference: 1.233581e-16"

Sistemul de indexare

Sistemul de indexare este o cale e cienta si exibila de a accesa ^n mod


selectiv elementele unui obiect; poate at^at numeric c^at si logic. Pentru a
accesa, spre exemplu, a doua valoare a unui vector x, introducem x[2]
care poate folosit at^at pentru a extrage c^at si pentru a schimba aceast
valoare:

23x <- 1:5


24x[2]
[1] 2
25x[2] <- 18
26x
[1] 1 18 3 4 5

Chiar indexul poate un vector de tip numeric:

5888 i <- c(1,3)


5889 x[i]
[1] 1 18
^
2.2. TIPURILE DE DATE IN R. 51

Dac x este o matrice sau o secventa de date, valoarea liniei i si a


coloanei j este accesat cu x[i; j]: Pentru a accesa toate valorile ale unei
anumite linii sau coloane, trebuie sa se omita indexul corespunzator (far a
uita virgula!):
23 x <- matrix(1:6,2,3)
24 x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
5888 x[, 3] <- 21:22
5889 x
[,1] [,2] [,3]
[1,] 1 3 21
[2,] 2 4 22
23x[, 3]
[1] 21 22

Indexarea poate utilizat de asemenea pentru a suprima unul sau mai


multe linii sau coloane utiliz^and valori negative. De exemplu, x[-1,] va
suprima prima linie, ^n timp ce x[-c(1, 15),] va face acelasi lucru pentru
linia 1 si linia 15. Pentru exempli care utilizam matricea de nita mai sus.

5888 x[,
-1] [,1] [,2]
[1,] 3 21
[2,] 4 22
5889 x[, -
(1:2)] [1] 21 22
5890 x[, -(1:2), drop = FALSE]
[,1] [1,] 21
5888 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

[2,] 22

Acest sistem de indexare este schematizat ^n siruri, cu un numar de


indici egal cu numarul de dimensiuni ale sirului (de exemplu, un sir de
dimensiune 3: x[i; j; k]; x[; ; 3]; x[; ; 3; drop = F ALSE], etc.

Observatia 8 Poate util de retinut ca indexarea se face cu paran-teze


patrate, ^n timp ce parantezele rotunde sunt utilizate pentru argu-
mentele unei functii.

Pentru vectori, matrici si siruri, este posibila accesarea valorilor unui


element cu o expresie de comparatie ca ^n indexul:

23x <- 1:10


24x[x >= 5] <- 20
25x
58881 2 3 4 20 20 20 20 20 20 > x[x
== 1] <- 25
>x
0 25 2 3 4 20 20 20 20 20 20
^
In cazul listelor, accesarea diferitelor elemente (care pot orice tip de
obiect) este efectuat e cu paranteze patrate simple e cu duble: diferenta
este ca prin parantezele simple se returneaz o lista, ^n timp ce parantezele
duble extrag obiectul dintr-o lista. Rezultatul poate
indexat asa cum s-a prezentat anterior pentru vectori, matrici, etc. Spre
exemplu, dac al treilea obiect al unei liste este vector, valoarea i a sa
poate accesat utiliz^and my.list[[3]][i], dac este un sir de dimensiune 3
utilizand my.list[[3]][i,j, k] si asa mai departe.
O alta diferenta este aceea ca my.list[1:2] va returna o lista cu primele
doua elemente din lista originala, desi my.list[[1:2]] nu va da rezultatul
asteptat.
^
2.2. TIPURILE DE DATE IN R. 53

Accesarea valorilor unui obiect cu nume


Numele sunt etichete ale elementelor unui obiect, prin urmare sunt de
tip caracter, ele sunt ^n general atribuite optional.
Exista mai multe tipuri de nume (names, colnames, rownames,
dimnames).
Numele unui vector sunt memorate ^ntr-un vector de aceeasi lun-
gime cu obiectul si pot accesate cu functia names.

0 x <- 1:3
1 names(x)
NULL
2 names(x) <- c("a","b","c")
3 x
abc
123
> names(x)
[1] "a" "b" "c"
0 names(x) <- NULL
1 x
[1] 1 2 3

Pentru matrici si secvente de date, colnames si rownames sunt


etichetele pentru coloane si, respectiv linii. Acestea pot accesate at^at cu
functiile lor corespunzatoare, c^at si cu dimnames care returneaz o lista
cu ambii vectori.

0 X <- matrix(1:4, 2)
1 rownames(X) <- c("a","b")
2 colnames(X) <- c("c","d")
3 X
0 d
a13
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

b24
0 dimnames(X)
[[1]]
[1] "a" "b"
[[2]]
[1] "c" "d"

Pentru siruri, numele dimensiunilor pot accesate cu dimnames:


0 A <- array(1:8, dim = c(2, 2, 2))
1 A
0 , 1 [,1]
[,2]
[1,] 1 3

[2,] 2 4
0 , 2 [,1]
[,2]
[1,] 5 7
[2,] 6 8
> dimnames(A) <- list(c("a", "b"), c("c", "d"), c("e", "f")) > A

1 ,e
cd
a13
b24
0 ,fc
da5
7b6
8
Dac elementele unui obiect au nume, acestea pot extrase uti-liz^andu-
le sub forma de indici. De fapt, aceasta poart numele de
^
2.2. TIPURILE DE DATE IN R. 55

`subsetting' mai degrab dec^at `extraction' din moment ce sunt pastrate


atributele obiectului original. De exemplu, dac o secventa de date DF
contine variabilele x, y si z, comanda DF["x"] va returna o secventa de
date doar cu x; DF[c("x", "y")] va returna o secventa de date cu ambele
variabile. Aceasta functioneaz si cu liste dac elementele acesteia au
nume.

Editorul de date

Se poate utiliza o la gra c pentru editarea unui obiect de \date". De


exemplu, daca X este o matrice, comanda data.entry(X) va lansa un
editor gra c si se vor putea modi ca valori prin selectarea celulelor
respective, or to add sau se vor putea adauga coloane noi sau linii.
Functia data.entry modi ca direct obiectul dat ca argument far sa e
nevoie sa i se atribuie rezultatul. Pe de alta parte, functia returneaz o lista
cu obiectele date ca argumente si posibil modi cate. Acest rezultat este a
sat pe ecran ^n mod implicit, ^nsa, ca pentru majoritatea functiilor, poate
atribuit unui obiect.

Functii aritmetice simple


Vectorii pot manipulati cu expresii aritmetice clasice:

0 x <- 1:4
1 y <- rep(1, 4)
2 z <- x + y
3 z
[1] 2 3 4 5

Dac vrem sa adunam (sau sa ^nmultim) cu aceeasi valoare tuturor


elementelor unui vector:

> x <- 1:4


0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

0 a <- 10
1 z <- a * x
2 z
[1] 10 20 30 40

Observatia 9 Se pot gasi toate functiile matematice de baz (log, exp,


log10, log2, sin, cos, tan, asin, acos, atan, abs, sqrt, . . . ), functiile
speciale (gamma, digamma, beta, besselI, . . . ), ca si alte diverse functii
utilizate ^n statistic [21].

Calcul matriceal
RStudio ofera facilitati pentru calcule si manipulari ale matrici-lor.
Functiile rbind si cbind ^mbina matrici tin^and cont de linii sau coloane,
respectiv:

0 m1 <- matrix(1,nr = 2,nc = 2)


1 m2 <- matrix(2,nr = 2,nc = 2)
2 rbind(m1,m2)
[,1] [,2]
[1,] 1 1
[2,] 1 1
[3,] 2 2
[4,] 2 2
0 cbind(m1,m2) [,1]
[,2] [,3] [,4]
[1,] 1 1 2 2
[2,] 1 1 2 2

Operatorul care realizeaz produsul a doua matrici este `%*%'.


De exemplu, consider^and cele doua matrici m1 si m2 de mai sus:

> rbind(m1,m2)%*% cbind(m1,m2)


^
2.2. TIPURILE DE DATE IN R. 57

[,1] [,2] [,3] [,4]


[1,] 2 2 4 4
[2,] 2 2 4 4
[3,] 4 4 8 8
[4,] 4 4 8 8
0 cbind(m1,m2)%*% rbind(m1,m2)
[,1] [,2]
[1,] 10 10
[2,] 10 10
Transpusa unei matrici este efectuat cu functia t; aceast functie este
valabil si pentru secvente de date.
Functia diag poate utilizat pentru a extrage sau a modi ca diagonala
unei matrici, sau pentru a construi o matrice diagonal .
0 diag(m1)
[1] 1 1
1 diag(rbind(m1,m2) %*% cbind(m1,m2)) [1]
2288
2 diag(m1) <- 10
3 m1
[,1] [,2]
[1,] 10 1
[2,] 1 10
> diag(3)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
0 v <- c(10,20,30)
1 diag(v)
[,1] [,2] [,3]
[1,] 10 0 0
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

[2,] 0 20 0
[3,] 0 0 30
0 diag(2.1,nr = 3,nc = 5) [,1]
[,2] [,3] [,4] [,5]
[1,] 2.1 0.0 0.0 0 0
[2,] 0.0 2.1 0.0 0 0
[3,] 0.0 0.0 2.1 0 0

RStudio are si c^ateva functii speciale pentru calcule cu matrici.


Putem mentiona solve pentru inversarea unei matrici, qr pentru des-
compunere, eigen pentru calculul valorilor si vectrilor proprii si svd
pentru descompunerea cu valori singulare.

2.3 Programarea ^n RStudio


2.3.1 Bucle si vectorizari
Un avantaj al lui RStudio fata de alte software-uri cu meniuri pull-
down este posibilitatea programarii seriilor de analize simple care vor
executate ^n mod succesiv. Acest aspect este comun tuturor limbajelor de
, ^nsa RStudio are c^ateva caracteristici particulare ce fac programarea
mai usoar pentru non-specialisti.
Ca si alte limbaje, RStudio are c^ateva structuri de control care sunt
diferite fata de cele din limbajul C++. Sa presupunem ca avem un vector
x si, pentru ecare element al lui x cu valoarea b, dorim sa atribuim
valoarea 0 unei alte variabile y, altfel 1. Vom crea nt^ai un vector y de
aceeasi lungime cu x:

y <- numeric(length(x))
for (i in 1:length(x))
if (x[i] == b) y[i]<- 0 else y[i]<- 1
^
2.3. PROGRAMAREA IN RSTUDIO 59

Instructiunile pot executate dac sunt plasate ^n interiorul aco-ladelor:

for (i in 1:length(x)) {
y[i] <- 0
...
}
if (x[i] == b) {
y[i] <- 0
...
}

Cu toate acestea, buclele si structurile de control pot evitate ^n


majoritatea situatiilor datorit unei caracteristici a RStudio-ului:
vectorizarea. Vectorizarea face ca buclele sa e implicite ^n expresie. Vom
considera adunarea a doi vectori:
> z <- x + y

Aceast adunare poate scrisa cu o bucla, asa cum este posibil ^n


majoritatea limbajelor:
0 z <- numeric(length(x))
1 for (i in 1:length(z)) z[i] <-
x[i] + y[i]
^
In acest caz, este necesar sa cream ^n prealabil un vector z datorit
utilizarii sistemului de indexare. Atentie, bucla explicita va functiona
doar dac x si y au aceeasi lungime: trebuie schimbat dac aceast conditie
nu este ^ndeplinita, cu toate ca prima expresie va functiona ^n toate
situatiile. Executiile conditionale (if ... else) pot evitate prin utilizarea
indexarii logice; ne vom ^ntoarce la exemplul anterior:
0 y[x == b] <- 0
1 y[x != b] <- 1
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO
^
In afar de faptul ca sunt mai simple, expresiile vectorizate sunt mai e
ciente din punct de vedere al computerizarii, ^n special pentru date de
dimensiuni mari.
Exista si c^ateva functii de tipul `apply' care evita scrierea buclelor:
Apply actioneaz asupra r^andurilor si/sau coloanelor unei matrici,
sintaxa sa ind:
apply(X, MARGIN, FUN, ...),

unde X este o matrice, MARGIN arat dac se considera r^andurile (1),


coloanele (2), sau ambele (c(1, 2)), FUN este o functie (sau un operator,
^nsa ^n acest caz trebuie speci cat ^n paranteze) pentru apli-care, iar ...
sunt alte argumente optionale pentru FUN.

0 x <- rnorm(10, -5, 0.1)


1 y <- rnorm(10, 5, 2)
2 X <- cbind(x, y)#the columns of X keep #the
names "x" and "y"
3 apply(X, 2, mean)
xy
-4.975132 4.932979
0 apply(X, 2, sd) x y

0.0755153 2.1388071

lapply() actioneaz asupra unei liste: sintaxa sa este similar cu cea a


functiei apply si returneaz o lista.
0 forms <- list(y ~x, y ~poly(x,2))
1 lapply(forms, lm) lapply(forms, lm) [[1]]

FUN(formula = X[[1]])
^
2.3. PROGRAMAREA IN RSTUDIO 61

Coefficients:
(Intercept) x
31.683 5.377
[[2]]
Call:
FUN(formula = X[[2]])
Coefficients:
(Intercept) poly(x, 2)1 poly(x,2)2 4.9330
1.2181 -0.6037

sapply() este o variant exibila a functiei lapply(), care poate avea ca


argument un vector sau o matrice, si returneaz rezultatul ^ntr-o forma mai
prietenoas pentru utilizator, ^n general un tabel.

2.3.2 Instructiunea de decizie


Instructiunea de decizie este if. Forma ei este la fel ca ^n alte limbaje:

if (conditie) instr 1 else instr 2


unde:
conditie este o expresie care da o valoare logica (TRUE, FALSE)
instr 1 este o instructiune sau un grup de instructiuni si la fel
instr 2
else nu poate sa apar singur pe o linie. Este de preferat sa e pus dupa
instructiunea (sau grupul) instr 1.
Vom da ^n continuare un exemplu:

a=5; b=3;
if((a==5)&(b!=a))
{s<-a+b^2
s<-s^2} else
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

{s=a-b^2; s<-s^2}
s
[1] 196

Exista si o functie ifelse de forma:

if else (conditie; da; nu)

Dac este adevarat a rmatia conditie, atunci rezultatul


lui ifelse ^
este da, altfel rezultatul este nu. In conditie putem avea un vector care se
evalueaz pe ecare componenta la TRUE sau FALSE.
Rezultatul functiei este un vector de aceeasi lungime ca vectorul
conditie, cu valori din vectorii dati sau nu.
Dac vectorii dati au aceeasi lungime ca si vectorul conditie, atunci
sunt trunchiati sau extinsi prin repetare.

0 a=c(1,-2,3,0,-4,-5,0,2)
1 nu=c(-1,-2,-3,-4,-5,-6,-7,-8,-9,-10)
2 ifelse(a>0,da,nu)
[1] 1 -2 3 -4 -5 -6 -7 2

2.3.3 Instructiuni de repetitie


Instructiunile de repetitie (ciclare) sunt ^n R: for, while, repeat.
Aceste instructiuni au formele:

f or (var1 in var2)i nstr


unde var2 este o variabil ce se poate converti la un sir de valori (ca de
exemplu vector sau lista), iar instr este o instructiune sau un grup de
instructiuni.

while (cond) instr


^
2.3. PROGRAMAREA IN RSTUDIO 63

unde cond este o expresie ce se evalueaz la TRUE sau FALSE, iar


instr este o instructiune sau un grup de instructiuni. Se va avea desigur
grija ca variabila cond sa se modi ce ^n grupul de instructiuni instr pentru
a deveni la un moment FALSE si a se opri repetitia.

repeat instr

este o variant de repetitie ^n care instr este un bloc de instructiuni.


Pentru a se asigura ca se termina la un moment aceste repetitii trebuie
^ntretinuta ^n blocul instr o conditie care se evalueaz la TRUE sau
FALSE. Iesirea din bloc se face la executia unei instructiuni de forma:

if(conditie)break;
daca conditie este T RU E
^
In blocurile de repetitie se poate folosi comanda break ce deter-mina
iesirea imediat din ciclu sau comanda next care determina
^

trecerea la urmatoarea repetitie din ciclu. In cazul ciclurilor incluse unul


^n altul break si next se utilizeaza, doar pentru ciclul cel mai interior.

Exemplul 2 Se da o matrice a de dimensiune 3x4 si se cere sa se


calculeze vectorul s de dimensiune egal 3 pentru care s[i] este suma
elementelor din linia i.

Rezolvare prin repetitie cu for:


a=matrix(c(1:12),nrow=3)
s=rep(0,3)
for (i in 1:3){
for (j in 1:4) s[i]<-s[i]+a[i,j]} > s

[1] 22 26 30
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Rezolvarea prin repetitie cu while:

s=rep(0,3)
i=1
while(i<=3){
j=1
while (j<=4) {s[i]=s[i]+a[i,j];j=j+1}
i=i+1}
>s
[1] 22 26 30

Rezolvare prin repetitie cu repeat

a=matrix(c(1:12),nrow=3)
s=rep(0,3)
i=1
repeat{
j=1
repeat {s[i]=s[i]+a[i,j];j=j+1; if(j==5) break} i=i+1

if (i==4) break}
>s
[1] 22 26 30
^
In toate aceste programe ciclul interior se poate ^nlocui cu functia
sum. Prin aceasta se executa mai repede programul pentru ca repetitia din
functia sum este compilat direct ^n cod masina.
Programul ar arata astfel (^n varianta cu for).

a=matrix(c(1:12),nrow=3)
for (i in 1:3)s[i]=sum(a[i,])
>s
[1] 22 26 30
^
2.3. PROGRAMAREA IN RSTUDIO 65

Exemplul 3 Multe repetitii pot realizate cu functiile de mapare apply,


lapply, sapply, tapply, mapply.
Programul precedent poate scris de exemplu cu functia apply ast-
fel:

a=matrix(c(1:12),nrow=3)
s=apply(a,MARGIN=1,sum)
>s
[1] 22 26 30

Exemplul 4 Fiind date matricele a, b, c de dimensiune 3x4 sa se


determine matricea d de dimensiune 3x4 pentru care d[i, j] este media a
vectorului format de a[i, j], b[i, j], c[i, j].

Repetitia cu for ne da doua cicluri:


a=matrix(1:12,nrow=3);
b=matrix(seq(1,2,length=12),nrow=3)
c=matrix(11:22, nrow=3)
d=matrix(rep(0,12),nrow=3)
for (i in 1:3)
for (j in 1:4)
d[i,j]=mean(a[i,j],b[i,j],c[i,j])
>d
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12

Exemplul 5 Repetitia prin functia mapply se realizeaz astfel:

a=matrix(1:12,nrow=3);
b=matrix(seq(1,2,length=12),nrow=3)
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

c=matrix(11:22, nrow=3)
d=mapply(mean,a,b,c)
d=matrix(d,nrow=3)
>d
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12

2.3.4 De nirea functiilor proprii


^
In limbajul R de nirea functiilor se face sub forma:

nume f unctie < f unction(argumente)finstructiuni de calculg

iar apelul functiei se face simplu nume functie(argumente). Re-


zultatul ^ntors de functie trebuie sa apar ultimul, far atribuire. O
^

alt posibilitate este instructiunea return(val). In acest caz, executia


instructiunilor din functie se ^ncheie imediat si val este returnat ca
valoare a functiei.

Exemplul 6 Sa de nim functia:

f(x; y; z) = x2 + xzy

si apoi sa o aplicam argumentelor x=3, y=5, z=9.

f<-function(x,y,z){r<-x^2+x*y*z;r}
f(3,5,9)
[1] 144

Observatia 10 Printre parametrii unei functii pot alte functii. De


asemenea ^n corpul unei functii pot apeluri la ea ^nsasi ceea ce duce
^
2.3. PROGRAMAREA IN RSTUDIO 67
^
la aplicarea recursiva a functiei. In acest caz e nevoie de conditii care sa
asigure ca numarul de aplicari recursive e nit. Ca exemplu avem
urmatorul script simplu ce calculeaz recursiv termenii sirului Fibonacci.

fib<-function(n){
if(n==1) return(c(1))
if(n==2)return(c(1,1))
s1=fib(n-1)
urm=s1[n-1]+s1[n-2]
return (c(s1,urm))}
> fib(10)
[1] 1 1 2 3 5 8 13 21 34 55

O functie poate modi cat ^n fereastra de editare a scriptului sau din


linia de comand cu:
> fix(function name)
O dat ^ncarcat scriptul, o functie care face parte din acest script se
poate executa din linia de comanda:
>fib (n)
sau din fereastra de editare astfel: se selecteaz liniile dorite a
executate si Ctrl+Enter, iar scriptul ^n ^ntregime se executa cu
Ctrl+Alt+R.

2.3.5 Calculul integralelor de nite


De face cu ajutorul functiei integrate()
Exemplul 7 Calculati integrala:
0 pi=2

sin(x)dx
pi=2
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

> integrate(sin,-pi/2,pi/2)
0 with absolute error < 2.2e-14
> integrate(sin,-pi/2,pi/2)$value [1] 0

2.4 Apelul din R al functiilor scrise ^n C


Apar situatii c^and nu avem ^n R rutine pentru anumite operatii.
Solutia este scrierea de rutine (functii) proprii. Utilizarea ^ntr-o masur
mare a instructiunilor de decizie sau repetitie ^n R face ca timpul de
rulare sa creasc mult datorit faptului ca R este un limbaj inter-pretat. O
iesire o reprezinta uneori utilizarea de rutine scrise ^ntr-un limbaj ^n care
se face compilarea la nivel de cod masina, cum ar C,
^

Fortran, Pascal, etc. In R exista mecanisme de apel a functiilor scrise ^n


C ori Fortran precum si mecanisme de apel ^ntr-un program extern a unor
rutine din R. Ne vom ocupa de metoda de apel ^n R a unor rutine scrise
^n C.
Atunci c^and se apeleaz ^ntr-un program functii scrise ^n alt lim-baj
trebuie avute ^n vedere corespondenta tipurilor de date, modul de transfer
al datelor spre rutina apelat si modul de preluare a rezulta-
^

telor produse de rutina apelat . In documentatia standard pentru R gasim


urmatoarea corespondenta ^ntre tipurile de date din R si C.
R storage mode C type
log ical int
integer int
double double
complex Rcomplex
character char
raw unsigned char
Pentru cei care doresc sa scrie pachete de programe pentru RStudio
utiliz^and limbajul C, ^n subdirectorul ≪ include ≫ din directorul, unde
este instalat RStudio se gasesc siere de de nitie pentru diverse
^
2.4. APELUL DIN R AL FUNCTIILOR SCRISE IN C 69

tipuri de date si diverse functii din librarii larg utilizate. Pentru noi
corespondenta de tipuri din tabelul de mai sus este su cienta.
Datele ^ntre RStudio si rutine externe se schimba doar prin adrese.
Rutinele externe nu trebuie sa ^ntoarc vreo valoare (^n C++ ele tre-buie
sa e functii de tip void ).
Rutinele externe (^n C++ ) se pun ^n biblioteci dinamice (.dll ^n
windows, .so ^n linux) care

0 se ^ncarc ^n R cu comanda dyn.load(nume librarie, ....)

1 se deconecteaz de la R prin dyn.unload(nume librarie).

Observatia 11 Dac proiectul este realizat ^n mediul de programare


Visual Studio 2017, pentru a genera sierul dll trebuie parcursi

urmatorii pasi:

Observatia 12 1. Din Visual Studio ^n Solution Explorer click dreapta pe


proiect, apoi Properties

0 Din tab-ul General se selecteaz Con guration Type si se alege


Dynamic Library (dll) iar apoi se face Rebuild la proiect, iar ^n
root/bin/Debug se va genera un sier de tipul dll.

Apelul functiilor C se poate face cu comanda:

:C(name; :::; naok = F ALSE; dup = T RU E; package; enconding)

unde name este numele functiei.


Dac naok este TRUE atunci valorile NA, NaN, Inf sunt transmise
functiei C, altfel se genereaz o eroare dac apar, dup=TRUE deter-mina o
duplicare a datelor ^nainte de a transmise subrutinei, package speci ca ^n
ce pachete sa se caute subrutina name. Este obligatorie doar prezenta
parametrului name ^n apelul .C(name,. . . .)
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Observatia 13 Mai simplu se poate introduce comanda .C(name. . . )


^ntr-o functie R care face apelul mult mai comod si se pot prelua din
parametrii ^ntorsi doar pe cei care intereseaz .

Exemplul 8 Sa se scrie o functie C numita "root" care plec^and de la


o matrice patratic "A" sa produca un vector care contine elementele
matricei ^n ordinea din gura urmatoare, apoi sa se apeleze aceast
functie din R.
1 12 11 10
0 2 13 16 9 1
B 4 5 6 7 C

@ A
B 3 14 15 8 C

Ordinea de extragere a elementelor din matrice.


^

In cadrul acestui proiect au fost create automat doua siere main.h si


main.dll de mai jos ^n care partea adaugat este evidentiat
(se recunoaste rutina de extragere a elementelor din matricea a ^n
vectorul b ^n ordinea speci cata, precum si declaratia ca aceast rutina sa
apartina librariei numita aici pr1.dll).
Solutia acestei probleme este preluat integral din lucrarea [18, pp:75-
77] :
Fisierul main.h
#ifndef __MAIN_H__
#define __MAIN_H__
#include <windows.h>
/* To use this exported function of dll, include this header

0 in your project. */
#ifdef BUILD_DLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
^
2.4. APELUL DIN R AL FUNCTIILOR SCRISE IN C 71

#endif
#ifdef __cplusplus
extern "C"
{
#endif
void DLL_EXPORT SomeFunction(const LPCSTR sometext);
void DLL_EXPORT rot(int *nlin, double *a,double *b);
#ifdef __cplusplus
}
#endif
#endif // __MAIN_H__
Fisierul main.cpp
#include "main.h"
// a sample exported function
void DLL_EXPORT SomeFunction(const LPCSTR sometext)
{
MessageBoxA(0, sometext, "DLL Message", MB_OK |
MB_ICONINFORMATION);
}
void DLL_EXPORT rot(int *nlin, double *a,double *b){
int i,j,k,cnt=0;
int n=*nlin,mi=n/2;
for (k=0;k<mi;k++){
for(i=k;i<n-k-1;i++){b[cnt]=a[i+n*k];cnt++;}
for(j=k;j<n-k-1;j++) {b[cnt]=a[n-k-1+n*j];cnt++;}
for(i=n-k-1;i>k;i--){b[cnt]=a[i+n*(n-k-1)];cnt++;}
for(j=n-k-1;j>k;j--) {b[cnt]=a[k+n*j];cnt++;}
}
if(n%2==1) b[cnt]=a[mi+n*mi];
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
0 attach to process
1 return FALSE to fail DLL load
break;
case DLL_PROCESS_DETACH:
2 detach from process
break;
case DLL_THREAD_ATTACH:
0 attach to thread
break;
case DLL_THREAD_DETACH:
1 detach from thread
break;
}
return TRUE; // succesfull
}
Dupa compilare si linkeditare (s-a optat pentru mediul de pro-gramare
Visual Studio 2010) se obtine biblioteca pr1.dll pe care am mutat-o ^n
directorul curent din R.
Programul R ^n care am utilizat functia root este urmatorul:
>dyn.load("pr1.dll")
>x=1:25
>a=matrix(x,ncol=5)
>b=rep(0,length(a))
>rez<-
.C("rot",as.integer(ncol(a)),as.double(a),as.double(b))
>dyn.unload("pr1.dll")
^
2.4. APELUL DIN R AL FUNCTIILOR SCRISE IN C 73

Rezultatele le vedem mai jos. Parametrii ^ntorsi sunt preluati de R


sub forma unei liste ^n ordinea ^n care au fost declarati.
Avem trei parametri ^n rutina root, deci si rezultatul ^ntors rez va
o lista cu trei intrari. Ultima intrare (a treia rez[[3]]]) este vectorul b pe
care ^l cautam:
>a
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 11 16 21
[2,] 2 7 12 17 22
[3,] 3 8 13 18 23
[4,] 4 9 14 19 24
[5,] 5 10 15 20 25
> rez[[3]]
0 1 2 3 4 5 10 15 20 25 24 23 22 21 16 11 6 7 8
9 14 19 18 17 12 13

Pentru apelul functiei rot care se gaseste ^n biblioteca pr1.dll putem


scrie o functie R care sa fac acest apel mai usor.
^

In sierul urmator se face acest lucru, din cei trei parametri ^l luam ca
parametru de iesire din functia root doar pe al treilea, b.
dyn.load("pr1.dll")
x=1:25
a=matrix(x,ncol=5)
b=rep(0,length(a))
rot<-function(a){
if(!is.matrix(a))stop("intrarea in root trebuie
sa fie matrice")
if(!is.numeric(a)) stop("matricea trebuie
sa fie numerica")
if(!(ncol(a)==nrow(a))) stop("matricea trebuie
sa fie patratica")
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

b=rep(0,length(a));
rez<-
.C("rot",as.integer(ncol(a)),as.double(a),as.double(b))
return(rez[[3]])}
>aa<-rot(a)
>dyn.unload("pr1.dll")
Rezultatul este:
>a
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 11 16 21
[2,] 2 7 12 17 22
[3,] 3 8 13 18 23
[4,] 4 9 14 19 24
[5,] 5 10 15 20 25
> aa

[1] 1 2 3 4 5 10 15 20 25 24 23 22 21 16 11 6 7 8
9 14 19 18 17 12 13

Exemplul 9 Sa se realizeze un program care implementeaz metoda


congruentiala:

Xn+1 = (a Xn + c)(modM) (2.1)


pentru generare numere aleatoare. Programul va genera 10.000 de
numere pe care le va a sa ^ntr-un sier. Se va considera M = 2^31, iar
pentru a si c se vor da valori din program.

Cod program Visual Studio 2010

using System;
using System.Collections.Generic; using
System.ComponentModel;
^
2.4. APELUL DIN R AL FUNCTIILOR SCRISE IN C 75

using System.Data
using System.Drawing
using System.Linq
using System.Text
using System.Windows.Forms
using System.IO;
namespace Congruentiala
{
public partial class Form1 : Form
{
decimal M, a, c,val,val_urm;
StreamWriter writer =
=new StreamWriter("E:\\randomCongSub.txt");
StreamWriter writer2 =
=new StreamWriter("E:\\randomCongSupra.txt"); public
Form1()
{
InitializeComponent();
}
private void button1_Click(object sender,
EventArgs e)
{
M = (decimal)Math.Pow(2, 31);
a = Convert.ToDecimal(textBox1.Text); c =
Convert.ToDecimal(textBox2.Text); val =
Convert.ToDecimal(textBox4.Text);
textBox3.Visible = false;
val = Convert.ToDecimal(textBox4.Text); for
(int i = 0; i < 10000; i++) {

val_urm = (a * val + c) % M;
val = val_urm;
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

writer2.WriteLine(val); val_urm /= (M -
1); writer.WriteLine(val_urm);
textBox3.AppendText(val + "\n");

}
textBox3.Visible = true;
}
private void textBox1_TextChanged(object sender,
EventArgs e)
{
}
private void textBox4_TextChanged(object sender,
EventArgs e)
{
}
}
}

Cod program RStudio


#include <Rcpp.h>
#include <stdio.h>
#include <math.h>
#include <fstream>
#include <iostream>
using namespace Rcpp;
0 [[Rcpp::export]] void
congruentiala()
{
double M, a, c,val,val_urm; M =
(double)pow(2,31); a=2;
^
2.5. CREAREA DE FISIERE C++ IN R 77

c=4; val=0;
std::ofstream myfile;
myfile.open ("example.txt");
for (int i = 0; i < 10000; i++)
{
val_urm = fmod(a * val + c, M); val =
val_urm;
val_urm /= (M - 1);
myfile << std::fixed <<
std::setprecision(30) << val_urm << "\n";
printf("%f",val_urm);}
myfile.close();
}
/*** R
congruentiala()
*/

2.5 Crearea de siere C++ ^n R


Se procedeaz astfel [10]:
Pasi:
0 Din meniul File alegem optiunea New File ->C ++ File, gura
(2.2):

1 Dac nu este instalat package-ul Rcpp, procedam astfel : din meniul


Tools->Install Package Rcpp.
2 Scriem codul.

Observatia 14 Se va descarca acea versiune RTools care este compa-


tibila cu versiunea de Windows de pe calculatorul, unde este instalat
RStudio si se va tine cont de microprocesor pe 32/64 biti.
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Figura 2.2: Fisier C++

Exemplul 10 Sa se scrie un program C++ care sorteaz un vector


folosind metoda bulelor.

Codul este:

#include <Rcpp.h>
#include <stdio.h>
using namespace Rcpp;
0 [[Rcpp::export]]
void BubbleSort()
{
int v[] = { 61, 30, 21, 9, 22, 11, 31, 4, 18, 31, 86, 14, 32,
56 };
int n=14;
for(int i=0;i<n;i++)
{
printf("%d ",v[i]);
}
int i, j;
for (i = 0; i < n - 1; i++) for (j = 0; j < n
- i - 1; j++) if (v[j] > v[j + 1])
2.6. DATA FRAME 79

{
int t = v[j];
v[j] = v[j+1];
v[j+1] = t;
}
printf("\n Vectorul sortat este: "); for(int
i=0;i<n;i++) printf("%d ",v[i]);}

/*** R
BubbleSort()
*/

Lansarea ^n executie se face astfel: dam click pe butonul source.


Se obtin rezultatele:

0 Rcpp::sourceCpp('Bubblesort.cpp')
1 BubbleSort()
61 30 21 9 22 11 31 4 18 31 86 14 32 56 Vectorul
sortat este: 4 9 11 14 18 21 22 30 31 31 32 56 61 86

2.6 Data frame


Data frame este o colectie de date organizate ^ntr-un tablou drept-
unghiular ^n care pe ecare coloan sunt date de acelasi tip. O varia-bila
data frame se creeaz prin alipirea unor vectori de aceeasi dimen-siune, ca
^n exemplele de mai jos:

>c1=c("a","b","c") >c2=c(1,2,3)
>df1=data.frame(c1,c2) #creare data frame
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

>df1
Se obtine:
c1 c2
1a1
2b2
3c3
>grupa=c("111","112","113","221",
+"222","223","224","331")
>media=c(8.82 9.01 8.45 8.23 8.14
+8.01 7.76 9.08)
0 catalog=data.frame(grupa,media); catalog Se obtin
rezultatele:

grupa media
1 111 8.8200000
2 112 9.0100000
3 113 8.4500000
4 221 8.2300000
5 222 8.1400000
6 223 8.0100000
7 224 7.7600000
8 331 9.0800000

Numele coloanelor coincide cu numele vectorilor, iar liniile au nu-


mele 1, 2, 3, ... Putem schimba aceste nume ca ^n secventa de mai jos:

0 rownames(df1)=c("linia.1","linia.2","linia.3")
1 colnames(df1)=c("unu","doi")
2 df1
unu doi
linia.1 a 1
2.6. DATA FRAME 81

linia.2 b 2
linia.3 c 3

Numele liniilor, coloanelor ca si valorile din data.frame (sau din alt


obiect precum matricea sau vectorul) pot editate cu ajutorul unui editor
propriu R care se apeleaz prin comenzile x sau edit, ca mai jos:

0 fix(df1)
1 df1
unu doi
lin.1 a 1
lin.2 b 2
lin.3 c 3

Figura (2.3):
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Figura 2.3: Data frame

Se pot crea matrice sau data frames cu ajutorul editorului ^ncorporat


prin instructiunile
0 df2=edit(data.frame())
1 m5=edit(matrix())
2.6. DATA FRAME 83

Valorile pentru df2 si m5 vor cele completate ^n editor. Numele


coloanelor unei date de tip data frame se obtine prin comanda

>names(data.frame),

iar coloana cu un nume dat se poate accesa prin

>data$nume

ca ^n exemplele urmatoare:

> df2
unu doi
lin.1 a 1
lin.2 b 2
lin.3 c 3
0 names(df1) #numele coloanelor [1]
"unu" "doi"
1 df2$unu #coloana cu numele "unu" [1] a
bc
Levels: a b c
2 df2$unu[3] #elem. al 3-lea de pe coloana "unu" [1] c

Levels: a b c

sau

0 names(catalog) #numele coloanelor [1]


"clasa" "media"
1 catalog[1] #prima coloana
clasa
0 9A
2 9B
3 9C
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

0 9D
5 9E
6 9F
7 9G
8 9H
> catalog[1,1] #elem.din prim coloana, prima linie [1] 9A

Levels: 9A 9B 9C 9D 9E 9F 9G 9H
O variabil de tip data.frame este de fapt un tabel. Poate g^andit ca o
matrice care are un cap de tabel ^n care si liniile si coloanele au denumiri.
Liniile sunt considerate nivele, iar coloanele sunt vectori de acelasi tip
care poart un nume. Datele data frame pot introduse ^n R si din siere text
exterioare prin comanda read.table. Datele ^n sier trebuie sa umple o zona
dreptunghiular .
Fisierul text cu date poate copiat ^n clipboard, poate pe un suport de
memorie, ^ntr-o locatie de internet. Din multimea de para-metri ai
instructiunii read.table este important de retinut: numele sierului, sep
semnul separator ^ntre date, header care poate TRUE dac primul r^and
este citit ca nume ale variabilelor, altfel FALSE, dec ce indica semnul
separator pentru zecimale (implicit).
Liniile vide ca si cele care ^ncep cu semnul # sunt ignorate. Datele
citite sunt interpretate ca data frame. O comand asemanatoare este
^

read.csv. In acest caz sierul trebuie sa e un sier text cu datele separate


prin virgula. De exemplu, sa presupunem ca s-au creat niste date ^n Excel
se selecteaz si se copiaz ^n clipboard.
Datele se citesc ^n R astfel:
t=read.table("clipboard")
t
Statistica Algebra Fiabilitate
Ion 8 7 7
Daniel 6 5 8
2.6. DATA FRAME 85

Rodica 8 9 7

Pentru a vedea ce tip de dat este t apelam functia class:

> class(t)
[1] "data.frame"

Dac am selectat doar matricea de date numerice s-ar citit ^n R tot ca


data frame. O metoda alternativ este sa salvam documen-tul Excel ca sier
text sau sier csv" si sa-l citim cu read.table sau read.csv.

t2=read.table(file.choose())
t2

Statistica Algebra Fiabilitate


Ion 8 7 7
Daniel 6 5 8
Rodica 8 9 7

t3=read.csv(file.choose())
t3

Statistica Algebra Fiabilitate


Ion 8 7 7
Daniel 6 5 8
Rodica 8 9 7

Functia le.choose deschide o fereastr de dialog pentru alegerea


sierului.
Dac se pune numele sierului, atunci sierul trebuie sa e ^n directorul
curent sau sa e indicat cu cale cu tot.
^

In rezumat avem:
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

>t=read.table(''clipboard'') #ptr citirea din clipboard


>t=read.table(file.choose()) #citire din fisier text
>t=read.table(''numele.fisierului'')
#citire dintr-un fisier aflat in directorul curent
>t=read.table(''http://adresa.web/fisier.txt'')
#citire fisier de pe internet.
Pentru a scrie un obiect data frame ^ntr-un sier se foloseste
write.table sau write.csv care au cam aceeasi parametri ca read.table. De
exemplu prin instructiunea:
> write.table(t, file="t.txt"),
se salveaz obiectul data frame t ^n sierul "t.txt" din directorul curent
de unde poate citit eventual alt dat cu read.table. Pen-tru scrierea
vectorilor sau matricelor ^n siere text se poate utiliza instructiunea write.
Citirea matricelor din aceste siere se face cu instructiunea scan. Sintaxa
instructiunii write este:
>write(matricea, file = "fisierul", ncolumns=nr.coloane, + append =
FALSE, sep = ",")
>scan(file = "", what = numeric), nmax = -1, n = -1, + sep =
"",dec = ".",skip = 0, nlines = 0)
File este numele sierului, what reprezinta tipul de date care se citesc
(logical, integer, numeric, complex, character, raw, list), nmax reprezinta
numarul maxim de date ce se citesc (dac lipseste sau nu e pozitiv atunci
se citeste p^an la sf^arsitul sierului), n are aceeasi semni catie doar ca se
ignora valorile invalide, sep este separatorul de date (dac lipseste se
presupune ca datele sunt separate prin spatii), dec este separatorul pentru
zecimale ^n numerele reale (implicit), skip reprezinta numarul de linii de
la ^nceput care sunt ignorate, nlines este numarul maxim de linii care se
citesc.
Aceste baze de date sunt de fapt data frame-uri. Pentru a vizualiza
toate bazele de date disponibile, se poate folosi functia data:
2.6. DATA FRAME 87

> data()

si se va deschide o fereastr ^n care sunt enumerate toate bazele de


date disponibile. Pentru a a a informatii suplimentare despre o anume baz
de date, se poate apela help-ul sistemului R:
> ?cars

Se va deschide o fereastra web ^n care se speci ca faptul ca baza de


date contine 50 de observatii luate din anul 1920, iar viteza este numerica
si masurat ^n mph, iar distanta este de asemenea numerica, masurat in ft.
Pentru a accesa una dintre aceste baze de date, se poate scrie data(numele
bazei de date). De exemplu, pentru a accesa baza de date cars care
contine vitezele si distantele de oprire ale unor masini putem proceda
astfel:

data(cars)
cars[1:5,]
#primele 5 randuri ale bazei de date speed dist #coloanele
bazei de date
speed dist
1 4 2
2 4 10
3 7 4
4 7 22
5 8 16

Dac se doreste manipularea pe caracteristici, atunci se poate folosi


vectorul cars[,1] ce ne da toate vitezele masurate sau vectorul cars[,2] ce
ne da toate distantele disponibile. O alt modalitate de a lucra cu o baz de
date este de a folosi functia attach:
attach(cars)
names(cars) #numele coloanelor bazei de date
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

[1] "speed" "dist"


mean(speed) #media datelor din prima coloanei [1] 15.4

mean(cars[,1]) #o varianta echivalenta


[1] 15.4
mean(cars$speed) #a doua varianta echivalenta [1] 15.4

Pentru a scrie un obiect data frame ^ntr-un sier se folosesc:

write.table

sau write.csv care au aceeasi parametri ca read.table.

De exemplu prin instructiunea:

> write.table(t, file="t.txt")

se salveaz obiectul data frame t ^n sierul "t.txt" din directorul curent


de unde poate citit eventual alt dat cu read.table. Pen-tru scrierea
vectorilor sau matricelor ^n siere text se poate utiliza instructiunea write.
Citirea matricelor din aceste siere se face cu instructiunea scan. Sintaxa
instructiunii write este:

>write(matricea, file = "fisierul", ncolumns=nr.coloane, append =


FALSE, sep = ",")

din care doar matricea (vectorul) si sierul sunt obligatorii. Dac le=""
atunci se scrie la consola.
Dac apend=TRUE atunci se adaug datele la sf^arsitul sierului altfel se
sterge sierul si se recreaz cu datele noi. Separatorul poate
si alt caracter, de exemplu spatiu sau tab. Scrierea se face pe linii.
Pentru a scrie coloanele la ^nceput, trebuie transpus matricea. Citirea
unei matrice dintr-un sier text cu instructiunea
^
2.7. GENERAREA NUMERELOR ALEATOARE IN R 89

>scan

are forma

>scan(file = "", what = numeric), nmax = -1, n = -1, sep = "",dec


= ".",skip = 0, nlines = 0)

unde le este numele sierului, what reprezinta tipul de date care se


citesc (logical, integer, numeric, complex, character, raw, list), nmax
reprezinta numarul maxim de date ce se citesc (dac lipseste sau nu e
pozitiv atunci se citeste p^an la sf^arsitul sierului), n are aceeasi semni
catie doar ca se ignora valorile invalide, sep este separa-torul de date (dac
lipseste se presupune ca datele sunt separate prin spatii), dec este
separatorul pentru zecimale ^n numerele reale (impli-cit), skip reprezinta
numarul de linii de la ^nceput care sunt ignorate, nlines este numarul
maxim de linii care se citesc.
R include si un numar de baze de date care se pot folosi ^n diverse
aplicatii. Aceste baze de date sunt de fapt data frame-uri.

2.7 Generarea numerelor aleatoare ^n R


Generarea de numere aleatoare este un pas esential ^n algoritmii
probabilisti. De fapt aceste numere aleatoare vor valori numerice ale unor
variabile aleatoare. Metodele de generare a numerelor aleatoare se ^mpart
^n trei categorii:
tabele cu numere aleatoare obtinute prin aruncarea unei monede, a
unui zar, la ruleta, etc.;
procedee zice, care au la baz fenomene zice, cum ar emisia
particulelor de catre o sursa radioactiva, zgomotul electronic, etc.;
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

0 procedee aritmetice (analitice), care utilizeaz formule de calcul


de tipul:
xn+1 = f(xn; xn 1; :::xn m); n m 0

Dezavantajul ultimului procedeu este acela ca nu poseda un carac-ter


strict aleator, dearece exista o functie (determinista) care permite
calcularea lor.
Din acest motiv numerele generate prin procedee analitice se nu-mesc
numere pseudoaleatoare. Se pune problema de a alege proce-deele
analitice astfel nc^at sirurile de numere pseudoaleatoare produse sa e c^at
mai apropiate de numerele aleatoare veritabile.

De nitie 19 Spunem ca variabila aleatoare discreta X urmeaz legea


uniforma discreta dac distributia ei este
)
k
X: 1
k=0;:::M 1

Generarea de numere aleatoare care urmeza o anumit lege (^n


particular si legea uniforma discreta) este practic imposibil de realizat
prin procedee analitice.
Dac generarea se face pe calculator, ar de preferat ca valoarea lui M
sa e mai mica dec^at valoarea maxim ce poate reprezentat pe un cuv^ant
al calculatorului. Mai mult, un astfel de sir de numere aleatoare este
periodic.
Vom considera ca dac sunt generate numerele aleatoare (xk) ^ntregi si
uniforme din [0; M), atunci numerele (uk) de nite prin uk = xk/M, sunt
uniform repartizate pe[0; 1).

Observatia 15 Exista metode analitice de generare a numerelor alea-


toare uniforme, dintre care amintim metodele congruentiale ( aditiv
congruential si multiplicativ congruentiala).
^
2.7. GENERAREA NUMERELOR ALEATOARE IN R 91

Mediul de programare RStudio pune la dispozitia utilizatorilor


macroinstructiunea RNG.
Random.seed <- c(rng.kind, n1, n2, \dots)
RNGkind(kind = NULL, normal.kind = NULL)
RNGversion(vstr)
set.seed(seed, kind = NULL, normal.kind = NULL)

Vom da un exemplu furnizat de helpul din R

Marsaglia's congruential PRNG


#include <R_ext/Random.h> static Int32
seed;
static double res; static int
nseed = 1; double *
user_unif_rand()
{
seed = 69069 * seed + 1;
res = seed * 2.32830643653869e-10; return
&res;
}
void user_unif_init(Int32 seed_in) { seed = seed_in; } int *
user_unif_nseed() { return &nseed; }
int * user_unif_seedloc() { return (int *) &seed; } /* ratio-of-
uniforms for normal */
#include <math.h>
static double x;
double * user_norm_rand()
{
double u, v, z; do {

u = unif_rand();
v = 0.857764 * (2. * unif_rand() - 1);
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO x = v/u; z =
0.25 * x * x;
if (z < 1. - u) break;
if (z > 0.259/u + 0.35) continue;
} while (z > -log(u)); return
&x;
}
^
2.8. FUNCTII GRAFICE IN R 93

2.8 Functii gra ce ^n R


2.8.1 Gestionarea gra celor
^
In RStudio se pot executa gra ce de calitate pentru datele admise.
Aceste gra ce sunt trimise pe ecran sau ^n siere de diverse tipuri, pen-tru
a realiza acest lucru trebuie deschis un \device". Comanda win-dows()
deschide ecranul ca dispozitiv gra c, comanda jpeg() deschide ca
dispozitiv gra c un sier ^n care se va scrie informatia gra c ^n for-mat
jpeg(), postscript(),pdf(), png(), tiff(), bitmap(), win.meta le(), etc. Aceste
comenzi au ca parametru le, numele sierului unde se salveaz gra cul,
width=latimea ^n pixeli, height=^naltimea ^n pixeli. Numai un dispozitiv
este activ la un moment, trecerea de la unul la altul se face dev.next(),
dev.prev(), dev.set(which=k). Listarea dispo-zitivelor gra ce se face cu
comanda dev.list(), ^nchiderea unui dispo-zitiv cu dev.off(k), iar
^nchiderea tuturor cu graphics.off(). C^and s-a ^nchis un dispozitiv
diferit de ecran, imaginea din el este salvat ^n sierul speci cat ^n
parametrul le. Dupa comanda graphics.off() tre-buie deschis un nou
dispozitiv pentru a putea tipari un gra c, de regula windows() pentru
ecran. Un clic dreapta pe fereastra cu reprezentarea gra c de pe ecran
deschide un meniu cu optiuni de salvare sau copiere a continutului ^n
clipboard. Rutinele gra ce sunt cuprinse ^n modulul de baza: \base"
precum si ^n doua pachete suplimentare \grid" si \lat-tice". Rutinele de
baz se ^mpart ^n doua categorii: rutine de nivel ^nalt \high level" ^n urma
carora se creaz o fereastr gra c noua ^n care se pun gra cele speci cate
prin argumentele rutinelor; rutine de nivel jos \low level" prin care la gra
cul existent se adaug informatii suplimentare ca text, puncte, linii; gra ce
interactive prin care utilizatorul poate interactiona cu gra cul prin
intermediul mouse-ului pentru a obtine informatii despre valorile din
diverse pozitii de pe gra c sau pentru a adauga informatii ^n diverse
pozitii de pe gra c.

Alte optiuni barplot, contour, persp, sunt asemanatoare cu cele


CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

din MATLAB. Prin tiparirea cu rutine de nivel jos se adaug elemente noi
la gra cul existent, care se pot a a prin comanda help. Pentru diversi
parametri gra ci R mentine o lista numita par cu valorile aces-tora. Cu
comanda par() putem a a valorile acestor parametri. Unii parametri sunt
admisi ca date optionale de unele rutine gra ce. La apelul rutinei
respective, parametrul considerat se introduce sub forma
rutina(...,parametru=valoare,...). Dupa executia comenzii gra ce va-loarea
parametrului revine la cea dinainte de instructiunea gra c . Dac vrem ca
modi carea sa e permanent (p^an la o noua modi-care) atunci vom utiliza
comada par(parametru=valoare,...). Unii parametrii pot modi cati doar
prin instructiunea par. Acestia sunt: "ask"," g", " n", "lheight", "mai",
"mar", "mex", "mfcol", "mfrow", "mfg", "new","oma", "omd", "omi",
"pin", "plt", "ps", "pty", "usr",
^

"xlog", "ylog", "ylbias". Inainte de a da exemple de instructiuni gra-ce,


c^ateva cuvinte despre culori. Culorile implicite pe care le uti-lizeaz R la
un moment dat pentru reprezentari gra ce sunt stocate ^ntr-o paleta, un
vector de tip caracter cu numele culorilor.
Le putem vedea cu comanda palette(). Pentru culorile care nu au
nume se utilizeaz descrierea lor hexazecimal .
Putem crea palete de culori prin :

palette(rainbow(n)),
palette(heat.colors(n)),
palette(terrain.colors(n)),
palette(topo.colors(n)),

palette(cm.colors(n)), unde n este numarul culorilor pe care le vrem ^n


palet .

O alt modalitate de a obtine palete este prin interpolarea culorilor cu


functia colorRampPalette.
^
2.8. FUNCTII GRAFICE IN R 95

Un clic dreapta pe gra c face sa apar un meniu contextual, unde apar


optiunile de salvare a gra cului ^n format meta le sau postscript sau de
copiere ^n clipboard ^n format meta le sau bitmap (^n windows). De aici
este usor sa-l includem ^ntr-un document.

Exemplul 11 Folosind un script Gra ce.r sa se reprezinte pe acelasi gra


c trei functii densitate de probabilitate Normala, Rayleight, Wei-bull:

x=seq(-5,5,length=50)
#deschidem un device
y1=(1/sqrt(2*pi))*exp(-x^2/2);
y2=(x/4)*exp(-x^2/8);
y3=2*exp(-2*x)
plot(x,y1,type="b",pch="+",xlab="",ylab="", lwd=3)
lines(x,y2, type="o",pch=10,col="red",lty="dotted",lwd=3)
lines(x,y3,type="l",lty="dashed",col="blue",lwd=3)
title(main="Graficele a trei functii densitate",
xlab="axa X",ylab="axa Y", cex.main=2,
cex.lab=1.5, cex.sub=2)
grid(5,5,col="cyan")
legend("topleft", legend=c("normala m=0,std=1",
"Rayleigh b=2",
"Weibull a=2,b=1"),
col=c("black","red","blue"),
lty=c("solid","dotted","dashed"),
bg="yellow1")

Dac ^l lansam cu comanda:


>source("Grafice.r")
obtinem gura (2.4):
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Figura 2.4: Trei gra ce densitate de probabilitate


^
2.8. FUNCTII GRAFICE IN R 97

Este bine c^and se reprezinta mai multe functii pe acelasi gra c, la


apelul rutinei plot sa se speci ce

xlim = range(x1; x2; x3:::)


ylim = range(y1; y2; y3; ::)

unde x1; x2; x3; :: sunt vectorii cu abscisele coordonatelor punctelor de pe


gra c iar y1; y2; y3; :. contin ordonatele punctelor. Acest lucru ne asigur
ca toate gra cele vor complet reprezentate. Dac la repre-zentarile din gura
anterioar mai adaugam un gra c ce are puncte ^n afara zonei delimitate
(^n cazul nostru[ 3; 3] [ 1; 1]) acestea nu vor apare.

Primul gra c se executa cu plot iar celelalte cu lines, points sau alte
comenzi de nivel inferior pentru a se adauga elementele la ceea ce este
deja reprezentat.
Titlurile se pot adauga ^ntr-o instructiune plot, sau prin co-manda
title. Atentie la faptul ca adaugarea ulterioar a unui titlu nu-l schimba ci
se suprapune celui existent.
Pozitionarea legendei se poate face prin cuvintele \topleft", \to-
pright", \top", bottomleft", \bottomright", \bottom", \lft", \right", sau prin
coordonatele x, y.ale coltului st^anga sus, coordonate ce pot alese
interactiv prin locator().

Observatia 16 Este bine sa e lansat un script pas cu pas utiliz^and


optiunea Run, deoarece eventualele erori vor trimise la consola si astfel
se pot corecta.

Pentru adnotari matematice pe gra ce se pot obtine informatii din help


prin comanda help(plotmath). Expresiile matematice se alcatuiesc cu
comanda expression(...) ^n care se introduce sub forma unei expresii
apropiate de cea latex formula matematic dorita. Pen-tru a lipi ^ntre ele
mai multe siruri se utilizeaz comanda paste(sir1,
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

sir2,...).din help prin comanda help(plotmath). Expresiile matematice se


alcatuiesc cu comanda expression(...) ^n care se introduce sub forma unei
expresii apropiate de cea latex formula matematic dorita.
Utilizarea comenzii text(locator(), ex) pentru a pune expresia pe gra c
se justi ca prin aceea ca locator() asteapt un clic st^anga pe o pozitie din
gra c pentru a se stabili unde va pus textul. Dupa aceea se face un clic
dreapta si din meniul derulant se alege optiunea stop.

Exemplul 12 [20, pag 320] Sa se reprezinte histograma valorilor


generate aleator dupa o distributie normal si sa se compare cu gra cul
distributiei.
Scriem scriptul Adnotari2.r
nr=8;media=2; devs=4;
y=rnorm( nr,mean=2, sd=4)
hist(y, probability=TRUE, col="lightgray", main="Histograma
valorilor y=rnorm(200,mean=2,sd=4)", xlab="Valorile lui y",

ylab="Densitatea valorilor lui y",cex.axis=1.5,


cex.lab=1.5 )
x1=seq(-6,10,length=100)
y1=dnorm(x1,mean=2, sd=4)
lines(x1,y1, lwd=3)
ex=expression(paste(rho, "(", x, ")=",frac(1,
4*sqrt(2*pi)), " ",
plain(e)^{frac(-(x-2)^2, 2%*%4^2)}))
text(locator(),ex, cex=1.5)
si-l lansam ^n executie din linia de comand astfel:
>source("Adnotari2.r)
Obtinem gura (2.5).
^
2.8. FUNCTII GRAFICE IN R 99

Figura 2.5: Gra ce cu adnotari


CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Exemplul 13 [20, pag 430] Sa se utilizeze qqnorm pentru a detecta, dac


o selectie este normal (gra cul ar trebui sa e o dreapta) si qq-plot pentru
a detecta, dac doua selectii empirice au aceesi distributie (gra cul ar
trebui sa e prima bisectoare).

Tastam ^n linia de comanda sau putem crea un script.

x1=runif(1000);x2=rnorm(1000, mean=1, sd=1)


par(mfrow=c(1,2));
qqnorm(x2, main="Q-Q norm pentru o selectie normala", +
xlab="Cuantilele teoretice",
+ ylab="x2=rnorm(100,mean=1,sd=1)",pch="+");
qqplot(x1,x2,main="Q-Q plot pentru doua selectii",
pch="+",
xlab="x1=runif(100)",ylab="x2=rnorm(100,mean=1,sd=1)"); >
par(mfrow=c(1,1))

Se obtin gra cele din gura (2.6):

Figura 2.6: QQ norm


^
2.8. FUNCTII GRAFICE IN R 101

2.8.2 Pachetele grid si lattice


Pachetele grid si lattice implementeaz sistemele de tip grila si lattice.
Grila este un nou mod gra c cu sistem propriu de parametri gra ci care
sunt distincti fata de cei prezentati ^n paragraful anterior.
Lattice este ^n fond implementarea ^n cadrul RStudio a gra celor
Trellis din SPLUS. Trellis este un mod de vizualizare a datelor mul-
tidimensionale ^n mod special corespunzator explorarii relatiilor sau
interactiunilor dintre variabile. Principala idee din spatele lattice este
aceea a gra celor de conditionari multiple: un gra c bidimensional va
^mpartit ^n c^ateva gra ce tin^and cont de valorile unei a treia variabile.

Pachetul se ^ncarc ^n memorie prin comanda


> library(lattice)
Principalele doua diferente dintre grila si gra cele de baz sunt:

1. un mod mai exibil de a ^mparti instrumentele gra ce utiliz^and


viewports care poate superior (obiectele gra ce pot chiar
^mpartite^ntre zone distincte prede nite ale unui spatiu de a sare, de
ex., sageti);

obiectele gra ce (grob) pot modi cate sau sterse dintr-un gra c far a
necesar redesenarea ^ntregului gra c (asa cum se cere ^n cazul gra
celor de baza).

Gra cele de tip grila nu pot de obicei unite sau combinate cu gra-cele
de baz (Pachetul gridBase trebuie utilizat pentru aceasta). Dar este
posibila utilizarea ambelor moduri gra ce ^n aceeasi sesiune ^n cadrul
aceluiasi instrument gra c.
Functia coplot utilizeaz o modalitate similara, ^nsa latice ofera
functionalitati mai vaste deoarece latice utilizeaz modul gra c de tip grila.
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO

Cele mai multe functii din lattice considera o formula ca principalul


lor argument de exemplu y ~x. Formula y ~x j z presupune ca gra cul lui
y raportat la x sa e reprezentat ^n c^ateva gra ce tin^and cont de valorile
lui z. Cei interesati ^n aprofundarea acestei modalitati de reprezentare gra
c recomandam lucrarea [21, pag : 51-57].
Capitolul 3
Legi de repartitie a priori

3.1 Repartitia beta


Se utilizeaz ^n estimarea bayesian neparametric atunci c^and se
ignora caracterul distributiei timpului de functionare, deci asociat functiei
de abilitate R
f ()= 1 m 1 n 1
am+n R (1 R)
(m) (n)
Dac notam n = r0; m = n0 r0; m + n = n0; obtinem:
1 n0 r0 1 r 1
f a(R) = R (1 R) 0 ; n0; r0 > 0; n0 > r0
(r0) (n0 r0)
Media apriori a repartitiei beta este:
r0

Ma[Rg =

unde n0 : numarul de pseudo-^ncercari, r0 :numarul de pseudo defec-tari.

103
(n)
r

CAPITOLUL 3. LEGI DE REPARTITIE A PRIORI

Dispersia repartitiei beta este:


r0(n0 D [R] =
r0)
a
n20(n0 + 1)

Incertitudinea relativ asociat functiei de abilitate poate masurat


prin
a[R] r0
Ma[R] = √ (n0 r0)(n0 + 1)
Vom urmari modul ^n care se modi ca repartitia a priori de tip beta la combinarea
cu datele experimentale. Deci forma ^n U nu este potrivita pentru modelarea lui R.
Rezulta ca sunt de evitat valorile mai mici de 1 ale lui n 0 si r0 (n0; r0 > 1): Functia
de verosimilitate este de tip
binomial:
f (x = R) = (1 R)rRn r
unde n reprezinta volumul esantionului, iar r numarul de defectari
^nregistrate ^n timpul ^ncercarii. Folosind relatia:
p) q)
(p; q) =
p + q)
Rezulta conform ecuatiei lui Bayes:

n0 + n) n +n r r 1 r +r 1
f p(R) = R0 0 (1R) 0
r0 + r) n0 + n r0 r)
Rezulta r0 + r
R

b
Mp[R] = = 1 n0 + n
Observatia 17 Se observa ca repartitia beta are un caracter conser-vativ
la transformarea de tip Bayes de aceea se numeste repartitie a priori
conjugat fata de repartitia binomial .
3.1. REPARTITIA BETA 105

Pentru cazul particular n0 = 2; r0 = 1; rezulta ca repartitia este


uniforma ^n intervalul [0,1] si exprima matematic faptul ca nu exista
informatie apriori asupra functiei de abilitate [31, pag 42].

Observatia 18 Dac se cunoaste ^nsa scara valorilor functiei de a-bilitate


este rezonabil sa se adopte o repartitie uniforma limitat la un anumit
interval [a,b] [0; 1]:
1
f a(R) = b a ; R 2 [a; b]
{ 0 ^{n rest
RStudio pune la dispozitia programatorilor urmatoarele macro:
dbeta(x,shape1,shape2,ncp = 0,log = FALSE)
pbeta(q,shape1,shape2,ncp = 0,
lower.tail = TRUE,log.p = FALSE)
qbeta(p,shape1,shape2,ncp = 0,
lower.tail = TRUE,log.p = FALSE)
rbeta(n,shape1,shape2,ncp = 0)
unde x,q sunt vectori cuantile
p=vector probabilitati
n=numar de observatii
shape1,shape2= parametrii pozitivi ai distributiei
beta m,n
log,log.p= daca TRUE,probabilitatea p este data sub
forma log(p).

Exemplul 14 Dam un urmatorul exemplu:

x <- seq(0, 1, length = 21)


dbeta(x, 1, 1)
pbeta(x, 1, 1)
CAPITOLUL 3. LEGI DE REPARTITIE A PRIORI

Visualization, including limit cases:


pl.beta <- function(a,b, asp = if(isLim) 1, ylim =
if(isLim) c(0,1.1)) {
if(isLim <- a == 0 || b == 0 || a == Inf ||
0 b == Inf)
{eps <- 1e-10
x <- c(0, eps, (1:7)/16, 1/2+c(-eps,0,eps),
(9:15)/16, 1-eps, 1)
}
else {
x <- seq(0, 1, length = 1025)
}
fx <- cbind(dbeta(x, a,b),pbeta(x, a,b),qbeta(x, a,b)) f <- fx; f[fx ==
Inf] <- 1e100
matplot(x, f, ylab="", type="l",ylim=ylim, asp=asp, main =
sprintf("[dpq]beta(x, a=%g, b=%g)",a,b)) abline(0,1, col="gray",
lty=3) abline(h = 0:1, col="gray", lty=3)

legend("top", paste0(c("d","p","q"),"beta(x, a,b)"), col=1:3,


lty=1:3, bty = "n")
invisible(cbind(x, fx))
}

pl.beta(3,1)
pl.beta(2, 4)
pl.beta(3, 7)
pl.beta(3, 7, asp=1)
pl.beta(0, 0) ## point masses at {0, 1}

Se obtine gra cul din gura (3.1):


3.1. REPARTITIA BETA 107

Figura 3.1: Repartitia Beta


CAPITOLUL 3. LEGI DE REPARTITIE A PRIORI

3.2 Repartitia gamma


Este utilizat pentru estimari parametrice c^and se considera ca
distributia timpului de functionare este exponential sau exponential pe
portiuni.
1
( )
f a( ) = e
)

Ma[ ] = ; Da[ ] = 2
Densitatea de probabilitate a rezultatelor experimentale este:
- pentru planul cenzurat:

( T )r 1
(T = ) = exp( T ) (r 1)!

-pentru planul trunchiat:

( T )r
(r= ) = exp( T ) (r 1)!

Rezulta
a
+ r) T

f (T ) = ) r) ( + T ) +r
Rezulta

p( ) = f ( =x)
+ r) +r 1
f ( =T ) = +r exp( ( + T )
( +T)
Rezulta ca repartitia gamma este apriori conjugat cu repartitia exponen-tial .

O comand simpla cu ajutorul careia putem reprezenta functia gamma


este:
3.2. REPARTITIA GAMMA 109

curve(dgamma(x,scale=1.5,shape=2,from=0,to=15,
main="Gamma distribution")

Pentru a urmari reducerea incertitudinii asociate valorii parame-trului


^n urma acumularii rezultatelor experimentale, se considera o masur a
incertitudinii usor de evaluat ca:
A) dispersia
+r
( + T )2 < 2
r
(√
T 1+ 1)
B) informatia Fisher

2
I =
Fa 2 ; ̸= 2
( + T )2
I =
Fp +r 2 ; + r ̸= 2
I > I ;
Fp Fa

Rezulta:
r
T (√ 1+ 2 1)
Estimatorul optim bayesian va
+r
=M [ ] =
p +T
Exemplul 15 Vom da un exemplu simplu de utilizare a distributiei
gamma = 0:5 (lambda parametru de scara) si a = 3:5 (shape para-meter)
:
CAPITOLUL 3. LEGI DE REPARTITIE A PRIORI

x.gam<-rgamma(200,rate=0.5,shape=3.5)
med.gam<-mean(x.gam) var.gam<-var(x.gam)
l.est<-med.gam/var.gam a.est<-
((med.gam)^2)/var.gam l.est

0.6567925
a.est
4.656781

3.3 Repartitia uniforma


Este repartitia ^n care nu exista nici un fel de informatii apriori asupra
abilitatii unui sistem

f a(R) = 1; R 2 [0; 1]

{ 0; R 2= [0; 1]
Aceeasi lipsa de informatii ar trebui sa se re ecte si la nivelul parame-
trului al repartitiei exponentiale. Repartitia asociat parametrului nu va
^nsa uniforma deoarece:

1 1
= t ln R(t)

Rezulta
f a(R)
f ()= t
a dm = tR = te
d

Mediul de programare RStudio pune la dispozitia utilizatorilor


urmatoarele macroinstructiuni:
3.3. REPARTITIA UNIFORMA 111

dunif(x,min = 0,max = 1,log = FALSE)


punif(q,min = 0,max = 1,lower.tail = TRUE,log.p = FALSE)
qunif(p,min = 0,max = 1,lower.tail = TRUE,log.p = FALSE)
runif(n,min = 0,max = 1)
unde x,q vectori cuantile
p=vector de probabilitate
n=numar de observatii
min, max= cea mai mica si cea mai mare limita, trebuie sa
fie finite
lower.tail logical; daca TRUE (implicit), probabilitatea este:
P[X <= x],altfel P[X > x].
Capitolul 4

Distributii utilizate

4.1 Repartitii discrete


4.1.1 Repartitia binomial
De nitie 20 O variabil aleatoare X are o repartitie binomial dac are
distributia:
(
X
k n
P (n; k)
) ( )
k=0;:::n unde P (n; k) = k pkqn k
iar p 2 (0; 1); q = 1 p:

Variabila aleatoare X reprezinta numarul succeselor obtinute ^n n


repetari independente ale unui experiment.
Se aplic ^n cazul a n extrageri independente una dupa alta a unei bile
dintr-o urna ce contine un numar dat de bile de doua cu-lori.
Independenta extragerilor se asigur pun^and de ecare dat bila ^napoi.

112
4.1. REPARTITII DISCRETE 113

Exemplul 16 Fie c tranzistori de un anumit tip dintre care a au


defectiuni, iar b nu au defectiuni,

a+b=c

e A evenimentul care consta din extragerea la int^amplare a unui


tranzistor defect, iar ⌉ A evenimentul contrar. Rezulta
a b
p(A) = c = p; p(CA) = c = q; p + q = 1

Efectu^and n extrageri independente si not^and cu Ak evenimentul


care consta din obtinerea a k tranzistori cu defectiuni ^n n extrageri
repetate.Evenimentele fAkg k = 1; 2::::n formeaz un sistem complet de
evenimente si
Pn(k) = p(Ak) = Cnkpkqn k
(4.1)

Repartitia determinat de (4.1) se numeste repartitia binomial de ordin


n si parametru p. De nim variabila aleatoare asociat acestei repartitii
astfel:

0 1 2 ::: n
( 1 n 1
)
Xk : qn Cn pq Cn2p2qn 2 ::: pn ; q = 1 p
Fie Xk(k = 1; 2; :::n) o variabil aleatoare care ia valorile 1 sau 0 dupa
cum la extragerea de ordin k a aparut evenimentul A sau CA )
= X1 + X2 + ::: + Xn

este o variabil aleatoare care ia valoarea k; dac evenimentul A s-a produs


de k ori.
114 CAPITOLUL 4. DISTRIBUTII UTILIZATE

Functia de repartitie binomial a variabilei aleatoare este:


[x] 1
∑k

F (X) = P (f! : (!) < xg) = Cnkpkqn k =


=0

0; x 0
> 1
> n
8 qn; 0 < x 1
>
= >
> ∑
>
>
>
> Cpq
k k n k ;1<x 2

<
>

n 1
> k=0
>
>
:::
> ∑
>
>
> Cnkpkqn k; n 1 < x n
>
>
>
>
>
> k=0
:

> 1; x > n
gra cul functiei F (X) are n trepte corespunzatoare celor n + 1 puncte
de discontinuitate.
Valoarea medie si dispersia repartitiei binomiale de ordin n si
parametru p sunt date de formulele
2
M(X) = np; D (X) = npq

Demonstratiile se pot gasi de exemplu ^n lucrarea [16, pag 72-74].

Observatia 19 Se utilizeaz ^n controlul de calitate pe baza unei sin-gure


selectii.

Exemplul 17 Dam urmatorul exemplu:

require(graphics)
Calculeaza P(45 < X < 55) pentru p=0.5
sum(dbinom(46:54,100,0.5))
n <- 2000
4.1. REPARTITII DISCRETE 115

k <- seq(0,n,by = 20)


plot (k,dbinom(k,n,pi/10,log = TRUE),type = "l",
ylab = "log density",
main = "dbinom(*,log=TRUE)is better than log(dbinom(*))")
lines(k, log(dbinom(k, n, pi/10)),col = "red",lwd = 2)
punctele de extrem sunt omise deoarece dbinom furnizeaza 0.
mtext("dbinom(k, log=TRUE)",adj = 0)
mtext("extended range",adj = 0,line = -1,font = 4)
mtext("log(dbinom(k))",col = "red",adj = 1)

Se obtine rezultatul:
[1] 0.6317984
si gura (4.1).

Figura 4.1: Repartitia Binomial


116 CAPITOLUL 4. DISTRIBUTII UTILIZATE

4.1.2 Repartitia Poisson


^
In relatia (4.1) facem

np = ; n ! 1; = constant

k
lim Pn(k) = lim n(n 1):::(n k + 1) (1 )n k
k
n!1 n!1 k! n n
deoarece
lim n(n 1):::(n k + 1) = 1
n!1 nk
n k
lim (1 ) =e

n!1 n
rezulta
k
lim Pn(k) = e
n!1 k!
Functia de repartitie este

k
F (X) = [x] 1 e
∑k
=0
k!

unde
0 1 2 ::: k :::
( 2 k

X: e e 2! e ::: k! e ::: )
Valoarea medie si dispersia repartitiei Poisson sunt
2 2
m(X) = ; D (X) =

Observatia 20 Aceast repartitie este utilizat ^n studiul abilitatii.


4.1. REPARTITII DISCRETE 117

Exemplul 18 Dam urmatorul exemplu.

require(graphics)
-log(dpois(0:7, lambda = 1)* gamma(1+ 0:7))# = = 1 Ni <-
rpois(50, lambda = 4); + table(factor(Ni,0:max(Ni)))

1 - ppois(10*(15:25), lambda = 100)


becomes 0 (cancellation) ppois(10*(15:25),lambda =
100,lower.tail = FALSE)
no cancellation
par(mfrow = c(2, 1))
x <- seq(-0.01, 5, 0.01)
plot(x, ppois(x, 1),type = "s", ylab = "F(x)", + main =
"Poisson(1) CDF")
plot(x, pbinom(x,100, 0.01),type = "s", + ylab =
"F(x)",
main = "Binomial(100, 0.01) CDF")

Obtinem gra cul (4.2):


118 CAPITOLUL 4. DISTRIBUTII UTILIZATE

Figura 4.2: Repartitia Poisson


4.1. REPARTITII DISCRETE 119

4.1.3 Repartitia hipergeometrica


Este utilizat ^n studiul calitatii.
Consideram o urna ^n care sunt a bile albe si b bile negre. Din urna se
fac n extrageri succesive far a se pune bila extras ^napoi. Not^and cu Ak
evenimentul care consta din obtinerea a k bile albe ^n cele n extrageri.Se
considera evenimentele fAkg a.^.
max(0; n b) k min(a; b)
k
Din cele a bile albe putem forma Ca grupe care contin ecare k bile albe.
nk
Cu cele b bile negre putem forma Cb grupe care contin n k bile
negre.Rezulta exista
CakCbn k

grupe care contin ecare k bile albe si n k bile negre.


De nitie 21 Fie n; a; b 2 N ; n < a + b: Repartitia hipergeome-trica este
o repartitie discreta ^n care valorilor k li se atribuie proba-bilitatile:

Ck Cn k
a b

Pn(k; a; b) = Cn
a+b
Functia generatoare a repartitiei hipergeometrice este:
∑k
n

G(z) = Pn(k; a; b)zk; jzj 1 (4.2)


=0

Folosind 4.1 se obtin media si selectia


na
a+
M(X) = b
nab(a + b n)
D2(X) =
(a + b)2(a + b 1)
^
In R apelul se face folosind macroinstructiuni:
120 CAPITOLUL 4. DISTRIBUTII UTILIZATE

>dhyper(x,m,n,k,log = FALSE)
>phyper(q,m,n,k,lower.tail = TRUE,log.p = FALSE)
>qhyper(p,m,n,k,lower.tail = TRUE,log.p = FALSE)
>rhyper(nn,m,n,k)
unde m =nr bile albe, n=nr.bile negre k = nr de
bile extrase din urna p = probabilitatea

x,q = vectorul cuantilelor reprezentind numarul de bile albe


extrase fara intoarcere.
= numarul de observatii
log,log.p
logical; daca TRUE, probabilitatea p este data log(p). lower.tail

logical; daca TRUE (default), probabilitatea este P[X <= x],

altfel P[X > x].

Exemplul 19 Pentru exempli care dam urmatorul exemplu:

>m <- 10; n <- 7; k <- 8


>x <- 0:(k+1)
>rbind(phyper(x, m, n, k),dhyper(x,m,n,k))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0 0.0004113534 0.01336898 0.117030
0.4193747 0.7821884 0.9635952 0.99814891
[2,] 0 0.0004113534 0.01295763 0.103661
0.3023447 0.3628137 0.1814068 0.03455368
[,9] [,10]
[1,] 1.00000000 1
[2,] 0.00185109 0
FALSE ## erorile sunt foarte mici >signif(phyper(x,m,n,k)-
cumsum(dhyper(x,m,n,k)),
4.2. REPARTITII CONTINUE 121

+ digits = 3)
0.00e+00 0.00e+00 0.00e+00 1.39e-17 -5.55e-17 -1.11e-16
-1.11e-16 0.00e+00
0 0.00e+00 0.00e+00

4.2 Repartitii continue


4.2.1 Repartitia normal
De nitie 22 Variabila X urmeaz repartitia normal de parametrii m si 2;
dac densitatea sa de repartitie este
1 (x m)
2

22
f(x) = p22 e ;x2R (4.3)
2
Variabila X se numeste normal de parametrii m si ;dac are functia de
2
repartitie normala, care se noteaz N(m, ):

2
Functia de repartitie a repartitiei normale N(m, ):
x 2
1 (t m)

p
F (x) = 2 2 ∫ e 2
2
dt:
Valoarea medie si dispersia sunt date de:

∫1
M(X) = xf(x)dx = m

∫1
D2(X) = (xm)2f(x)dx = 2
122 CAPITOLUL 4. DISTRIBUTII UTILIZATE

Reprezentarea gra c a functiei 4.3 arat ca este simetrica fata de


paralela la axa Oy dusa prin punctul de abscis m de pe axa Ox, mai mult
^n acest punct f admite un maxim
1
f(m) = p
2
Punctele de abscis m sunt puncte de in exiune gra cul ind concav dac

<x<m+
si convex dac
x<m;x>m+
Momentele centrate
∫1
2k+1
m2k+1 = (x m) f(x)dx = 0

1
(2k)!

m2k = (x m)2kf(x)dx = k!2
k
2k
Asimetria si excesul sunt
m3 m4
As = 3 = 0; E = 4 3=0
Observatia 21 Faptul ca asimetria si excesul sunt egale cu zero ^si are
originea ^n cunoscutul procedeu al statisticii descriptive de a con-sidera
aceste caracteristici drept criterii pentru stabilirea normalitatii
^

unor legi ce descriu fenomene de mas . In aplicarea ^n practic a acestui


procedeu trebuie inut cont de:
As = E = 0

care constituie o conditie necesara, dar nu su cienta pentru normali-tate.


4.2. REPARTITII CONTINUE 123

Functia caracteristic a variabilei aleatoare X repartizat


N(m, 2) :
2 2
ϕ(t) = e itm 2 t

4.2.2 Repartitia normal redusa


De nitie 23 Variabila aleatoare X urmeaz o repartitie normal re-dusa,
dac densitatea ei de repartitie este:
1 x
2

p
g(x) = 2 2 e 2 ; x 2 R
Functia de repartitie a variabilei X este:
x x
1 t
2

dt
(x) = ∫ g(u)du = p2 2 ∫ e 2 :
Deoarece pentru 8 u > 0 g(u) este simetrica fata de m = 0; rezulta
( x) = 1(x) (4.4)

Valorile functiei (x); numita functia lui Laplace, sunt tabelate si cu


ajutorul lor se determina probabilitatea evenimentelor ce privesc orice
variabil aleatoare normal
P (a < X < b) = ( b m )( a m )

Mai mult observam ca pentru 8 > 0 are loc

P (jX mj < ) = 2 ( ) 1
dac =3 )
P (jX mj < 3 ) = 2 (3) 1
124 CAPITOLUL 4. DISTRIBUTII UTILIZATE

dar (3) = 0:9987 )

P (jX mj < 3 ) = 0:9974

Cu alte cuvinte probabilitatea ca abaterea, ^n valoare absolut a vari-abilei


aleatoare X repartizat N(m, 2) sa depaseasc 3 este

0:9987 = 0:26%

4.2.3 Repartitia lognormal


De nitie 24 Variabila aleatoare X urmeaz o repartitie lognormal , dac
densitatea sa de repartitie este
1 2
f(x) = p e
(ln x a)
x 22
2
2 ;x2R

unde a si sunt respectiv valoarea medie si dispersia logaritmului lui X.

Dac punem:
= 1 (ln X a)
rezulta:
= ea

Media si dispersia sunt date de :


a+
M(X) = e 2
2

D2(X) = e2a+ 2
(e
2
1)

Importanta acestei repartitii rezida ^n principal: dac x = 0;

f(x) = 0;
4.2. REPARTITII CONTINUE 125

ceea ce este convenabil variabilei aleatoare timp(repartitia normal nu are


aceast proprietate). RStudio pune la dispozitia utilizatorilor un mare
numar de distributii de probabilitate.
Pre xul pentru densitatile de repartitie este d, pentru functiile de
repartitie p, pentru cuantile q si pentru generatori de numere/vectori
aleatorii r.
Densitatea de probabilitate are argumentul optional log=FALSE. Dac
log=TRUE atunci se calculeaz logaritm din densitate. Functia de
repartitie are parametrii optionali lower.tail = TRUE,
log.p = FALSE.
Dac lower.tail=TRUE atunci functia de repartitie returneaz va-loarea
P (X x), altfel P (X > x). Dac log.p=TRUE se interpre-teaz ca
probabilitatile sunt date prin logaritmii lor.
Functia care calculeaz cuantilele are parametrii optionali lower.tail
=TRUE, log.p = FALSE.
Dac lower.tail = TRUE, atunci functia aplicat lui q ^ntoarce valoarea
minima x astfel ca P (X x) q:

Exemplul 20 Pentru a exempli ca cele prezentate scriem urmatorul script


Norm.r, exemplul este preluat din help-ul RStudio:

Folosim "log = TRUE" pentru un interval extins : par(mfrow =


c(2,1))
plot(function(x) dnorm(x,log = TRUE),-60, 50, main = "log
{ Normal density }") curve(log(dnorm(x)),add = TRUE,col =
"red",lwd = 2) mtext("dnorm(x, log=TRUE)", adj = 0)
mtext("log(dnorm(x))", col = "red", adj = 1) plot(function(x)
pnorm(x, log.p = TRUE),-50,10, main = "log { Normal
Cumulative }") curve(log(pnorm(x)),add = TRUE,col = "red",lwd
= 2) mtext("pnorm(x, log=TRUE)", adj = 0)
126 CAPITOLUL 4. DISTRIBUTII UTILIZATE

mtext("log(pnorm(x))",col = "red",adj = 1)
##
erf <- function(x) 2 * pnorm(x * sqrt(2)) - 1 ## numita
'complementary error function'
erfc <- function(x) 2 * pnorm(x * sqrt(2),lower = FALSE) ## si inversa

erfinv <- function (x) qnorm((1 + x)/2)/sqrt(2)


erfcinv <- function (x) qnorm(x/2,lower = FALSE)/sqrt(2)

Obtinem gura (4.3):

log { Normal density }


dnorm(x, log=TRUE) log(dnorm(x))
0
dnorm(x, log = TRUE)
−500
−1000
function(x)
−1500

−60 −40 −20 0 20 40

log { Normal Cumulative }


pnorm(x, log=TRUE) log(pnorm(x))
0
function(x) pnorm(x, log.p = TRUE)
−200
−400
−1200 −800 −600

−50 −40 −30 −20 −10 0 10

Figura 4.3: Repartitia Lognormal


4.2. REPARTITII CONTINUE 127

4.2.4 Repartitia exponential negativ


De nitie 25 Variabila aleatoare X urmeaz o repartitie exponential
negativ dac densitatea ei de repartitie este
x
f(x) = e ; > 0; 0 x<1

De nitie 26 Functia de repartitie a variabilei aleatoare X care are o


repartitie exponential negativ este:
{ x
1 e ; dac x > 0
F (x) =
0; daca x 0

Functia caracteristic are expresia:

φ(t) = it
Momentele de repartitiei sunt:
1 2 1
M1(X) = ; M2(X) = 2 ; D2(X) = 2

RStudio pune la dispozitie macroinstructiunea dexp cu sintaxele


urmatoare.

>dexp(x,rate = 1,log = FALSE)


>pexp(q,rate = 1,lower.tail = TRUE,log.p = FALSE)
>qexp(p,rate = 1,lower.tail = TRUE,log.p = FALSE)
>rexp(n,rate = 1)
unde
x,q =vectorul quantilelor.
p= vectorul probabilitatilor.
n = numarul de observatii, implicit n=1.
rate=vectorul ratelor.
128 CAPITOLUL 4. DISTRIBUTII UTILIZATE

log,log.p logical; daca TRUE,probabilititatea p: log(p). lower.tail


logical; daca TRUE (default), probabilitatea este P[X $\leq $ x], altfel,
P[X > x]. Daca rate nu este specificata atunci rate=1

Vom da ^n continuare un exemplu:

dexp(1) - exp(-1) #-> 0


o modalitate rapida de a genera numere aleatoare
sortate U[0,1] :
rsunif <- function(n) { n1 <- n+1
cE <- cumsum(rexp(n1)); cE[seq_len(n)]/cE[n1] }
plot(rsunif(1000), ylim=0:1, pch=".") abline(0,1/(1000+1),
col=adjustcolor(1, 0.5))

Obtinem gura (4.4):

Figura 4.4: Generare nr. aleatoare prin repartitia exponential


4.2. REPARTITII CONTINUE 129

4.2.5 Repartitia Weibull


Acest model matematic acoper un numar mare de repartitii ale
duratelor de viata. Se utilizeaz cu foarte bune rezultate ^n stu-diul uzurii
materialelor, al repartitiilor defectiunilor microprocesoa-relor av^and
importanta ^n abilitate ^n general.

De nitie 27 Variabila aleatoare X are repartitie Weibull dac den-siatea


sa de repartitie este:

0m x 0 u
m
m 1 (x u )
f(x) = x
( x
) e (4.5)

x0

unde x0 > 0; m > 0; 0 u x < 1: Pentru x < u; f(x) = 0:

De nitie 28 Functia de repartitie a variabilei X repartizate Weibull este


{
( x u )m
1 e x0 daca x u; u 0
F (X) =
0; daca x < u; u 0

Din 4.5 rezulta ca pentru

u = 0; m = 1

repartitia Weibull coincide cu repartitia exponential negativa, iar dac m 3


repartitia Weibull tinde catre repartitia normal .
^

In mediul de programare RStudio exista macroinstructiunea dwei-bull


cu sintaxele:
dweibull(x,shape,scale = 1,log = FALSE)
pweibull(q,shape,scale = 1,lower.tail = TRUE,log.p = FALSE)
qweibull(p,shape,scale = 1,lower.tail = TRUE,log.p = FALSE)
rweibull(n,shape,scale = 1)
O comand simpla este:
130 CAPITOLUL 4. DISTRIBUTII UTILIZATE

>curve(dweibull(x,scale=2.5,shape=1.5),from=0,to=15,
main="Weibull distribution")

Semni catiile parametrilor sunt similare cu cele ale repartitiei ne-gativ


exponentiale.
Vom exempli ca cum se apeleaza macroinstructiunile de mai sus prin
urmatoarele doua scripturi.

x<-seq(0,2,0.1)
plot(x,pweibull(x,scale=1,shape=2),type="l",col="red",
main="ECDF and Weibull CDF") x
<- c(0, rlnorm(1500)) y<-
dweibull(x,shape = 1)
y1<-pweibull(x, shape = 1, scale = pi)
plot(x,y,type="b",pch="+",lwd=1)
lines(x,y1,type="o",pch=10,col="red",lty="dotted",lwd=1)
title(main="Exemplu distributie Weibull") grid(5,5,col="blue")

Obtinem gra cele din gura (4.5):

(a) Primul gra c (b) Al doilea gra c

Figura 4.5: Distributie Weibull


4.2. REPARTITII CONTINUE 131

2
4.2.6 Repartitia
De nitie 29 Variabila aleatoare continua X urmeaz o repartitie 2 cu n
grade de libertate si cu parametru ( > 0) dac densitatea sa de repartitie este
1
n )e 2 ; x 2 [0; 1); n 2 N
n=2 2
x
f(x) = 2n= 2 n

unde ) este functia gamma alui Euler


∫1
r) = xr 1e xdx; r > 0
0

2
De nitie 30 Functia caracteristic a variabilei aleatoare X reparti-zat cu
n grade de libertate este
n
2
φ(t) = (1 2it ) 2

2
De nitie 31 Momentele repartitiei sunt

M1(X) = n 2
2
M2(X) = n(n + 2)
iar dispersia este:

D2(X) = M2(X) (M1(X))2 = 2n 4

Folosind functia caracteristic se arat ca dac variabila aleatoare X are


2
repartitia cu n grade de libertate si parametru ; atunci variabila
2
pn
2
2n
este asimptotic normal pentru n! 1:
132 CAPITOLUL 4. DISTRIBUTII UTILIZATE

De nitie 32 Fie Xk(k = 1; 2; :::n) n variabile aleatoare independente,


ecare av^and repartitia N(0, ): Variabila aleatoare
∑k
n
2
= Xk (4.6)
=1

2
este repartizat cu n grade de libertate.

Pentru demonstrarea acestei teoreme se poate consulta [17, pag 98-


99].
^

In mediul de programare RStudio exista macroinstructiunea dchisq, cu


urmatoarea sintaxa:

dchisq(x,df,ncp=0,$\log $=FALSE)
pchisq(p,df,ncp=0, lower.tail=TRUE,$\log $p=FALSE)
qchisq(p,df,ncp=0$,$lower.tail=TRUE,$\log $.p=FALSE)
rchisq(n,df,ncp=0)

Vom da ^n continuare urmatrul exemplu [11] :

require(graphics)
dchisq(1, df = 1:3)
pchisq(1, df = 3)
pchisq(1, df = 3, ncp = 0:4) # includes the above
x <- 1:10
Chisquared(df = 2)is a special exponential distribution all.equal(dchisq(x,
df = 2), dexp(x, 1/2)) all.equal(pchisq(x, df = 2), pexp(x, 1/2))
non-central RNG -- df = 0 with ncp > 0:
Z0 has point mass at 0!
Z0 <- rchisq(100, df = 0, ncp = 2.)
graphics::stem(Z0)
## visual testing
4.2. REPARTITII CONTINUE 133

do P-P plots for 1000 points ##at


various degrees of freedom
L <- 1.2; n <- 1000; pp <- ppoints(n)
op <- par(mfrow = c(3,3),mar = c(3,3,1,1)+.1, mgp =
c(1.5,.6,0),oma = c(0,0,3,0))
for(df in 2^(4*rnorm(9))) { plot(pp,
sort(pchisq(rr <- rchisq(n,
df = df, ncp = L), df = df, ncp = L)),
ylab = "pchisq(rchisq(.),.)", pch = ".")
mtext(paste("df = ", formatC(df, digits = 4)),
line = -2, adj = 0.05) abline(0,
1, col = 2)}
mtext(expression("P-P plots : Noncentral "* chi^2
*"(n=1000, df=X, ncp= 1.2)"),
cex = 1.5, font = 2, outer = TRUE) par(op)

"analytical" test
lam <- seq(0, 100, by = .25)
p00 <- pchisq(0, df = 0, ncp = lam)
p.0 <- pchisq(1e-300, df = 0, ncp = lam)
stopifnot(all.equal(p00, exp(-lam/2)),
all.equal(p.0, exp(-lam/2)))
Se obtin rezultatele:
The decimal point is at the |
0 | 0000000000000000000000000000000000
11112223455566778893445566778899
2 | 0001244780022566788
4 | 12234346
6|0
8 | 64
10 | 768
134 CAPITOLUL 4. DISTRIBUTII UTILIZATE

12 | 6

Obtinem gura (4.6):

2
Figura 4.6: Repartitia
Capitolul 5

Teste statistice

Reamintim ca orice presupunere privind repartitia necunoscuta a unei


variabile aleatoare poart numele de ipoteza statistic , iar me-todele de veri
care a ipotezelor statistice poart numele de teste statis-tice. Ipoteza care
se veri ca se numeste ipoteza nula (notat de obicei cu H 0) si orice alt
ipoteza admisibil se numeste ipoteza alternativ (notat de obicei cu HA).

Veri carea ipotezei nule se face pe baza unei selectii (esantion) de


volum n,
x1; :::; xn;

dintr-o populatie statistic .


Testele statistice, dupa scopul lor, se pot clasi ca ^n:

teste de comparare a unor parametri ai populatiei, ce veri ca ipoteze


precum compararea mediilor a doua populatii, compara-rea
mediilor mai multor populatii, compararea dispersiilor, etc;

teste de omogenitate sau de independenta care veri ca ipoteze de


tipul dependentei sau independentei unor factori de clasi care;

135
136 CAPITOLUL 5. TESTE STATISTICE

testele de concordanta, care veri ca dac distributia selectiei este


conforma cu o anumit distributie teoretica asa cum ar distributia
normal .

Testele de comparare se ^mpart la r^andul lor ^n doua categorii


fundamentale:

teste parametrice, pentru care se presupune ca populatiile din care


provin esantioanele au distributii cunoscute cu cel putin un
parametru necunoscut;

teste neparametrice, pentru care nu se face nicio presupunere


despre distributiile populatiilor din care provin esantioanele.

Testele parametrice ( e un parametru al distributiei populatiei)


pot [31]:
- teste unilaterale (directionale) ^n care

H0 : = 0
H1 : < 0 sau > 0

- teste bilaterale (nedirectionale) ^n care

H0 : = 0
H1 : ≠ 0;

La testele parametrice, dac valoarea parametrului care apare ^n


ipoteza alternativ este unica, atunci ea se numeste ipoteza simpla, altfel se
numeste ipoteza compusa.
Zona de acceptare a unei ipoteze, numita si interval de ^ncredere, este
un interval ^n care se accepta, printr-un test statistic, ipoteza nula, careia i
se asociaz probabilitatea 1 .
Zona de respingere este intervalul dintr-o distributie de selectie a unei
statistici considerate, ^n care se respinge ipoteza nula, careia i
137

se asociaz o probabilitate . Probabilitatea este numita prag de semni catie


a testului.
Se pot produce erori de acceptare sau de respingere pe nedrept a unei
ipoteze, numite erori de prima speta sau erori de tipul I si de-a doua speta
sau erori de tipul II.
Eroarea de tipul I este eroarea ^n care se respinge ipoteza nula c^and
^n realitate ea este adevarata, probabilitatea asociat ind . Valoarea se
alege de obicei ca av^and valoarea 0; 05. Eroarea de tipul
este cea ^n care se accept ipoteza nula atunci c^and ea este de fapt falsa,
probabilitatea asociat ind . Regiunea critica (de respingere) a testului
reprezinta valorile numerice ale testului statistic pentru care ipoteza nula
va respinsa.
Nivelul de ^ncredere al unui test este 1 , iar puterea testului este 1 .
Un test statistic, ^n general, parcurge urmatorii pasi [22]:

0 Se formulaz ipotezele statistice: o ipoteza nula H0 si o ipoteza


alternativ H1.
1 Pe baza selectiei se calculeaz o statistic numita statistica testului.

2 Se alege un prag de semni catie pentru testul statistic.


3 Se compar valoarea actual a statisticii testului cu valoarea
teoretica.
4 Se stabilesc regulile de decizie de acceptare sau respingere a
ipotezei nule.
Exista functii R prede nite, precum z.test care se gaseste ^n pa-chetul
de programe R TeachingDemos.
Acest pachet de functii R se poate gasi ca arhiv zip la adresa web:
http://cran.r-project.org/web/packages/TeachingDemos /index.html

Dupa descarcarea pe calculatorul personal a pachetului, pentru


instalare se poate folosi optiunea "Install package(s) from local zip les..."
din meniul Packages.
138 CAPITOLUL 5. TESTE STATISTICE

Dupa instalarea cu succes, se poate alege optiunea "Load pac-


kage...", din acelasi meniu pentru ^ncarcarea pachetului TechingDe-mos.
Exista functii R prede nite, precum sign.test care se gaseste ^n pachetul
de programe BSDA (Basic Statistics and Data Analysis). Acest pachet de
functii R se poate gasi ca arhiv zip la adresa web
http://cran.r-project.org/web/packages
/BSDA/index.html
Se descarca, se instaleaz si se ^ncarc pachetul BSDA ca ^n cazul
pachetului TeachingDemos.
Alte functii referitoare la teste statistice se mai gasesc ^n pachetul
standard "stats" care se ^ncarc automat la instalarea software-ului R.

5.1 Teste statistice pentru un esantion


5.1.1 Testul Z pentru un esantion
Se foloseste atunci c^and facem comparatie ^ntre media unui esantion
si media unei populatii, el se aplic pentru esantione de dimensiune n 30 .

Testul de concordanta Z (sau testul normal) veri ca o ipoteza re-


feritoare la media unei populatii repartizate normal, cu dispersia cu-
noscuta.
Se considera selectia (esantionul)

x1; x2; :::; xn

de variabile aleatoare independente si identic repartizate, de repartitie


2
(m; ), cu cunoscut.
Ipoteza nula este:
H0 : m = m0;
5.1. TESTE STATISTICE PENTRU UN ESANTION 139

adic media populatiei din care este extras esantionul este egal cu
media populatiei de comparatie, esantionul face parte din popula-tie.

iar ipoteza alternativa:

Ha : m ≠ m0

adic populatia din care face parte esantionul este diferita de cea de
comparatie; esantionul nu face parte din populatie.
Valoarea critica:
Pentru pragul = 0; 05, valoarea lui z critic este de 1; 96; pentru
pragul = 0; 01, valoarea lui z critic este 2; 58:
Statistica Z se calculeaz dupa formula:
x m0
Z= =p2 n (5.1)
unde x reprezinta media de selectie a esantionului:
∑i
1 n

x =n xi
=1

Ca urmare a teoremei limita central , statistica Z are repartitia normal


standard N(0; 1) pentru n mare.
Avem ^n acest caz, dac vom alege un risc , ipotezele si criteriile de
acceptare sau respingere conform tabelului urmator:
H0 Ha Zona de respingere
m = m0 m = ̸ m0 jzj > z1 2

m = m0 m > m0 z > z1
m = m0 m < m0 z < z1

Observatia 22 Se utilizeaz ^n controlul pe baza unei singure selectii (plan


simplu de control) c^and din lot se aleg la nt^mplare n produse.
140 CAPITOLUL 5. TESTE STATISTICE

Dintre acestea pot m defecte. Prin conditiile tehnice sunt determi-nate n


si numarul de acceptare A: Dac m > A lotul este respins, ^n caz contrar
lotul este acceptat. Probalitatea de acceptare a lotului de volum mare

n
N 0:10
este
∑A
k k n k
Pa = P (k A) = Cn p (1 p)
k=0

^n care k este numarul de obiecte rebutate, iar p este probabilitatea de


rebut a unui obiect oarecare din lot(fractiunea defecta reala). Probabi-
litatea de respingere (puterea planului de control) este

(p) = 1 Pa
^
In pachetul de functii R TeachingDemos exista functia prede nita
z.test, cu prototipul:

z.test(x, mu = 0, stdev, alternative


c("two.sided", "less", "greater"), sd = stdev,
conf.level = 0.95)

unde

x = vectorul valorilor din esantionul considerat


mu = media teoretica a populatiei
stdev = dispersia cunoscuta a polulatiei
alternative = directia ipotezei alternative, valoarea implicita
fiind ``two.sided''(bilateral)
sd = alternativa la stdev
conf.level = intervalul de incredere
5.1. TESTE STATISTICE PENTRU UN ESANTION 141

Exemplul 21 Sa presupunem ca avem 10 microprocesoare care au facut


un test de anduranta. Media obtinuta la acelasi test, referitor la ^ntreaga
selectie este 75. Vrem sa veri cam dac exista o diferenta statistic semni
cativ (cu nivel de semni catie de 5%) ^ntre media esantionului cu valorile
(exprimate ^n ore): 65, 78, 88, 55, 48, 95, 66, 57, 79, 81 la testul de
anduranta si media selectiei, presupun^and ca dispersia este cunoscuta
si egal cu 18.

O secventa de cod R necesar pentru rezolvarea problemei este


urmatoarea:

x = c(65, 78, 88, 55, 48, 95, 66, 57, 79, 81)
z.test (x,75,18) #media=75, dispersia=18
One Sample z-test
data: x
z = -0.6676, n = 10.000, Std. Dev. = 18.000, Std. Dev. of the
sample
mean = 5.692, p-value = 0.5044
alternative hypothesis: true mean is not equal to 75
95 percent confidence interval:
60.04369 82.35631
sample estimates:
mean of x
71.2

Astfel sunt calculate: valoarea statisticii care este 0; 6676, in-tervalul


de ^ncredere pentru media vectorului x, etc. Acum putem compara
valoarea statisticii testului cu valoarea distributiei student cu 10 1 = 9
grade de libertate determinat din tabele sau se poate folosi functia R
pentru determinarea acestei valori:

qnorm(p; :::)
142 CAPITOLUL 5. TESTE STATISTICE

care calculeaz valoarea teoretica a statisticii Z cu pragul de


semni catie al testului p.
^

In cazul nostru:

qnorm(0.975) #Z_(1-alpha/2) [1]


1.959964

Valoarea calculat a statisticii Z este egal cu 0:6676 si ^n valoare


absolut este mai mica dec^at valoarea teoretica 1:959964 pentru

= 0:05:

Asadar, se accept ipoteza nula a testului si astfel se decide ca media


esantionului este similar cu media ^ntregii selectii.
Alternativ, se poate folosi p-valoarea calculat . p-valoarea unui test
statistic este cea mai mica valoare a nivelului de semni catie pen-tru care
informatia extras din esantion este semni cativ
(H0 adevarat se respinge), cu un prag de semni catie al testului de 5%,
se poate aplica regula: dac valorea p este mai mare dec^at 0:05 atunci se
accept ipoteza nula H0, iar dac este mai mica dec^at
0:05 atunci se respinge ipoteza nula H0 ^n favoarea ipotezei alternative
^

H1. In cazul nostru, p-valoarea este 0:5044 > 0:05 si deci se accept ipoteza
nula H0

Exemplul 22 Durata de functionare a unui tip de bec electric de 100W


poate considerat o variabil aleatoare repartizat N(1500,200). O selectie
de n=25 de becuri da o durat medie de functionare de 1380 ore.

Sa se veri ce ipoteza H0 : m = m0 = 1500 relativ la ipoteza alternativ


H1 : m = m1 < 1500 la un prag de semni catie de = 0:01
Puterea testului pentru m=1400.
5.1. TESTE STATISTICE PENTRU UN ESANTION 143

a)Deoarece ( u) = 1 (u) implica

z = z1

Din tabele obtinem:

z = z = 2:33
0:01 0:99

Calculam
x =m +p z
c 0 n 0:01
Tastam ^n linia de comanda:

>m=1500
>sigma=200
>n=25
>z_alpha=-2.33
>xc=m+sigma/sqrt(n)*z_alpha

Obtinem:

[1] 1406.8

Deoarece x = 1380 < 1406:8; tragem conluzia ca se respinge ipo-teza


H0
b) Folosim formula:

(m0 m1)
(m1) = (z + p n)

(1500 1400)
(m1) = ( 2:33 + 200 5) = (0:17) = 0:5675
Dac folosim RStudio obtinem acelasi rezultat:
144 CAPITOLUL 5. TESTE STATISTICE

m=1500
sigma=200
n=25
z_alpha=-2.33
xc=m+sigma/sqrt(n)*z_alpha
xc
1406.8
> m1=1400
> a=z_alpha+((m-m1)/sigma)*sqrt(n) > a

0.17
> integrate(dnorm, -Inf,a)
0.5674949 with absolute error < 1e-04

5.1.2 Testul t pentru un esantion


Testul t (sau testul Student) pentru un singur esantion se foloseste
pentru a veri ca o ipoteza referitoare la media unei populatii repar-tizate
normal, cu dispersia de data aceasta necunoscuta; se aplic ^n cazul ^n
care esantionul e mai mic dec^t 30 subiecti. Se considera tot
selectie x1, x2; :::xn de variabile aleatoare independente si identic re-
2
partizate, de repartitie N(m; ), cu ^nsa necunoscut. Ipoteza nula este:
H0 : m = m0;
adic media populatiei din care este extras esantionul este egal cu media
populatiei de comparatie adic esantionul face parte din populatie, iar
ipoteza alternativa:
Ha : m ≠ m0:
adic populatia din care face parte esantionul este diferita de cea de
comparatie; esantionul nu face parte din populatie.
5.1. TESTE STATISTICE PENTRU UN ESANTION 145

Valoarea critica:
Cautam valoarea critica a lui t ^n tabelul distributiei lui t, ^n functie de
gradele de libertate.
df = n-1.
Dispersia populatiei din care provine selectia poate estimat prin estimatorul
deplasat:
∑i
1 n
S2 = 2
(xi x)
n =1

sau prin estimatorul nedeplas at:


∑i
n
2 1 2
s = (xi x )
n 1
=1

unde x reprezinta media de selectie a esantionului



i

1 n
x
x =n i
=1

Dac volumul selectiei este mare (n 30) atunci S2 s2: si se poate folosi
statistica Z (5:1): Dac n < 30 se poate folosi testul Student ^n care se
calculeaz statistica testului astfel :
x m0
t = s=p2 n
Aceast statistic a testului t este repartizat Student cu n 1 grade de
libertate.
Decizia statistica:
Dac valoarea lui t calculat este mai mare dec^at valoarea lui t critic,
atunci respingem ipoteza nula; dac valoarea lui t calculat este mai mica
dec^at t critic, atunci nu respingem ipoteza nula.
146 CAPITOLUL 5. TESTE STATISTICE

Estimarea mediei populatiei din care face parte esantionul: Estimam


limitele ^ntre care se gaseste (cu probabilitate de 99% sau 95%) media
populatiei din care face parte esantionul; Pentru a face es-timarea ne
folosim de : media esantionului, valoarea lui t critic si eroa-rea standard a
mediei (abaterea standard a distributiei esantioanelor
^

de volum n). In pachetul de functii R "stats" exista functia prede nita t.test, cu
prototipul:

t.test(x, y = NULL, alternative =


c("two.sided","less","greater"),
mu = 0, paired = FALSE, var.equal = FALSE,
conf.level = 0.95)
unde:
x = vectorul valorilor din primul esantion
y = al doilea vector (optional) de valori folosit pentru teste cu doua
esantioane
alternative = directia ipotezei alternative, valoarea implicita ind
dblleft two.sided dblright
(bilateral)
mu = media teoretica populatiei
paired = indicator logic pentru un t-test pereche
var.equal = variabil logica ce indica dac cele doua variante sunt egale
sau nu
conf.level = intervalul de ^ncredere
Consider^and din nou aplicatia de la testul anterior, de data aceasta cu
dispersie necunoscuta, nt^ai sa calculam statisticele clasice:

mean(x) #media datelor din vectorul x [1] 71.2

sd(x) #deviatia stantard a datelor din vect. x [1] 15.34637

O secventa de cod R care rezolva aplicatia considerat este:


5.1. TESTE STATISTICE PENTRU UN ESANTION 147

x = c(65, 78, 88, 55, 48, 95, 66, 57, 79, 81)
t.test (x, mu=75)
One Sample t-test
data: x
t = -0.783, df = 9, p-value = 0.4537
alternative hypothesis: true mean is not equal to 75
95 percent confidence interval:
60.22187 82.17813
sample estimates:
mean of x
71.2

Astfel sunt calculate:


- valoarea statisticii care este 0:783,
- numarul gradelor de libertate care este 10 1 = 9,
- intervalul de ^ncredere pentru media vectorului x, etc.
Putem compara valoarea statisticii testului cu valoarea distributiei
student cu 9 grade de libertate determinat e din tabele, e se poate folosi
functia R pentru determinarea acestei valori:
qt(p, df, ...)care calculeaz valoarea teoretica a statisticii t cu pra-^

gul de semni catie al testului p si numarul gradelor de libertate df. In


cazul nostru:

qt(0.975, 9) [1]
2.262157

Asadar, valoarea statisticii t este egal cu -0.783 si ^n valoare ab-soluta


este mai mica dec^at valoarea critica 2.262157 cu = 0:05 si deci se accept
ipoteza testului si se decide ca media esantionului este semni cativ similar
cu media ^ntregii populatii.
Alternativ, se poate folosi p-valoarea calculat . Cu un prag de semni
catie al testului de 5%, se poate aplica regula: dac valoarea p este mai
mare dec^at 0.05, atunci putem accepta ipoteza nula H0,
148 CAPITOLUL 5. TESTE STATISTICE

iar dac este mai mica dec^at 0:05;atunci respingem ipoteza nula H0 ^n
^

favoarea ipotezei alternative H1. In cazul nostru, p-valoarea este:

0:4537 > 0:05

si deci se accept ipoteza H0.

5.1.3 Testul binomial


Testul neparametric binomial poate folosit c^and avem o variabil cu
doua valori. Acesta se bazeaz pe urmatoarea formula:

P (k succese in n incercari) = Cnkpkqn k

Adica, probabilitatea de a obtine k evenimente din n ^ncercari se


calculeaz ca produs al combinatiilor de n luate c^ate k multiplicat cu
probabilitatea teoretica a succesului ridicat la numarul de suc-cese
^nmultit cu probabilitatea teoretica a esecului ridicat la puterea numarului
de esecuri.
Testul se realizeaz cu ajutorul statisticii Z:
x p
Z= √ N(0; 1)
pq=n
^
In R, ^n pachetul de programe standard \stats" exista functia pre-de
nita

binom.test(x, n, p = 0.5, alternative = c("two.sided", "less",


"greater"), conf.level = 0.95)

unde
x = numarul de succese sau un vector cu 2 componente:
(numar de succese, numar de esecuri)
n = numarul de ^ncercari
5.1. TESTE STATISTICE PENTRU UN ESANTION 149

p = probabilitatea de succes
alternative = directia ipotezei alternative, valoarea implicita ind
\two.sided" (bilateral)
conf.level = nivelul de ^ncredere al testului.

Exemplul 23 Sa se testeze ipoteza caci compartimentul de calitate al unei


rme ce produce microprocesoare spune adevarul sau nu si anume ca nu
se face nici o diferenta ^ntre cele pe 64 biti si cele pe 32 biti c^and se
face testul de anduranta. Se aleg 500 de microprcesoare si se gasesc 267
de microprcesoare pe 64 biti. Se considera cu nivelul de semni catie 5%.

Solutie 1 O secventa de cod R ce poate solutiona aplicatia este :

> binom.test(267,500)
#Exact binomial test data: 267 and 500
number of successes = 267,number of trials = 500, p-value =
0.1399
alternative hypothesis: true probability of success
is not equal to 0.5 95 percent confidence interval:

0.4891844- 0.5784114
sample estimates: probability of success 0.534

S-a obtinut o p-valoare apropiat de 0.1399, ind astfel mai mare dec^at
pragul de semni catie 0.05 si astfel se accept ipoteza nula.
Prin urmare, este foarte probabil ca departamentul de calitate sa spuna
adevarul.

2
5.1.4 Testul
Testul Hi-patrat se aplic dac urmatoarele conditii sunt ^ndeplinite:
150 CAPITOLUL 5. TESTE STATISTICE

Participantii la studiu apartin unui esantion independent rando-mizat.

Se doreste investigarea asocierii dintre doua variabile indepen-dente.

Caracteristicile observate sunt masurate pe scala nominal sau ordinal


^
In tabelul de contingenta teoretic (sau expectat) ecare celula contine
valori mai mari sau egale cu 10.

{Dac frecventele teoretice au valori ^ntre 5 si 9 se va aplica


corectia Yates.
{Dac frecventele teoretice au valori mai mici de 5 se va aplica
testul Fisher exact.
^
5. In tabelul de contingenta teoretic (sau expectat) > 80% din celule au
valori mai mari sau egale cu 5. Dac aceast conditie nu este
^ndeplinita se va aplica testul Fisher exact.

6. Nu exista nici o celula cu frecventa asteptat egal cu zero.

Acest test este unul dintre cele mai importante teste statistice pen-tru
cea mai buna potrivire a modelului ^n cazul unei variabile nominale cu
doua sau mai multe valori.
Ipoteza nula si ipoteza speci ca
Ho: frecventele observate pentru diferite modalitati ale variabilelor
sunt egale cu frecventele asteptate pentru modalitatile respective, ceea ce
^nseamn ca nu exista legatur ^ntre variabile (datele se potrivesc cu
modelul stabilit ^nainte).
Hs : frecventele observate sunt diferite de frecventele asteptate, ceea
ce ^nseamn ca exista legatur ^ntre variabile.
5.1. TESTE STATISTICE PENTRU UN ESANTION 151

Statistica testului se calculeaz ^n felul urmator:


Se ia numarul observat (ni) , se scade numarul asteptat ( n′i ) si se
ridica diferenta la patrat. Cu c^at deviatia fata de ipoteza nula este mai
mare, cu at^at mai mare ne asteptam sa e diferenta dintre numarul
observat si cel asteptat. Prin ridicarea la patrat, toate aceste diferente
devin pozitive.
Apoi, ecare dintre aceste diferente se ^mparte la numarul asteptat si
aceste diferente standardizate se ^nsumeaza:

k (ni n′ )2
2
=
i


n′ (5.2)
i
i=1
Ca ^n majoritatea testelor statistice, cu c^at este mai mare diferenta
dintre valoarea observat si cea asteptata, cu at^at mai mare devine
valoarea testului statistic. Distributia testului statistic sub ipoteza nula se
2
potriveste cu distributia .
K. Pearson a aratat ca, ^n cazul ^n care probabilitatile:

nu sunt apropiate de 0 sau 1, iar produsele

n′i = nipi

unde
pi = f(xi)
dupa estimarea parametrilor, nu sunt prea mici (practic nu sunt mai mici
2
dec^at 5), functia considerat are repartitia cu (s 1) k grade de libertate, s
ind numarul de valori observate, iar k numarul parametrilor estimati. Dac
^ntre repartitia de selectie si repartitia teoretica exista concordanta, atunci
statistica de nita de relatia (5.2) trebuie sa e mai mica si nu va depasi o
valoare determinat .
152 CAPITOLUL 5. TESTE STATISTICE

Estimarea:
2
( s 1) k;
este corespunzatoare numarului gradelor de libertate (s 1) k si
pragului de semni catie dat. Regiunea critica a testului va dat de
inegalitatea 2 2
>
(s 1) k;

si deci, dac 2 2
(s 1) k;

acceptam ipoteza H0, ^n caz contrar o respingem.


Caz special al testului chi patrat este testul medianei si este folosit
pentru comparatii ^ntre doua esantioane independente de subiecti (Ho:
medianele celor doua esantioane sunt egale); ecare esantion este ^mpartit
^n doua grupuri: un grup cu valori mai mici dec^at mediana celor doua
esantioane combinate si un grup cu valori mai mari dec^at mediana. Este
folosit apoi chi patrat pentru a veri ca dac frecventele observate sunt
diferite de cele asteptate.
^

In pachetul standard "stats" exista functia R prede nita


chisq.test(x, y = NULL, correct = TRUE,
p = rep(1/length(x), length(x)), rescale.p = FALSE,
simulate.p.value = FALSE, B = 2000)

unde
x = vectorul valorilor din primul esantion
y = vector (optional) de valori din al doilea esantion
correct = indicator logic referitor la faptul ca se aplic sau nu corectie
de continuitate
p = vectorul probabilitatilor de aceeasi lungime ca vectorul x cu
valoari implicite egale
rescale.p = indicator logic cu valoarea TRUE ^n cazul ^n care este
necesar rescalarea la suma 1, FALSE ^n cazul ^n care suma valorilor
5.1. TESTE STATISTICE PENTRU UN ESANTION 153

lui p nu este 1. - simulate.p.value = indicator logic ce speci ca dac se


calculeaz valorile p cu simulare Monte-Carlo
B = ^ntreg ce speci ca numarul de duplicate folosite ^n testul Monte-
Carlo.

Exemplul 24 Consideram ca rma Sibiemens are: 70% dintre relee


produse ^n Sibiu, 10% produse ^n Timisoara, 10% ^n Brasov si 10% ^n
Bucuresti. Vrem sa testam dac proportiile observate ^n esantionul
considerat difera semni cativ de cele din ipoteza statistic . Presupu-nem
ca frecventele observatiilor sunt urmatoarele: 145 relee din Sibiu, 24 din
Timisoara , 20 din Brasov si 11 din Bucuresti.

Solutie
Scriem urmatoarea secventa de cod RStudio:

frecvente = c(145,24,20,11)
proportii = c(0.7,0.1,0.1,0.1)
chisq.test(frecvente,p=proportii)
Chi-squared test for given probabilities data:
frecvente
X-squared = 5.0286, df = 3, p-value = 0.1697

Cuantila 2 cu 4-1=3 grade de libertate se pot determina e din tabele e


^n R astfel:

qchisq(0.95,3) [1]
7.814728

Aceste rezultate (p-valoarea este 0:1697 > 0:05) sau valoarea cal-
culat a statisticii testului este 5:0286 < valorea cuantilei cu 3 grade de
libertate = 7:814728 arat ca proportiile releelor din esantionul consi-derat
nu difera semni cativ de valorile furnizate ^n ipoteza statistic .
154 CAPITOLUL 5. TESTE STATISTICE

5.2 Teste statistice pentru doua esantioane


5.2.1 Testul Sign (al semnelor)
Acesta se aplic c^and nu putem masura diferenta dintre cele doua
esantioane, dar putem observa ca exista o diferenta ^ntre esantioanele ^n
discutie.
Se utilizeaz semnul diferentei si nu valoarea acesteia, atunci c^and
ambele valori sunt masurate pentru aceiasi subiecti. Dac nu ar exista
nicio diferenta ^ntre valorile perechi, atunci numarul diferentelor po-
zitive ar trebui sa e egal cu cel al diferentelor negative.
Cu c^at numarul diferentelor de un anumit semn este mai mare
comparativ cu cel al diferentelor de semn opus, cu at^at creste posibili-
tatea ca diferenta dintre variabile sa e statistic semni cativ . Putem
formula ipoteza testului astfel:

p = P (X > Y )

si ipoteza nula este ^n acest caz

H0 : p = 0:5

Acesta ipoteza implica faptul ca d^andu-se o pereche aleatoare de


masuratori (xi; yi)i atunci xi si yi au aceeasi sans de a mai mari unul
dec^at celalalt.
Variabilele celor doua esantioane trebuie sa e de tip numeric, iar
valorile sa e exprimate ^n aceeasi unitate de masura, pentru a se putea
face diferenta lor.
^

In pachetul de programe BSDA exista functia R prede nita:

>SIGN.test(x,y = NULL, md = 0,alternative = "two.sided", conf.level =


0.95)
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 155

unde
x = este un vector de valori din primul esantion (valori NA sau Inf se
accepta, ^nsa sunt ignorate)
y = este (optional) un vector de valori din al doilea esantion (valori
NA sau Inf se accepta, ^nsa sunt ignorate)
md = valoarea medianei populatiei speci cat ^n ipoteza nula ,
alternative=valoarea alternativ (valoarea implicita ind bilate-
ral),
conf.level = intervalul de ^ncredere.

Exemplul 25 [7, pag 328] Sa consideram doi vectori ce contin valori


^nainte de efectuarea unui control la receptia unor materiale necesare
producerii de componente electronice si dupa aceasta.
Vom testa ipoteza nula: "Nu exista diferente ^ntre cei doi vectori de masuratori",

cu ipoteza alternativa: "Exista diferente ^ntre cei doi vectori de masuratori"

Scriem codul RStudio:

x=c(15,14,14,13,15,13,12,13)
y=c(16,14,15,15,17,15,14,15)
SIGN.test(x,y)
Dependent-samples Sign-Test
data: x and y
S = 0, p-value = 0.01563
alternative hypothesis: true median difference is not equal
to 0
95 percent confidence interval:
-2.000 -0.675
sample estimates:
median of x-y
-2
156 CAPITOLUL 5. TESTE STATISTICE

Conf.Level L.E.pt U.E.pt


Lower Achieved CI 0.9297 -2 -1.000
Interpolated CI 0.9500 -2 -0.675
Upper Achieved CI 0.9922 -2 0.000

Cum p-valoarea este 0.01563 este foarte mica, atunci se respinge


ipoteza nula in favoarea ipotezei alternative.

5.2.2 Testul t pentru doua esantioane indepen-dente

Multe cazuri de analiz statistic implica o comparatie ^ntre me-diile a


doua colectivitati generale. Spre exemplu, patronul de la rma Flanco
doreste sa vad dac exista diferente ^ntre v^anzarile realizate la cuptoare
cu microunde ^nainte si dupa o campanie de publicitate. Un grup de
consumatori doreste sa vada, dac exista o diferenta sem-ni cativ ^ntre
consumul electric pentru doua tipuri de cuptoare cu microunde.

Conditii de aplicabilitate:

variabila independenta este masurat pe o scal nominala;

variabila dependenta este masurat pe o scal de interval sau de


proportii; variabila dependenta are o distributie normala;

Esantionul de subiecti a fost extras aleator din populatie, apoi a fost


^mpartit randomizat ^n doua grupuri; grupurile sunt mai mici de 30 (100)
de subiecti
Testul t pentru doua esantioane independente (nepereche) este pro-
babil cel mai folosit test statistic si cu siguranta cel mai cunoscut.
Utilitatea testului consta ^n faptul ca statisticienii examineaz cel mai
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 157

des natura a doua variabile pentru a a a dac variabilele sunt asoci-ate sau
nu. Testul este folosit ca o metoda de evaluare a diferentelor mediilor a
doua grupuri, care pot independente.
Testul poate folosit si pentru esantioane de dimensiune mica, ^

dar care sunt distribuite aproximativ normal. In general, testul t este


utilizat ^n urmatoarele trei situatii, diferentiate de situatia existenta ^ntre
dispersiile populatiilor si independenta esantioanelor:
esantioane independente, dispersii egale;
esantioane independente, dispersii diferite;
esantioane dependente (perechi, corelate).
Presupun^and ca se cunosc doua esantioane independente (x1; :::; xn)
si (y1; :::; ym), n > 30; m > 30, cu mediile m1, respectiv m2 si ca diferenta
dintre cele doua este distribuita normal, ipotezele statistice sunt
urmatoarele:
H0 : m1 = m2;adic cele doua esantioane fac parte din aceeasi
populatie;
Ha : m1 ≠ m2;(testul bilateral),sau m1 m2 > 0; m1 m2 < 0 (testul
unilateral)
Statistica testului se calculeaz astfel:

x y
t= n+m2 ∑
(5.3)
n m
n m u∑

t x )2 + (y 2
1 1 v i=1 (xi j=1 i y)

( + )u
Aceasta este repartizat Student cu n + m 2 grade de libertate.
Decizia statistica:
Dac t calculat este mai mare dec^at t critic, atunci respingem ipoteza
nula, iar dac t calculat este mai mic dec^at t critic, atunci nu respingem
ipoteza nula.

jtj > t
=2; n+m 2
158 CAPITOLUL 5. TESTE STATISTICE

Interval de ^ncredere:
Putem calcula intervalul ^n care se gaseste diferenta mediilor la
nivelul populatiei. astfel: calculam limita superioar si limita inferi-oar ^n
functie de: diferenta mediilor (m1 m2), valoarea lui t critic pentru = 0; 05
sau = 0; 01 si eroarea standard a diferentei medii-lor.

Puterea testului este capacitatea de a evita eroarea de tip 2 (eroarea


eroarea consumatorului) adic capacitatea testului de a descoperi si
diferentele mici ^ntre cele doua esantioane
Observatia 23 Se utilizeaz la controlul pe baza a doua selectii. Se
controleaz selectie din n1 produse, din care sunt respinse m1 produse.
Dac m1

c1

lotul este respins. Dac


m1
c1 c2
n1
se repeta ^ncercarea. Se ia o selectie din n2 produse si se determina
numarul produselor necorespunzatoare m2. Dac
m1 + m2
c3
n1 + n2
lotul se accepta, altfel se respinge. Constantele c i; i = 1; 2; 3 se iau din
normativ.
Se poate aplica functia t.test pentru doua grupuri:

Exemplul 26 Consideram doi vectori independenti (nepereche) cu c^ate


13, respectiv 8 componente reprezent^and doua selectii de relee a ate la
punctul de control nal. Aplicam testul t pentru a vedea dac mediile lor
sunt egale statistic. Dac nu speci cam ^n prealabil, se considera ca
dispersiile celor doua esantioane nu sunt egale
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 159

Solutie 2 Urmatoarea secventa de cod R aplic testul t pentru aplicatia


considerat

x <- c(79.98, 80.04, 80.02, 80.04, 80.03, 80.03, + 80.04, 79.97,


80.05, 80.03, 80.02, 80.00, 80.02)
y <- c(80.02, 79.94, 79.98, 79.97, 79.97, 80.03, + 79.95, 79.97)
t.test(x, y)
Welch Two Sample t-test
data: x and y
t = 3.2499, df = 12.027, p-value = 0.006939 alternative
hypothesis: true difference in means is not equal to 0

95 percent confidence interval:


0.01385526 0.07018320
sample estimates:
mean of x mean of y
80.02077 79.97875

Se observa ca p-valoarea este 0.006939 si nu este mai mare dec^at


0.05, deci exista o diferenta statistic ^ntre mediile celor doua grupuri.
Dac vrem sa consideram cele doua dispersii egale, procedam ast-
fel:

Exemplul 27 Reluam veri carea statistic pentru alte doua selectii:

x <- c(79.98, 80.04, 80.02, 80.04, 80.03, 80.03, + 80.04, 79.97,


80.05, 80.03, 80.02, 80.00, 80.02)
y <- c(80.02, 79.94, 79.98, 79.97, 79.97, 80.03, + 79.95, 79.97)
t.test(x, y, var.equal=TRUE)
Two Sample t-test
160 CAPITOLUL 5. TESTE STATISTICE

data: x and y
t = 3.4722, df = 19, p-value = 0.002551
alternative hypothesis:true difference in means is
not equal to 0
95 percent confidence interval:
0.01669058 0.06734788
sample estimates:
mean of x mean of y
80.02077 79.97875

Rezultatele indica faptul ca si de data aceasta (valoarea proba-bilitatii


p este 0.002551 < 0.05),deci exista o diferenta semni cativ statistic ^ntre
mediile celor doua grupuri.
Cu alte cuvinte, cum media primului grup este 80.02077 si media
celui de-al doilea grup este 79.97875, primul grup este mai semni cativ
statistic dec^at al doilea grup.
Exista si modalitatea gra c pentru compararea celor doua grupuri de
date:

>plot(ecdf(x),do.points=FALSE,verticals=TRUE,
+xlim=range(x, y))
>plot(ecdf(y),do.points=FALSE,verticals=TRUE,add=TRUE)
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 161

Figura 5.1: Testul T


162 CAPITOLUL 5. TESTE STATISTICE

5.2.3 Testul Wilcoxon pentru doua esantioane in-


dependente
Testul Wilcoxon (al rangurilor cu semn) pentru doua esantioane
nepereche este o alternativ neparametric a testului t prezentat ante-rior,
aplicat pentru doua esantioane independente (nepereche), testul Wilcoxon
nu face presupunerea ca diferenta dintre cele doua variabile este
distribuita normal.
Presupunerea care se face este aceea ca mediana diferentelor ^ntre
perechi de observatii este zero.
La testul t se facea presupunerea ca media diferentelor perechilor de
observatii este zero. ^

Ideea acestui test este urmatoarea. In primul r^and, valorile perechi


pentru care diferenta este zero se ignora. Apoi, ecare valoare abso-luta a
diferentelor dintre observatii primeste un rang: cea mai mica diferenta
primeste valoarea 1, urmatoarea rangul 2, etc. Dac avem diferente egale,
ambele vor primi ca rang media rangurilor. Rangurile tuturor diferentelor
dintr-o directie (pozitiv/negativ) se ^nsumeaz si rangurile din directia
opusa de asemenea si se obtin valorile W- si W+.
Cea mai mica dintre aceste valori este valoarea testului, W. Spre
deosebire de alte teste, valori mici pentru W sunt putin probabile ^n cazul
ipotezei nule.
^

In pachetul de functii R "stats" exista functia prede nita wil-cox.test, cu


prototipul:

wilcox.test(x, y = NULL, alternative =


c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, exact = NULL, correct = TRUE, conf.int
= FALSE, conf.level = 0.95) wilcox.test(formula, data, subset,
na.action) unde

- x = vectorul valorilor din primul esantion


5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 163

- y = al doilea vector (optional) de


valori folosit pentru teste cu doua esantioane
alternative = directia ipotezei alternative, valoarea
implicita fiind two.sided (bilateral)
mu = media teoretica populatiei
cu valoarea implicita 0
paired = indicator logic pentru un test pereche, implicit cu
valoarea FALSE
exact = indicator logic ce specifica daca
ar trebui calculata o p-valoare exacta
- correct = indicator logic ce specifica,
daca ar trebui aplicata o corectie de continuitate la aproximarea
normala a valorii lui p
- conf.int = indicator logic ce specifica
daca ar trebui calculat un interval de incredere
conf.level = intervalul de incredere
formula = este o formula de forma membrul_stang
~membrul_drept, unde membrul_stang este o variabila numerica
ce da valorile, iar membrul_drept este
un factor cu doua nivele corespunzatoare celor
doua grupuri
data = o matrice optionala sau data frame ce contine
variabilele din formula implicit acestea fiind luate din
environment;
na.action = o functie care indica ce ar trebui sa se intample in cazul
in care datele contin valori NA.

Exemplul 28 [22, pag 135] Sa consideram o companie care produce


^

baterii, printre care si baterii scumpe. Insa se doreste modi carea


necostisitoare a celor scumpe, astfel nc^at sa se ajung la cresterea
duratei de viata. Ipotezele statistice ar urmatoarele:
H0: durata de viata a bateriilor modi cate este aceeasi cu cea a
164 CAPITOLUL 5. TESTE STATISTICE

celor scumpe
HA: durata de viata a bateriilor modi cate este mai mare cu cea a
celor scumpe

Presupunem ca avem la dispozitie un esantion de 6 baterii scumpe si


un esantion de 5 baterii modi cate, cele 11 sunt construite ^n conditii
identice si independente.
Datele disponibile se refera la durata de viata a bateriilor conside-rate
si sunt urmatoarele:
= (48; 53; 74; 111; 113; 335) si Y = (62; 101; 167; 174; 190):
Urmatoarea secventa de cod R aplic testul Wilcoxon pentru exem-
plul considerat:
x=c(48,53,74,111,113,335)
y=c(62,101,167,174,190)
wilcox.test(x,y)
Wilcoxon rank sum test
data: x and y
W = 10, p-value = 0.4286
alternative hypothesis: true location shift is not equal
to 0

Cum p-valoarea este 0.4286 > 0.05 rezulta ca diferenta este nesem-ni
cativ statistic ^ntre cele doua esantioane.

5.2.4 Testul F pentru doua esantioane indepen-dente

Testul F (testul Snedecor) pentru doua esantioane independente este


un test de comparare folosit pentru a determina dac dispersiile acestora
sunt egale sau nu statistic. Testarea ipotezei privind dispersia poate
utilizat pentru a trage concluzii privitoare la consistenta unor procese
economice ori privitoare la riscurile asociate.
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 165

Situatia c^and se poate aplica testul F poate recunoscuta prin:


doua populatii caracterizate de variabilele X1 respectiv X2;
variabilele sunt repartizate normal
2
X1 N(m1; 1)
2
X2 N(m2; 2)

- doua esantioane, unul din ecare populatie: (x1; ::::; xn1 ), respec-tiv
(y1; ::::; yn2 ).
Ipotezele testului pot at^at de tip lateral c^at si de tip bilateral..
Testul bilateral:

2
H 1
0 : 2
2 = 1; egalitatea celor doua dispersii
2

H1 ̸= 1
1
: 2

Testul unilateral:

2
H 1
0 : 2
2 = 1; egalitatea celor doua dispersii
2 2
1 1
H1 : 2 < 1 sau 2 >1
2 2

C^and ipoteza nula este adevarata, statistica:


S2
1

F = S2 2

este repartizat Snedecor

F
;n1 1;n2 1
166 CAPITOLUL 5. TESTE STATISTICE

pentru un prag de semni catie , unde


∑i
1 n1
S12 = (xi x )2; estimatia nedeplasat pentru 1
2

n1 1
=1
∑i

2 1 n2
S2 = (yi y )2; estimatia nedeplasat pentru 2
2

n2 1
=1

Repartitia F (Snedecor) cu 1, respectiv 2 grade de libertate are functia


de densitate de forma:
1
2 1+ 2 ) x
1 2 1 1
x2 (1 +
( 1 2

f(x) = 2 ) 2 ) 2) 2 ); x 0
Decizia, la pragul de semni catie , pentru testul bilateral este
urmatoarea: se respinge ipoteza nula H0 ^n favoarea ipotezei alterna-tive
Ha daca:
F > F1 =2 ;n1 1;n2 1
sau
F < F1 =2 ;n1 1;n2 1
Decizia, la pragul de semni catie , pentru testul unilateral este
urmatoarea:
se respinge ipoteza nula H0 ^n favoarea ipotezei alternative Ha daca:

F> F
1 ;n1 1;n2 1
^

In pachetul de functii R "stats" exista functia prede nita var.test, cu prototipul:

>var.test(x,y,ratio = 1,alternative =
c("two.sided", "less","greater"),
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 167

conf.level = 0.95, ...)


sau
>var.test(formula,data,subset,na.action, ...)

unde
x = vectorul valorilor din primul esantion
y = al doilea vector (optional) de valori folosit pentru teste cu doua
esantioane
ratio = raportul presupus pentru dispersiile populatiilor din care
provin cele doua esantioane
alternative = directia ipotezei alternative, valoarea implicita ind
\two.sided"(bilateral)
conf.level = intervalul de ^ncredere
formula = este o formula de forma membrul st^ang membrul drept,
unde membrul st^ang este o variabil numerica ce da valorile,iar mem-brul
drept este un factor cu doua nivele d^andu-se corespunztoare celor doua
grupuri
data = o matrice optional sau data frame ce contine variabilele din
formula, implicit acestea ind luate din environment;
subset = vector (optional) ce speci ca submultimea de observatii ce se
va folosi
na.action = o functie care indica ce ar trebui sa se nt^ample ^n cazul
^n care datele contin valori NA

Exemplul 29 [9, pag 138] Fie 50 de valori reprezent^and un lot de


microprocesoare distribuite N(0,2) si 30 de masuratori reprezent^and alt
lot distribuite N(1,1). Pentru a vedea dac cele doua esantioane au dis-
persiile egale sau diferite se poate folosi urmatorul cod de instructiuni R:

x <- rnorm(50, mean = 0, sd = 2)


y <- rnorm(30, mean = 1, sd = 1)
168 CAPITOLUL 5. TESTE STATISTICE

var.test(x, y) # x si y au aceeasi dispersie? F test to compare


two variances data:
x and y
F = 5.4473, num df = 49,denom df = 29, p-value
=6.182e-06
alternative hypothesis:true ratio of variances is not equal
to 1
95 percent confidence interval:
2.736839 10.248600
sample estimates: ratio
of variances 5.447279

qf(0.975,49,29) #quantila F(1-alpha/2,n1-1,n2-1) [1] 1.990354

Cum valoarea calculat (5.4473) este mai mare dec^at valoarea te-
oretica (1.990354), atunci se respinge ipoteza nula.

5.2.5 Testul Kolmogorov-Smirnov


Se foloseste pentru cazul c^and dorim sa determinam, dac doua
esantioane sunt semni cativ diferite. Spre deosebire de alte teste, tes-tul
Kolmogorov-Smirnov nu presupune nimic despre distributia da-telor si se
poate spune ca acest test este neparametric si liber de
^

distributii. In general, testul Kolmogorov-Smirnov se poate aplica pentru


un esantion sau pentru doua esantioane. C^and se aplic testul pentru un
esantion, se compar distributia testat cu alte distributii cunoscute, cum ar
distributia uniforma, normal sau lognormal .
Testul Kolmogorov-Smirnov pentru doua esantioane compara, dac
cele doua esantioane de date provin din aceeasi distributie, desi nu se
speci ca exact tipul distributiei.
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 169

Din studierea convergentei functiei empirice de repartitie Fn catre


functia teoretica de repartitie F , Kolmogorov a demonstrat urmatoarea
teorema:
K ∑
2
1 k 2k 2
lim P (d <
n n p ) = K( ) = ( 1) e (5.4)
!1 n =

unde > 0;
dn = max jFn(x) F (x)j
Exista si algoritmi pentru aproximarea functiei K pentru diverse
valori ale lui (tabelul distributiei Kolmogorov).
Cu ajutorul teoremei (5.4) se poate da un criteriu de veri care a
ipotezei H0 ;ca repartitia empirica urmeaz o anumit lege de repartitie.
Dac ipoteza H0 este adevarata, atunci diferentele

jFn(x) F (x)j

nu vor depasi o anumit valoare d ; n pe care o xam astfel nc^at:

P (dn > d ;n=H0) =

unde este riscul de gradul nt^ai.


Dar
P (dn > d ;n) = 1 P (dn d ;n)
Lu^and
dn = p
2 n

^nseamn ca atunci c^and H0 este adevarat si n su cient de mare avem:

P (dn > p ) = 1 P (dn p)=1 K( )=


2 n 2 n
170 CAPITOLUL 5. TESTE STATISTICE

Unui prag de semni catie dat ^i corespunde prin relatia


K( )=1
, iar pentru un volum n dat al selectiei gasim valoarea:

d ;n = p
2n

.
Regiunea critica pentru ipoteza H0 este dat de relatia:

dn > p
2 n

Deci:
dac dn < p2n , exista concordanta ^ntre Fn si F si se accept ipoteza
H0:

dac dn p2n ,nu exista concordanta si respingem ipoteza H0.


^
In pachetul standard "stats" din R exista functia ks.test:
>ks.test(x, y, alternative = =c("two.sided","less", "greater"),
exact = NULL)
unde
x = este un vector de valori din primul esantion
y = este (optional) un vector de valori din al doilea esantion sau un sir
de caractere ce reprezinta functia de distributie ca de exemplu pnorm.

alternative = directia ipotezei alternative, valoarea implicita ind


\two.sided" (bilateral).
exact = NULL sau un indicator logic ce stabileste dac p-valoarea
trebuie calculat;
Nu se foloseste pentru teste unilaterale cu doua esantioane sau ^n
cazul valorilor ambigue .
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 171

Exemplul 30 [7, Pag 231] Sa consideram doua esantioane: primul cu 50


de componente electronice defecte repartizate N(0,1), iar al doi-lea cu
30 de componente electronice defecte repartizate U(0,1). Au aceasi
distributie?

x <- rnorm(50)
y <- runif(30)
ks.test(x, y)
># test Kolmogorov-Smirnov (au aceeasi distributie?) Two-
sample Kolmogorov-Smirnov test data: x and y

D = 0.54, p-value = 1.598e-05


alternative hypothesis: two-sided #testul bilateral

Cum p-valoarea este:


5
1:598 10 < 0:5

rezulta ca cele doua grupuri sunt semni cativ diferite statistic.

Exemplul 31 S-au testat doua noi tipuri de tehnolgii pentru mi-


croprocesoare pe 64 biti si s-au obtinut urmatorii timpi de raspuns
masurati ^n nanosecunde:
T 1 68 82 95 109 112 76 81
T 2 66 88 106 121 116 79 89
Sa se veri ce folosind testul Kolmogrov-Smirnov dac 9 o diferenta
semni cativ .

Scriem ^n linia de comanda:

x1 <-c(68,82,95,109,112,76,81);
x2 <-c(66,88,106,121,116,79,89);
summary(x1)
172 CAPITOLUL 5. TESTE STATISTICE

Min. 1st Qu. Median Mean 3rd Qu. Max.


68.0 78.5 82.0 89.0 102.0 112.0
> summary(x2)
Min. 1st Qu. Median Mean 3rd Qu. Max.
66.0 83.5 89.0 95.0 111.0 121.0
X1 = cumsum(x1);
X1
68 150 245 354 466 542 623 > X2 =
cumsum(x2);
> X2
66 154 260 381 497 576 665 >
#Verificare grafica
> require(graphics); > f1
<- ecdf(X1);
> f1 Empirical
CDF Call:
ecdf(X1)
x[1:7] = 68, 150, 245, ..., 542, 623 > f2 <-
ecdf(X2);
> f2 Empirical
CDF Call:
ecdf(X2)
x[1:7] = 66, 154, 260, ..., 576, 665 > op <-
par(mfrow = c(1,2))
> plot(f1,do.points=FALSE,verticals=TRUE) >
grid(10, 10, lwd = 2);
> plot(f2,do.points=FALSE,verticals=TRUE) >
grid(10, 10, lwd = 2);
> #Kolmogorov-Smirnov test >
ks.test(X1,X2)
Two-sample Kolmogorov-Smirnov test
data: X1 and X2
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 173

D = 0.14286, p-value = 1 alternative


hypothesis: two-sided

Observam ca nu exista o diferenta semni cativ ^ntre cele doua


tehnolgii gura(5.2):

Figura 5.2: Testul Komogorov-Smirnov doua selectii


174 CAPITOLUL 5. TESTE STATISTICE

5.2.6 Puterea unui test


Pentru analiza puterii unui test si a marimii efectului exista destul de
multe pachete. Pentru moment vom alege pachetul "powerAnaly-sis",
instal^andu-l si ^ncarc^andu-l ^n mediul RStudio astfel:
install.packages("powerAnalysis")
library(powerAnalysis)
Atunci c^and avem ^n vedere calculul marimii efectului depistat de testul
One Sample t-test, putem folosi functia ES.t.one(), fur-niz^and minimum de 3
parametri: parametrul "m" ce include media esantionului, parametrul "mu" ce
include media populatiei si parame-trul "sd" ce include abaterea standard a
esantionului. Pentru a calcula puterea cercetarii ^n care s-a utilizat acest test
statistic, se poate fo-losi functia power.t() furniz^and, si aici, obligatoriu,
parametrul "es" ce va include marimea efectului, parametrul "n" ce contine
volumul lotului de cercetare, parametrul "sig.level" ce contine valoarea prag la
care a fost respinsa ipoteza nula si parametrul "type" ce contine tipul testului
statistic folosit: "one", "two" sau "unequal".
power.t(es=2.903211, type='one', n=1566, sig.level=0.01) One-sample t
test power calculation
es = 2.903211
n = 1566
power = 1
sig.level = 0.01
alternative = two.sided
NOTE: n is the number of observations

Dac volumul observatiilor este foarte mare, cercetarea are, si ea, o


putere foarte mare. Dac esantionul este reprezentativ, devine aproape cert
ca orice alt cercetare replicat va conduce la identi carea unui efect
asemanator. Cu ajutorul functiei describeBy() din pachetul
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 175

"psych" putem elabora statisticile descriptive ale unei variabile ^n functie


de o variabil de grup si se poate utiliza aceast facilitate pentru a inspecta
variantele.
^

In cazul esantioanelor perechi, rezultate ^n urma cercetarilor folo-sind


masurari repetate (serie temporal cu 2 momente), putem utiliza tot functia

t.test() incluz^and parametrul "paired" setat la valoarea TRUE. .


Deoarece puterea cercetarii, marimea efectului si semni catia sta-
tistica sunt inter-relationate, folosind functia power.t() putem face mai
multe lucruri

Calculul volumului esantionului,

Calculul marimii efectului,

Tot ^n categoria analizelor descriptive se gasesc functiile skew() si


kurtosis() care furnizeaz direct indicatorii simetriei si boltirii, functiile
geometric.mean() si harmonic.mean() care calculeaz media geometrica si
media armonic dar si functiile multi.hist() si error.bars() care traseaz
histograma distributiei, inclusiv simularea curbei normale, respectiv
media si intervalele de ^ncredere.

Observatia 24 Pentru corelatiile bivariate, atunci c^and se urmareste


construirea unei matrice de corelatii, exista functiile corr.test() si
cor.plot(), ultima dintre ele a s^and-o gra c. De asemenea, cu aju-torul
functiilor polychoric(), tetrachoric(), biserial() si poly-serial() se pot
realiza corelatii polichorice, tetrachorice, biseriale si poliseriale, utile la
analiza instrumentelor deoarece spatiile lor de ra-spunsuri nu pot
considerate variabile continue.
^
Exemplul 32 In urma aplicarii a cinci tipuri de noi tehnologii pen-tru
proiectarea unui microprocesor pe 64 biti sau obtinut urmatoarele pro
turi ^ntr-un an (exprimate ^n mii euro)
176 CAPITOLUL 5. TESTE STATISTICE

T ip tehn
1 48 53 47 50
2 50 53 47 51
3 47 50 52 49
4 49 48 53 48
5 47 51 52 49
Sa se veri ce in uenta factorului Tip tehn asupra pro tului.

Solutie 3 Vom folosii functiile skew(), kurtosi() si multi.hist(). Tastam ^n


linia de comanda:

teh1 = c(48,53,47,50)
teh2 = c(50,53,47,51)
teh3 = c(47,50,52,49)
teh4 =c(49,48,53,48)
teh5 =c(47,51,52,49)
teh=c(teh1,teh2,teh3,teh4,teh5)
n=rep(4,3)
v=rep(1:3,n)
table(teh)
teh
47 48 49 50 51 52 53
4 3 3 3 2 2 3
library(psych)
skew(teh)
0.2179354 >
kurtosi(teh)
-1.40685
> geometric.mean(teh)
49.65688
> harmonic.mean(teh)
49.61402
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 177

Figura 5.3: Puterea unui test

mean(teh) [1]
49.7
multi.hist(teh)
error.bars(teh)

Obtinem rezultatele din gura(5.3).


178 CAPITOLUL 5. TESTE STATISTICE

Observatia 25 Privind analiza scalelor, pachetul "psych" contine at^at


functii pentru consistenta interna, c^at si pentru analiza factorial sau
analiza de cluster. Coe cientul Alpha-Cronbach se poate a a cu ajuto-rul
functiei alpha(). Mai mult dec^at at^at, functia guttman() ne ofera toate
cele 8 masuri ale delitatii iar functiile omega() si omegaSem() ofera o alt
modalitate ^n acest sens, bazat pe analiza factorial con-rmatorie.

Concluzie 1 Orice test are anumite conditii ^n care se aplica, de exemplu


un test pe medii se aplic doar dac datele urmeaz o distributi-e normal .
Alegerea testului se face ^n functie de tipul parametrului
(calitativ/cantitativ) si conditiile de aplicare ale testului. Pentru e-care
statistic a testului se calculeaz probabilitatea (p) de a observa, dac acea
statistic s-a obtinut doar datorit sansei.

5.3 Elemente de analiz dispersional


De nitie 33 Analiza dispersional sau analiza variantei prescurtat ANOVA
este metoda statistic de analiz a datelor de observatie care depind de mai
multi factori cu actiune concomitenta, cu scopul de a stabili pe cei mai
importanti si de a estima in uenta lor.

Deci analiza dispersional este mai nt^ai, o metoda de veri care a


egalitatii unui numar mai mare dec^at 2 de valori medii pentru populatii
normale omogene ( de aceasi dispersii), acest concept a fost introdus de
R.A. Fischer.
Ipoteza nula: valorile medii ale populatiilor sunt egale, ^mpreuna cu
presupunerea ca dispersiile sunt egale, deci se poate considera ca este
vorba, de fapt de aceeasi populatie.
Ipoteza alternativa: valorile medii sunt diferite, iar diferentele sunt
explicate prin in uenta pe care unul sau mai multi factori o au asupra
populatiilor.
5.3. ELEMENTE DE ANALIZA DISPERSIONALA 179

Fie Y o variabil aleatoare ale caror valori depind de factorii

X1; X2; :::Xn:

Acesti factori pot calitativi, deci variabilele indicator ce iau valori 1 si 0


sau cantitativi adic variabile ce iau valori reale oarecare. Multimea
valorilor unui factor poate format dintr-un numar nit de elemente sau un
numar nit de clase.
O astfel de clas de valori se numeste nivel al factorului con-siderat,
asadar se va spune ca factorii calitativi au un numar nit de niveluri. O
mare clas de probleme admite pentru observatiile y1; y2;:::yp
reprezentarea
p

i′
y =x
i ji j + ei; 1 i n; (5.5)
=1

unde xji sunt coe cienti constanti cunoscuti, j sunt efecte necu-noscute,
iar v.a. ei sunt erori de observatie sau de masurare cu:

M(ei) = 0

Dac xji iau numai valorile 0 sau 1;atunci (5.5) este un model de analiz
dispersional liniar general.
Dac xji nu sunt variabile indicator, atunci este cazul analizei de
regresie, iar dac unele din variabilele xji sunt indicator iar altele iau valori
continue, atunci suntem ^n cazul analizei de covarianta.
Dupa numarul de factorilor, analiza dispersional se clasi c ^n:

unifactorial

bifactorial

multifactorial .
180 CAPITOLUL 5. TESTE STATISTICE

Dupa natura factorilor modelele de analiz dispersional se clasi c


^n:

model cu efecte nealeatoare sau modelul I al lui Eisenhart.

model cu efecte aleatoare sau model II al analizei de varianta

modelul mixt de analiz dispersional ^n care unii factori sunt ne-aleatori si


altii sunt variabile aleatoare.

Un studiu consistent al acestor modele se gasesc ^n cartea ([1, pag


267-274]).
Sa presupunem ca se masoar 3 loturi a c^ate 100 de bucati de table de
inox prin trei metode: control nedistructiv cu ultrasunete, control cu
pulberi magnetice, RX, fac^andu-se c^ate ni; i = 1; 2; 3 determinari prin
ecare metoda. Cele trei loturi provin de la trei furnizori de table de inox
diferiti. Se admite ca exista o relatie liniar de dependenta stochastic de
forma:

yji = + i + eij ; j = 1; :::n; i = 1; 2; 3

unde yji reprezinta cea de a j valoare obtinuta prin metoda i de masurare,


media care ar trebui sa o aib ecare lot, i; i = 1; 2; 3 este eroarea sistematic
introdusa de metoda de masurare, iar eij ero-rile de observatie. Din
considerente de calcul se pune conditia:
3

i =0
i=1

Cele trei metode de masurare sunt suspecte a nu exacte si de aceea sunt


supuse unei analize statistice. Efectele i ale metodei de masurare sunt
considerate a constante, a se vedea exemplul 43.
Capitolul 6

Studiul calitatii produselor

6.1 Indicatori de conformitate


Conformitatea unui lot de produse poate exprimat e de numarul de
defecte, e de numarul de elemente defecte. Dac defectele sunt
independente, este indicat sa se ia ^n consideratie numarul total de
defecte, iar ^n caz contrar numarul de elemente defecte. Defectele care
compromit utilizarea produsului se numesc majore, iar cele care fac ca
utilizarea produsului sa e mai di cila, far a o compromite se numesc
minore, iar cele cu consecinte deosebit de grave, care pot prelicrita vieti
omenesti, se numesc critice ([16]). Pentru a aprecia conformitatea unui lot
se utilizeaz ca indicator raportul:

D
P=N

adic proportia de defecte sau defective din lot.


Proportia de defective din lot se interpreteaz ca probabilitate, ceea ce
permite extinderea acestui indicator de la cazul loturilor de produse
realizate la cel al productiei ^n curs de realizare. Fie un proces cu

181
182 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

nivelul de conformitate p: Dac se alcatuiesc loturi de produse realizate ^n


urma procesului, nivele de conformitate vor oscila ^n jurul lui p:

Observatia 26 Indicatorul de conformitate este singurul indicator utilizat


^n controlul atributiv prin care de veri ca doar apartenenta vectorului
performantelor la domeniului de acceptare far sa se ^nregistreze valorile
lor absolute.

Dac performantele ecarui element controlat sunt ^nregistrate, asa cum


se nt^ampl ^n controlul prin masurare, indicatorului p i se alatur
caracteristicele numerice ale performantelor interpretate ca variabile
aleatoare continue.
De multe ori legea de repartitie asociat performantei este legea
normal a carei densitate de probabilitate este:

1 (x )2
f(x) = p 2 exp( 22 (6.1)
unde parametrii si reprezinta media si dispersia performatei. Functia
de repartitie pentru legea normal standard N(0,1)
este
x
1

(x) = p2 ∫ exp( t2=2)dt; x 2 R (6.2)


se numeste functia lui Laplace.
Media si dispersia performantei pot considerate indicatori de
conformitate deoarece de valorile lor depinde direct nivelul probabi-litatii
de aparitie a defectului. Matematic, legatura dintre indicatorii de
conformitate este exprimat prin relatia
Ts

∫ ( ) (T )
1 p = f(x)dx + Ts i
Ti
6.2. ESTIMAREA SI VERIFICAREA INDICATORILOR 183

unde (z) este functia dat de relatia (6.2).


O minimizare a proportiei de defecte p se face prin pozitionarea
mediei ^n centrul c^ampului de toleranta. Pentru o anumit valoare a
mediei, proportia de defecte scade cu micsorarea dispersiei, a varia-
bilitatii (^mprastierii productiei). Dac f(x) dat de relatia (6.1) este
densitatea de probabilitate asociat performantei, media si dispersia sunt
de nite prin relatiile:
1

= ∫ x f (x)dx
0
1

2
∫ 2
= 0 (x ) f (x)dx
valorile lor determina proportia de elemente defecte p:

Concluzie 2 Exista o legatur str^ans ^ntre conformitate si varia-bilitate.


Orice actiune av^and drept scop ^mbunatatirea conformitatii trebuie
^ndreptat ^nspre micsorarea variabilitatii a carei tendinta na-tural este
de crestere.

6.2 Estimarea si veri carea indicatorilor


Etapa I a evaluarii indicatorilor consta ^n extragerea esantionului
dintr-un lot sau dintr-o productie ^n curs de realizare. Pentru ca acest
esantion sa e reprezentativ, el trebuie extras ^n mod aleator, far nici o
regula sau idee preconceputa, din colectivitatea analizat .
O cale de ^nlaturare a oricarei regularitati ^n alegerea elementelor din
esantion este folosirea unui tabel de numere aleatoare generate prin
metoda de simulare Monte Carlo [26].
184 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

Dac toate elementele colectivitatii sunt numerotate si selectia lor se


face conform tabelului, caracterul aleator al esantionului este asi-gurat.
Odat esantionul extras si elementele sale masurate se trece la prelucrarea
datelor ^n vederea evaluarii indicatorilor de conformitate prelucrarea
datelor ^n vederea evaluarii indicatorilor de conformitate, prelucrare
bazat pe teoria estimarii parametrilor.
Conform acestei teorii, pe baza datelor experimentale se poate con-
strui estimatia punctual a unui indicator ca o valoare orientativa, a carei
apropiere de valoarea adevarat este cu at^at mai mare cu c^at esantionul
este mai mare. Valorile estimate punctual sunt variabile aleatoare, ele
depinz^and de modul de extragere a esantionului. Dac media estimatiei
punctuale coincide cu valoarea adevarat a indi-catorului, estimatia se
numeste nedeplasat .
O metoda de constructie a estimatiilor punctuale pe baza date-lor
experimentale este metoda verosimilitatii maxime, conform careia
estimatia punctual reprezinta valoarea indicatorului care ma-ximizeaz
probabilitatea de aparitie a rezultatelor experimentale efec-tiv obtinute.
Aplic^and aceast metoda se obtin estimatiile punctuale nedeplasate:

n
pb = n xi
=1
= ∑i

=x

nn
b (xi x )2
=1
2
= ∑i

= s2

b n 1
unde n reprezinta volumul esantionului, d numarul de defecte sau de
produse defecte din esantion, iar x1; x2; :::xn valorile masurate ale
6.2. ESTIMAREA SI VERIFICAREA INDICATORILOR 185

performantei. Dac se doreste un control al apropierii valorilor es-timate


de cele adevarate ale indicatorilor se recurge la estimarea cu interval de
^ncredere. Pe baza datelor experimentale se calculeaz doua limite ^ntre
care se gaseste valoarea adevarat a indicatorului cu probabilitatea impusa
1 ; numita interval de ^ncredere. Dac
este un indicator oarecare de conformitate, de nitia matematic a
intervalului de ^ncredere este:

P ( inf < < sup )=1 :

C^and una din limitele intervalului de ^ncredere ( inf ; sup) ia valoa-sau


rea 1; intervalul de ^ncredere se numeste unilateral. Evaluarea
indicatorilor de conformitate prin metoda estimarii cu
interval de ^ncredere este afectat de o precizie foarte redusa, chiar pentru
esantioane relativ mari. Precizia estimarii este evaluat prin ecartul dintre
limitele intervalului de ^ncredere si valoarea adevarat a indicatorului.

La un anumit nivel de ^ncredere, precizia se ^mbunatateste cu


cresterea nivelului de ^ncredere.
Contradictia dintre precizie si ^ncredere apare clar. Estimarea cu
interval de ^ncredere a indicatorilor si este mai precisa la aceasi volum al
esantionului, dec^at cea al lui p datorit informatiilor mai ample furnizate
de controlul prin masurare.
Un mod diferit de punere al problemei, face ca evaluarea indica-
^

torilor sa aib perspective mai promitatoare. In loc sa se urmareasc


localizarea c^at mai precisa a indicatorilor de conformitate, se utilizeaz
datele experimentale doar pentru ^ncadrarea indicatorilor ^ntr-o zona
acceptabil .
Acest punct de vedere este sprijinit pe teoria veri carii ipotezelor
statistice, parte integrant a statisticii matematice. Conform acestei teorii,
asupra unui indicator de conformitate se formuleaz o ipo-teza H 0 numita
ipoteza nula, privind apartenenta indicatorului unui
186 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

anumit domeniu DA:


^

In acelasi timp se formuleaz ipoteza alternativ H 1 conform caruia


indicatorul apartine unui alt domeniu DR;veri carea respectiv adoptarea
uneia din cele doua ipoteze se face supun^and datele experi-mentale unui
anumit criteriu de decizie.
Fie x vectorul datelor experimentale care constau din cele n ma-
^

surari efectuate ^n cadrul controlului. In spatiul datelor experimentale se


de nesc un domeniu de acceptare ∆A si un domeniu de respingere ∆R
astfel nc^at dac vectorul observatiilor experimentale x 2 ∆A se accept
ipoteza nula H0; iar dac x 2 ∆R se accept ipoteza alternativ H1:Dac
reuninea domeniilor ∆A; ∆R nu acoper tot ^ntreg spatiul observatiilor
experimentale, este posibil sa nu se ia nici o decizie, ^n care caz
esantionul trebuie marit.
Criteriul de decizie, respectiv delimitarea domeniilor ∆ A; ∆R este
determiant de nivelul prestabilit al erorilor asociate veri carii ipoteze-lor.

Observatia 27 Aceste notiuni vor reluate din perspectiva abilitatii.

Exista doua tipuri de erori:

eroarea de ordin I, care consta din respingerea ipotezei H0;

eroarea de ordin II, care consta din acceptarea ipotezei H0; cu toate ca
este fals .

Probabilitatile acestor erori, numite riscuri de nite astfel:

= P (x 2 ∆R= 2 ∆A) = P (x
2 ∆A= 2 ∆R)
domeniile DA si DR reduc^andu-se la c^aze o singura valoare a indi-
catorului 1; respectiv 2:
6.2. ESTIMAREA SI VERIFICAREA INDICATORILOR 187

De nitie 34 Procedeul de a folosii o selectie pentru a veri ca dac o


ipoteza este adevarat (sau falsa) se numeste test statistic asupra
valabilitatii (sau falsitatii) ipotezei.

Exista doua tipuri de erori care pot sa apar :

Dac se nt^ampl ca ipoteza cercetat sa e adevarat si noi decidem ca este


falsa, facem o eroare de grad I, probabilitatea acestei erori se
noteaz cu :

Dac dinpotriva ipoteza este fals si noi decidem ca este adevarata, facem
o eroare de grad II, probabilitatea acestei erori se no-teaz cu :

Valorile tipice impuse riscurilor sunt de = 5% pentru producator si =


10% pentru bene ciar.

De nitie 35 Numim ipoteza statistic o presupunere relativ la legea pe


care o urmeaz o caracteristic X :

C^and ipoteza statistic se refera la parametrii de care depinde legea de


probabilitate a caracteristicii X se obtine un test parametric, iar ^n caz
contrar un test neparametric.
Pentru testele parametrice vom considera ca:

2 A0 [ A1 ; A0 \ A1 =

De nitie 36 Ipoteza
H0 : 2 A0
se numeste ipoteza nula, iar

H1 : 2 A1
se numeste ipoteza alternativ .
188 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

Dac ipoteza nula are forma

H0 : = 0(ipteza simpla)

putem avea pentru ipoteza alternativ una din formele


H
1 : ̸= 0 (test bilateral)
H
1 : < 0 (test unilateral stanga^ )
H
1 : > 0 (test unilateral dreapta)
Drept concluzie la un test de veri care a ipotezelor vom lua o decizie,
adic vom decide sa acceptam ipoteza nula (de fapt nu reusim sa o
respingem) sau o respingem.
Dac se doreste un control al apropierii valorilor estimate de cele
adevarate ale indicatorilor de conformitate se recurge la estimarea cu
interval de ^ncredere. Pe baza datelor experimentale se calculeaz doua
limite ^ntre care se gaseste valoarea adevarat a indicatorului cu
probabilitatea impusa 1 ; numita interval de ^ncredere. Dac
este un indicator oarecare de conformitate, de nitia matematic a
intervalului de ^ncredere este:

P ( inf < < sup) =1 :

C^and una din limitele intervalului de ^ncredere ( inf ; sup) ia valoa-


rea 0 sau 1;intervalul de ^ncredere se numeste unilateral.
Evaluarea indicatorilor de conformitate prin metoda estimarii cu
interval de ^ncredere este afectat de o precizie foarte redusa, chiar pentru
esantioane relativ mari. Precizia estimarii este evaluat prin ecartul dintre
limitele intervalului de ^ncredere si valoarea adevarat a indicatorului.

La un anumit nivel de ^ncredere, precizia se ^mbunatateste cu cresterea


nivelului de ^ncredere. Contradictia dintre precizie si ^ncredere apare
clar. Estimarea cu interval de ^ncredere a indicatorilor m si este
6.2. ESTIMAREA SI VERIFICAREA INDICATORILOR 189

mai precisa la aceasi volum al esantionului, dec^t cea al lui d datorit


informatiilor mai ample furnizate de controlul prin masurare.
Rezulta ca exista doua grade de libertate ^n alegerea planului de
control : nivelul de control si nivelul de calitate acceptabil AQL. At^at
marimea nivelului de control c^at si micsorarea lui AQL conduc la o
^mbunatatire a carcteristicii operative ^n sensul ca acesta devine abrupt .
Deci se impune o alegere judicioas a nivelului AQL de catre producator
care trecbuie sa aib ^n vedere realizarea judi-cioas a unor bene cii pe
termen lung, pun^andu-se ^n balanta costul controlului cu penalizarile
datorate elementelor defecte care trec de control.

Pentru bene ciar, alegerea nivelului de calitate acceptabil este si mai


di cila deoarece este greu sa se admit ca un lot este acceptabil c^and
contine elemente defecte. Mai usor ^i este bene ciarului sa im-puna
nivelul de calitate limita LQ, adic proportia de defective pe
^

care o considera inadmisibil de mare. In principiu este perfect posi-bila


constructia unor planuri de control pornind de la ecuatia riscului bene
ciarului conform careia un lot de calitate LQ trebuie acceptat cel mult cu
probabilitatea :
Exista doua abordari pentru testele statististice:

abordarea clasic
abordarea bazat pe probabilitate

Ne vom ocupa ^n continuare de abordarea bazat pe probabilitati


2
folsind testele: Z, t, ;Kolmogrov-Smirnov. care presupune parcur-gerea
urmatoarelor etape:

Formularea ipotezei nule


Formularea ipotezei alternative
Alegerea lui
190 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

4. Calcularea valorii statistice a testului

5. Calculul valorii probabilitatii P: Avem trei cazuri ^n functie de tipul


testului (bilateral sau unilateral)

dac H1 este unilateral dreapta (>), atunci: P =

P (Z > z )

dac H1 este unilateral st^nga (<), atunci: P =

P (Z < z )

dac H1 este bilateral (=)̸ atunci:

= 2P (Z < jz j)

Decizia se ia comparand P cu valoarea stabilita pentru :

Dac P; se respinge H0;

Dac P > ; se accepta H0:

6.3 Controlul calitatii productiei


Controlul calitatii productiei trebuie sa cuprinda controlul complex al
asigurarii calitatii productiei ^n toate etapele:

proiectare

pregatirea constructiva si tehnlogica

fabricatie
6.3. CONTROLUL CALITATII PRODUCTIEI 191

exploatare (inclusiv controlul e cientei fabricatiei si exploatarii)

Realizarea unei productii de calitate ridicat presupune un complex de


masuri tehnico-organizatorice si educative, care sa asigure executia
reperelor far abateri de la cerintele standardelor si normativelor, de-
senelor, conditiilor tehnice si proceselor tehnlogice. O cale principal de
cresterea a calitatii productiei o constituie respectarea tehnologiei
stabilite ^n toate fazele de fabricatie si ^n orice moment, raspunderea
pentru aceasta revenind ^n primul r^and inginerilor.
Controlul calitatii are diferite forme, corespunzator diferitelor nive-
luri de conducere a calitatii:

controlul de receptie a materiilor prime


controlul materialelor si subansamblelor
control pe operatii si faze de fabricatie
control nal
control al comportarii ^n exploatare

De nitie 37 Prin control instantaneu se ^ntelege acela a carui perioada,


de efectuare nu este dinainte stabilit, inspectiile se efectueaz dupa
controlul pe operatii sau de receptie de catre personalul special
^nsarcinat cu aceasta.

De nitie 38 Controlul activ al productiei sau procesului tehnologic se


realizeaz pe parcursul procesului de fabricatie cu ajutorul aparatelor de
masur ^n ux si se utilizeaz pentru conducerea directa a procesului de
fabricatie.

De nitie 39 Controlul la utilizator se realizeaz de furnizor,


^mpreuna cu inspectorii de asigurarea calitatii ^n scopul studierii pro-
prietatilor productiei livrate.
192 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR
^
Observatia 28 In cazul controlului total decizia asupra calitatii
productiei controlate se adopt pe baza rezultatelor veri carii uneia sau
mai multor selectii din productia respectiva,iar ^n cazul controlului
selectiv pe baza rezultatelor veri carii uneia sau mai multor selectii din
productia respectiva.

Metodele statistice de conducerea a calitatii reprezinta metode de


control si reglare a procesului tehnologic pe baza urmaririi caracte-
risticilor empirice ale produselor pe parcursul procesului de fabricatie si
ajustarea corespunzatoare a acestora ^n cazul ^n care se observa tendinte
de dereglare a prcesului de fabricatie.

6.4 Planuri de control atributiv (PCCVI)


Volumul esantionului prelevat si criteriul de acceptare al lotului
formeaz elementele unui plan de control de receptie. Ele se pot de-
termina pornind de la ecuatiile riscurilor ale probabilitatilor de eroare.
^

In controlul atributiv, rezultatele masuratorilor se pot sintetiza ^n


numarul de defecte d ^nregistrat la controlul esantionului. Domeniile de
acceptare si de respingere ∆A si ∆B sunt delimitate ^n spatiul uni-
^

dimensional 0 d n: In cazul cel mai simplu domeniul de acceptare


cuprinde valorile lui d mai mici sau egale cu un numar de acceptare A; iar
domeniul de respingere valorile lui d mai mari sau egale cu numarul de
respingere R = A + 1:Aceast partitie a spatiului observatiilor ^n doua
domenii complementare corespunde planului simplu de con-trol.

Se observa ca numarul de defecte din esantion este o variabil


aleatoare discreta similar cu numarul de bile negre dintr-un esantion
extras dintr-o urna care contine bile albe si negre amestecate ^ntr-o
proportie cunoscuta, distributia cautat este distributia hipergeo-
6.4. PLANURI DE CONTROL ATRIBUTIV (PCCVI) 193

metrica:
Cd Cn d
D N D
P (d) =
n
CN
Dac extragerea esantionului este de tip bernoullian, respectiv dac se
repune ^n lot ecare element ^nainte de extragerea elementului urmator,
distributia numarului de produse defecte este binomiala:

P (d) = Cndpd(1 p)n d

Observatia 29 Practic, conditia ca un sondaj sa poat de tip ber-noullian,


respectiv ca distributia binomial sa aproximeze su cient de bine
distributia hipergeometrica este ca volumul esantionului sa nu depaseasc
a zecea parte din volumul lotului:

n 0:1N

Daca, ram^an^and ^n cadrul conditiei anterioare, esantionul are un


volum su cient de mare (> 30), iar proportia real de produse de-fecte nu
depaseste 10%; distributia binomial poate aproximat de distributia
Poisson:
(np )d
P (d) = d! e np
Elementele planului de control se determina din ecuatiile:
n

=P (d = p = p1)
d=R

∑A
=P (d = p = p2)
d=0

unde P (d = p) se ^nlocuieste cu una din distributiile hipergeo-


metrica, binomial sau Poisson, ^n functie de conditiile de aplica-bilitate
ale acestora.
194 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

Astfel ^n cazul c^and:

30 n 0:1N ; p 10%

prin ^nlocuirea distributiei Poisson se obtine:


∑A d
(np1) e np1
1
d!
d=0
∑A d
(np2) e np2
d!
d=0

Ecuatiile se rezolva prin ^ncercari, rezult^and volumul esantionului n


si numarul de acceptare A de elemente ale planului simplu de control
atributiv.

Concluzie 3 Lotul poate respins de ^ndat ce se acumuleaz un numar R de


defecte, dar nu poate acceptat ^nainte de controlul tuturor elementelor
din esantion.

De nitie 40 Caracteristica operativ exprima proportia de loturi de o


anumit conformitate a caror acceptare este de prevazut

De multe ori nu este necesar ansamblul caracteristicii operative


pentru a aprecia calitatea planului ind necesare trei puncte mai im-
portante ale acestuia:

(p1; 1) nivelul de conformitate p1 numit protectia pro-


ducatorului ^i corespunde probabilitatea de acceptare 1 : Acest
punct este impus apriori, dar coordonatele lui difera de cele
prevazute initial , datorit rezolvarii aproximative (a rotu-njirilor la
^ntregi ale lui A; B) a ecuatiilor planului.Rezulta de aici necesitatea
unei distinctii ^ntre nivelul acceptabil al con-formitatii
AQL(acceptable quality level ) impus initial si
6.5. CONTROLUL PRIN ESANTIONARE LA RECEPTIE 195

nivelul de conformitate p1 care se accept exact cu probabilita-tea 1


: Interesul producatorului este ca p1 sa e mai mare dec^at AQL.

(p2; ) nivelul de conformitate p2 numit protectia bene cia-rului ^i


corespunde probabilitatea de acceptare : Bene ciarul are ^n vedere
un nivel limita al conformitatii LQ(limiting
quality) dincolo de care nu este dispus sa accepte nici un lot. Dar
punctul (p2; ) nu se impune ci dupa determinarea caracte-risticii
operative se calculeaz valoarea p2 care corespunde ris-
cului impus. Aceast valoare calculat se confrunta cu nivelul limita
al conformitatii. Dac LQ p2 se garanteaz ca bene-ciarul va accepta
o fractiune cel mult egal cu din loturile necorespunzatoare fabricate
de producator.

(p3; 0:5) nivelul critic de conformitate corespunzator unei


probabilitati.

Concluzie 4 Un plan este cu at^at mai bun cu c^at caracteristica sa


operativ este mai aproapiat de una abrubpta, respectiv protectia pro-
ducatorului p1 este mai mare, iar protectia bene ciarului p 2 este mai
mica. Acest lucru poate obtinut prin marirea esantionului ceea ce
apropie lotul de varianta ideal a controlului far erori a ^ntregului lot
(control 100%).

6.5 Controlul prin esantionare la receptie


Controlul calitatii produselor are ca scop sa stabileasc pe baza unui
ansamblu de reguli obiective(sprijinite pe rationamente proba-bilistice si
procedee statistice)una din deciziile urmatoare: acceptarea sau
respingerea lotului de produse ^n raport cu speci catiile prevazute.
196 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

El reprezinta ^n esenta o forma particularizat a testarii ipotezelor


statistice. Prin aplicarea unui plan de control statistic trebuie sa se decida
dac lotul de produse poate acceptat ca ind corespunzator, sau trebuie
respins. Pentru aceasta se porneste de la ipoteza logica conform careia
orice lot contine o anumit proportie de produse neco-respunzatoare,
denumita fractiune defectiva a lotului p.
Scopul controlului de receptie este de a decide dac aceast fractiune
defectiva nu depaseste un anumit nivel critic p0, stabilit ^n functie de
considerente de ordin economic.
Aceasta ^nseamn ca pe baza veri carii produselor din lot trebuie sa se
decida dac este adevarat ipoteza:
H1 : p < p0, ^n care caz lotul se accept .
^

In raport cu alternativa :
H2 : p > p0 , ^n care caz lotul se respinge.
Evident, fractiunea defectiva p poate lua o multime de valori ^n cele
doua domenii ale sale limitate de punctul critic p0, adic ^n domeniile 0 <
p < p0 si respectiv p0 < p < 1.
Sistemul de aplicare practic a controlului statistic este dat de planurile
de control atributiv, diferite prin rigurozitatea controlului (implicit prin
cheltuielile pe care le comporta) av^andu-se ^n vedere implicatiile
economice datorate unor decizii eronate.

[0; p1]=zona de acceptare;


[p2; 100]=zona de respingere;
p0 = procentul de defecte, unde pa = 0:5
LQ = nivel de la care cumparatorul nu mai accept lotul; AQL
= proportia de defecte la care pa = 1
= riscul de ordin 1 al producatorului; =
riscul de ordin 2 al bene ciarului.
^
De regula =5%, dar ^n conditii mai restrictive se ia = 1%.
In domeniul 0 p p1 probabilitatea acceptarii lotului este foarte
6.5. CONTROLUL PRIN ESANTIONARE LA RECEPTIE 197

mare, deoarece riscul pe care si-l asum furnizorul, adic probabilita-tea de


a i se respinge lotul cu fractiunea defectiva p p1 este mica,
^

cel mult : In domeniul de respingere, probabilitatea respingerii lotu-rilor


cu fractiunea defectiva p p2 este foarte mare deoarece potrivit conventiei,
bene ciarul suporta un risc mai mic de a accepta aseme-
^

nea loturi. In cadrul domeniului de risc, at^at probabilitatea de accep-tare


c^at si cea de respingere variaz ^n limite largi, astfel ca practic nici
acceptarea nici respingerea nu sunt asigurate.
Fractiunea defectiva p1 pentru care probabilitatea de acceptare este
foarte mare, cel putin 1 se numeste fractiune defectiva accep-tata, sau
nivel de caliate acceptabil AQL(Acceptable Quality Level), deoarece
loturile ^n acest caz se considera corespunzatoare calitativ.

Fractiunea defectiva p2 se numeste fractiune defectiva tolerat LQ


deoarece ^n acest caz loturile se considera corespunzatoare calita-tiv si
bene ciarul le accept cu o probabiilitate foarte mica, cel mult
:Fractiunea defectiva p0 corespunzatoare probabilitatii de acceptare
pa(p0) = 5% se numeste fractiune defectiva probabil .
Marimile p1; p2; ; se stabilesc ^n mod diferentiat de la un produs
^

la altul. Intre aceste marimi, ^n practic exista urmatarele relatii:

1
1 > 1 > 2> >0
1
0 < p1 < p2; p2 p1 > N
Este necesar pentru elaborarea unui plan de control statistic de:

N volumul lotului;

Nc nivelul de control (gradul de severitate) care de neste ^n functie de


N o litera de cod, el este stabilit de comun acord de producator si
bene ciar.
198 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

3. AQL(LCA) nivel de calitate acceptabil;

4. n volumul esantionului (numarul de produse extrase din lot);

5. A numarul de acceptare;

6. R numarul de respingere.

Planurile de control statistic de receptie pot de tipul sondajului


simplu, dublu sau multiplu.
Pentru sondajul simplu se foloseste uzual testul t.
Decizia statistica:
Dac valoarea lui t calculat este mai mare dec^at valoarea lui t critic,
atunci respingem ipoteza nula; dac valoarea lui t calculat este mai mica
dec^at t critic, atunci nu respingem ipoteza nula.
Estimarea mediei populatei din care face parte esantionul:
Estimam limitele ^ntre care se gaseste (cu probabilitate de 99% sau
95%) media populatiei din care face parte esantionul.
Pentru a face estimarea ne folosim de :

media esantionului,

valoarea lui t critic si,

eroarea standard a mediei.

Observatia 30 Controlul prin atribute este utilizat atunci c^and ca-


racteristicile de calitate nu sunt masurabile, sau dac sunt masurabile
este su cienta numai informatia ^ncadrarii lor ^n limitele de toleranta
prescrisa.

Pentru sondajul dublu se foloseste testul t pentru doua esantioane.


Conditii de aplicabilitate:
6.5. CONTROLUL PRIN ESANTIONARE LA RECEPTIE 199

variabila independena este masurat pe o scal nominala;

variabila dependenta este masurat pe o scal de interval sau de


proportii; variabila dependenta are o distributie normala;

Esantionul de subiecti trebuie extras aleator din populatie, apoi


trebuie sa e ^mpartit aleator ^n doua grupuri; grupurile sunt mai mici de
30(100) de elemente..
Utilitatea testului consta ^n faptul ca statisticienii examineaz cel mai
des natura a doua variabile pentru a a a dac variabilele sunt asociate sau
nu.
Testul este folosit ca o metoda de evaluare a diferentelor mediilor a
doua grupuri, care pot independente.
Testul t este utilizat ^n urmatoarele trei situatii, diferentiate de situatia
existenta ^ntre dispersiile populatiilor
si independenta esantioanelor:
esantioane independente, dispersii egale;
esantioane independente, dispersii diferite;
esantioane dependente (perechi, corelate).
Cel mai des nt^alnit caz este acel al unui test t pentru doua esantioane
independente, unde componentele din cele doua esantioane nu sunt
asociate.
Practic se studiaz si cazul c^and se da media si dispersia este ne-
2
cunoscuta, ^n acest caz se foloseste testul :
2
Reamintim ca testul se aplic dac urmatoarele conditii sunt
^ndeplinite:

Participantii la studiu apartin unui esantion independent rando-mizat.

Se doreste investigarea asocierii dintre doua variabile indepen-dente.


200 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

3. Caracteristicile observate sunt masurate pe scala nominal sau


ordinal vezi gura(6.1).

.
^
4. In tabelul de contingenta teoretic (sau expectat) ecare celula contine
valori mai mari sau egale cu 10.

5. Nu exista nici o celula cu frecventa asteptat egal cu zero.

Ipoteza nula si ipoteza speci ca


Ho: frecventele observate pentru diferite modalitati ale variabilelor
sunt egale cu frecventele asteptate pentru modalitatile respective, ce-eace
^nseamn ca nu exista legatur ^ntre variabile (datele se potrivesc cu
modelul stabilit ^nainte).
Hs : frecventele observate sunt diferite de frecventele asteptate, ceea
ce ^nseamn ca exista legatatur ^ntre variabile.
Plan de tipul sondajului multiplu
Tehnica acestui control este similar celei indicate la controlul de tipul
sondajului dublu, cu exceptia ca numarul esantioanelor poate cel mult de
2, dupa ecare din acestea put^andu-se lua decizia de ac-ceptare sau
respingere a lotului, ^n acest caz se foloseste uzual Anova (Analiza
dispersionala).
6.5. CONTROLUL PRIN ESANTIONARE LA RECEPTIE 201

Figura 6.1: Caracteristica operativ


202 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

6.6 Exemple
Exemplul 33 Dintr-un lot de condensatori electrici identici 15% sunt ^n
afara limitelor de toleranta. Care este probabilitatea de a gasi:
2 condensatori din zece ^n afara limitelor de toleranta
zero condensatori din zece si respectiv din 20 ^n afara limitelor de
toleranta

Solutie
a)Se considera experienta extragerii unui condensator din lotul dat.
Fie evenimentele:
A-un condensator ^n afara limitelor de toleranta
CA un condensator ^n intervalul de toleranta

) P (A2) = C102p2q8 = 45 0:152 0:858

b)

P (A0) = C100p0q10 = 0:8510


0 0 20 20
P (B0) = C20 p q = 0:85

RStudio pune la dispozitia utilizatorilor un numar de distributii de


probabilitate, numele pentru densitatea de probabilitate ^ncepe cu d (de
exemplu, dbinom), pentru functia de repartitie ^ncepe cu p (de exemplu,
pbinom), pentru cuantile ^ncepe cu q (de exemplu, qbi-nom), pentru
vectori aleatori ^ncepe cu r (de exemplu, rbinom).
Densitatea de probabilitate are argumentul optional log=FALSE.
Dac log=TRUE atunci se calculeaz logaritm din densitate.
Functia de repartitie are parametrii optionali lower.tail = TRUE, log.p
= FALSE.
Dac lower.tail=TRUE atunci functia de repartitie returneaz va-loarea
P (X <= x), altfel P (X > x).
6.6. EXEMPLE 203

Dac log.p=TRUE se interpreteaz ca probabilitatile sunt date prin


logaritmii lor.
Functia care calculeaz cuantilele are parametrii optionali lower.tail
=TRUE, log.p = FALSE.
Dac lower.tail = TRUE, atunci functia aplicat lui q ^ntoarce valoarea
minima x astfel ca P (X x) q.
^

Incercam sa rezolvam problema de mai sus folosind RStudio:

library("latice")
x=2 # 2 condensatori in afara limitelor de toleranta >size=10 #
numarul total de condensatori >prob=0.15# probabilitatea

dbinom(x,size,prob,log=FALSE)# apelul functiei


[1] 0.2758967
pbinom(x,size,prob,log=FALSE) [1]
0.8201965 >rbinom(x,size,prob)

[1] 0 3
x=0
dbinom(x,size,prob,log=FALSE) [1]
0.1968744
size=20
dbinom(x,size,prob,log=FALSE) [1]
0.03875953

Vom face ^n continuare o reprezentare gra c folosind functia den-


sityplot(~x) care va reprezenta o curba a functiei de densitate em-pirica
cu punctele corespunzatoare observatiilor pe axa x (similar cu rug()).
Exemplul nostru va putin mai complicat pe ecare gra c cu superpozitia
curbelor densitatii empirice si a celor prezise prin regula binomial .
204 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

library(lattice)
windows();
n <- seq(5, 45, 5)
x <- rnorm(sum(n))
y <- factor(rep(n, n), labels=paste("n =", n))
densityplot(~x | y,
panel = function(x, ...) {
panel.densityplot(x, col="DarkOliveGreen", ...)
panel.mathdensity(dmath=dnorm, args=list(mean=mean(x),
sd=sd(x)),
col="darkblue")
})
6.6. EXEMPLE 205

Figura 6.2: Curbele densitatii empirice


206 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

Liniile doi, trei, patru genereaz un esantion aleatoriu de variabile


normal independente care este ^mpartit ^n sub-esantioane de marime egal
cu 0, 1, 2, ... si 20.
Apoi se apeleaz functia densityplot ce produce c^ate un gra c ^

pentru ecare sub-esantion, panel ia ca argument o functie. In exem-plul


nostru, am de nit o functie care apeleaz doua functii pre-de nite ^n lattice:
panel.densityplot pentru a desena functia de densitate empirica si
panel.mathdensity pentru a desena functia de densitate prezisa de regula
normal .

Exemplul 34 Se considera un lot de 400 televizoare Philips care contin


8% piese cu defectiuni si se cerceteaz numarul de piese cu defectiuni
dintr-un esantion de zece piese.
Sa se identi ce legea de repartitie a fenomenului aleator considerat
(numarul de piese cu defectiuni din esantionul de zece piese).
6.6. EXEMPLE 207

Solutie
a + b = c = 400;
a
= c = 0:08; 1 p
b
= c = 0:92
= 0:08 400 = 32;
= 0:92 400 = 368

Folosim schema hipergeometrica.


RStudio are o macro instructiune qhyper () care rezolva elegant
problema, deci vom scrie ^n linia de comanda:
p=0.08
m=32
n=368
>k=300 #numar bile extrase din urna
qhyper(p,m,n,k,lower.tail = TRUE,log.p = FALSE) [1] 21

Exemplul 35 [16, pag 88] Sa consideram un asamblu statistic de


2
rezistente ale caror valori sunt repartizate N(x; 200 Ω; 64Ω ):Lu^and la
nt^amplare 100 din aceste rezistente le controlam una c^ate una. Care
este probabilitatea de a se abate cu mai mult de 8 Ω de la valoarea
nominal de 200 Ω?

Solutie
Notam cu X variabila aleatoare normal considerat . Trebuie sa
determinam mai nt^i probabilitatea:
208 200 192 200
P (200 8 < X < 200 + 8) = ( p 64 ) ( p 64 )=
= (1)( 1) =4:4 2 (1) 1
208 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

din tabel gasim


(1) = 0:8413
De aici:
q=1 p=1 0:6826 = 0:3174 = 31:74%
Vom ^ncerca sa dam o solutie folosind RStudio.
Tastam in linia de comanda:
>b=(208-200)/sqrt(64)
>a=(192-200)/sqrt(64)
>p=integrate(dnorm,a,b)
>p
0.6826895 with absolute error < 7.6e-15 >q=(1-
p);
0.3174
Exemplul 36 Acelasi exemplu cu o toleranta de 10 Ω?
Solutie
Toleranta nu mai este un multiplu de ; dar problema revine la calculul
ariei situat sub curba ^ntre:
x1 = 200 10; x2 = 200 + 10
adica:
P (x1 < X < x2) = (1:25) ( 1:25)
2 (1:25) 1

deoarece (1:25) = 0:8944 )


q = 1 p=1 0:7888 = 0:2112
= 21:12%
Vom ^ncerca sa dam o solutie folosind RStudio.Tastam in linia de
comanda:
6.6. EXEMPLE 209

>b=(210-200)/sqrt(64)
>a=(190-200)/sqrt(64)
>p=integrate(dnorm,a,b);
0.7887005 with absolute error < 8.8e-15 >q=(1-
p);
0.2112

Observatia 31 Acest numar este mai mic dec^at cel din exemplul an-
terior, deoarece tolerantele controlului sunt mai mari.

Exemplul 37 [1, pag 17]Dintr-un lot ce contine 15 tranzistoare: 10 sunt


bune, iar restul sunt defecte. Se fac sase extrageri pun^andu-se de ecare
dat tranzistorul extras ^napoi.
a)S se determine functia de repartitie a variabilei care da numarul de
tranzistori extrasi.
b)Aceasi problema dac tranzistorul extras nu se pune ^napoi.

Solutie
a)Probabilitatile variabilei X ce reprezinta numarul de tranzistori
extrasi se pot determina cu ajutorul schemei binomiale, deci:
( )
0 1 2 ::: 6
X: 1 12 1 5 2 2 2 1 4 2 6
C C
3
6 6 3 (3 ) 6 (3) (3 ) ::: (3 )
Prin de nitie:

F (x) = P (X < x) = P (X = k)
k<x
210 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

Atunci:
0 x
1 0
>> 3 1 6
6
8 3 0<x 1
>>
>
>
> 1 k k
> 6
C 2 1<x 2
>

< 5
F (x) = > k=0

>
>

>

::: :::
>> ∑
>
1 k k
>> 36 C6 2 5<x 6
>
>
>
>
> k=0
:

> 1; x > 6
b) Folosim schema hipergeometrica deci:
( )
1 2 4 ::: 60
X : C1 CC
2
C
6
::: 10
C
6

10 5 C
6
C
5

15 15 15

si

> C 01 x 1
>
8
C 6 1<x 2
> 10

> 2 15
>
> ∑
>
>
> 1 k 6 k
C C
>
< C
6 5 10 5 2<x 3
F (x) =
> 15

> k=1
> ::: :::
>
>

>
15

>
>
1 k 6 k
> C 6
C C
6 5 5<x 6
>
>
>
>
>
> k=0
:

> 1; x > 6
Vom ^ncerca sa rezolvam problema folosind RStudio.

m <- 15; n <- 10; k <- 6


x <- 0:(k+1)
rbind(phyper(x, m, n, k), dhyper(x, m, n, k))
6.6. EXEMPLE 211

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]


[1,] 0.001185771 0.02252964 0.1470356 0.4553360
0.8021739 0.9717391 1.00000000 1
[2,] 0.001185771 0.02134387 0.1245059 0.3083004
0.3468379 0.1695652 0.02826087 0
all(phyper(x, m, n, k) == cumsum(dhyper(x, m, n, k))) [1] FALSE

signif(phyper(x, m, n, k) - cumsum(dhyper(x, m, n, k)), digits = 3)

0.00e+00 0.00e+00 5.55e-17 -1.11e-16 0.00e+00 0.00e+00


0.00e+00 0.00e+00

Exemplul 38 Din 20 de microprocesoare 15 au trecut testul de


redundanta.
Sunt alese la nt^amplare 10 microprocesoare si se cere probabilitatea
ca:
dintre acestea 6 au trecut testul,
toate cele 10 microprocesoare analizate au trecut testul.

Solutie
a)Aplicam schema hipergeometrica, atunci probabilitatea ceruta este:
C 6C 4
15 5 = 0:13544
10
C20
Se poate folosii functia choose () din RSudio pentru calculul com-
binarilor.
Dam o solutie folosind RStudio:
m=choose(15,6)
n=choose(5,4)
p=choose(20,10)
(m*n)/p
[1] 0.135448
212 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

b)Folosind din nou schema hipergeometrica


C 10
15 = 0:0162
10
C20
m=choose(15,10)
n=choose(20,10)
m/n
[1] 0.01625387

Exemplul 39 Dintr-un lot de 200 de condensatoare, 10 sunt defecte, iar


din alt lot de 150 de condensatoare 7 sunt defecte. Se iau la nt^amplare
20 piese din unul din aceste loturi. Care este probabili-tatea ca dintre
condensatoarele alese sa e 18 bune si doua defecte?

Solutie
Consideram evenimentele: e A evenimentul ca piesele sa e luate din
primul lot, A evenimentul ca piesele sa e luate din lotul doi si B
evenimentul ca din cele 20 de condensatoare 18 sa e bune si doua
defecte. Folosim formula probabilitatilor totale:

P (B) = P (A)P (B=A) + P (A)P (B=A)

Observam ca
P (A) = P (A) = 1=2
P (B=A) este probabilitatea ca lu^and 20 condensatoare din primul lot
18 sa e bune si doua defecte si conform schemei hipergeometrice
C190
10 C2
10
p = P (B=A) =
1 C20
200

^
In mod analog
C18 C2
143 7
p2 = P (B=A) =
C15020
6.6. EXEMPLE 213

si
p3 = P (B) = P (A) (P (B=A) + P (B=A))
Deoarece calculele sunt prea complicate vom apela din nou la me-diul
RStudio si tastam ^n linia de comanda:

p1=(choose(190,10)*choose(10,2))/choose(200,20)#P(B/A)
p2=(choose(143,18)*choose(7,2))/choose(150,20)#P(B/nonA)
p3=1/2*(p1+p2);# P(B)unde P(A)=1/2
p3
[1] 0.09245923

Exemplul 40 Efectu^and o ^ncercare exhaustiv asupra a 10 fotodiode s-


au obtinut urmatoarele momente de defectare exprimate ^n ore:
105 295 388 422 557 679 777 890 948 1000
Folosind RStudio, sa se identi ce legea de distributie a timpului de
functionare.
Sa se calculeze parametrii legii. Folosind testul Kolmogorov-
Smirnov sa se veri ce, dac distributia selectiei este conforma cu
distributia normal .

Solutie
Scriptul fotodiode.r va contine urmatoarele linii:

foto<-c(105, 295, 388, 422, 557, 679, 777, 890, 948, 1000)
hist(foto,breaks=20)
hist(foto,freq=FALSE)
lines(density(foto))
mean(foto)
sd(foto)
t.test(foto,mu=550)
summary(foto)
w=hist(foto)
214 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

y=rnorm(10,mean=606.1,sd=301.649)
summary(y)
sd(y)
windows()
qqplot(foto,y,main="QQplot pentru doua selectii",pch="+",
xlab="foto=runif(100)",ylab="y=rnorm(100,mean=606.1")
z=ks.test(foto,y)
z

Se obtin rezultatele:

Two-sample Kolmogorov-Smirnov test


data: foto and y
D = 0.3, p-value = 0.7869 alternative
hypothesis: two-sided

Dupa executia scriptului se obtin gra cele (6.3):


6.6. EXEMPLE 215

Figura 6.3: Exemplu fotodiode

Exemplul 41 [24, pag 97] Se considera un set de 200 de componente


electronice de acelasi tip si se testeaz durata lor de viata. Se pre-supune
ca durata de viata urmeaz legea exponential de parametru alpha=700.
Sa se veri ce ipoteza nula H0: F=F fexp,700g ^n raport cu alternativa
H1: F ≠ F fexp,700g, unde F fexp,alphag este functia
216 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

de repartitie exponential de parametru alpha.

Solutie 4 Datele sunt memorate ^ntr-un sier excel: datecol.xlsx care


contine 200 de ^nregistrari pe care-l ^l importam ^n RStudio astfel:
Alegem din environment optiunea import data set from excel. Vom
face veri carea folosind odat testul Kolmogorov-Smirnov si
apoi testul Chi patrat.

Codul RStudio este:


#import date
library(lattice)
library(readxl)
path.expand("~/R")
setwd("C:/Users/DANIEL/Documents/R")
datecol <- read_excel("datecol.xlsx")
xx<-t(datecol)
F5<-ecdf(xx);
xs<-sort(xx);
#grafic ecdf si functie de repartitie
par(mfrow=c(1,3))
plot(xs,pexp(xs,1/700),type="l")
title(main="Grafic ecdf")
grid(20,20,col="red")
curve(F5,add=T,col="red")
title(main="Functie de repartitie")
grid(20,20,col="blue")
#Kolmogorov
ks.test(xx,"pexp",1/700);
#Hi - patrat
#densitatile observate, 15 clase
HH=hist(xx,15);
#densitatile teoretice
6.6. EXEMPLE 217

dd<-diff(pexp(HH$breaks,1/700));
chisq.test(HH$density,dd)

Dupa executie apar urmatoarele rezultate:

>ks.test(xx,"pexp",1/700); One-sample
Kolmogorov-Smirnov test data: xx

D = 0.038132, p-value = 0.9332


alternative hypothesis: two-sided
chisq.test(HH$density,dd)

Pearson's Chi-squared test

data: HH$density and dd X-squared = 40, df = 35,


p-value = 0.2578
^
In ambele situatii se accept ipoteza nula.
Gra cele sunt prezentate ^n gura (6.4):
218 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

2
Figura 6.4: Test Kolmogorov +
6.6. EXEMPLE 219

Exemplul 42 Se experimenteaz trei prototipuri de televizoare cu plasm


(Philips, Samsung, Sharp) si se cunosc probabilitatile ca
prototipurile sa corespunda sunt respectiv:

p1 = 0:9; p2 = 0:8; p3 = 0:85

Sa se scrie repartitia v.a X care ia valori numarul de prototipuri


care corespund. Lu^and la nt^amplare c^ate o plasm din ecare
prototip se cere probabilitatea ca doua sa corespunda?

Solutie
V.A X poate lua valorile 0,1,2,3. Pentru calculul probabilitatilor
corespunzatoare folosim schema lui Poisson. Calculam coe cientii lui t0;
1 2 3
t ; t ; t din polinomul
P (t) = (0:9t + 0:1)(0:8t + 0:2)(0:85t + 0:15)

Deci repartitia v.a X este

0 1 2 3
(
X: 0:003 0:56 0:329 0:612 )
2
Probabilitatea ca doua sa corespunda este coe cientul lui t ;deci p =
0:329:
Vom ^ncerca sa dam o solutie folosind RStudio:
library(polynom)
p1<-polynomial(c(0.1,0.9))
p1
0.1 + 0.9*x
p2<-polynomial(c(0.15,0.85))
p2
0.15 + 0.85*x
> p3<-polynomial(c(0.2,0.8))
220 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

> p3
0.2 + 0.8*x
p<-p1*p2*p3
p
0.003 + 0.056*x + 0.329*x^2 + 0.612*x^3
r<-as.vector(p)#coef lui p in ordine crescatoare
r
[1] 0.003 0.056 0.329 0.612
m<- matrix(c(0,1,2,3,r),nrow=2,ncol = 4, byrow = TRUE)
m
[,1] [,2] [,3] [,4]
[1,] 0.000 1.000 2.000 3.000
[2,] 0.003 0.056 0.329 0.612
s<-m[2,3]
s
[1] 0.329

Exemplul 43 La controlul la receptie a 4 loturi de 100 table de inox


provenite de la trei furnizori diferiti au trecut testul:
control ultrasunete 85 93 96 90
control pulberi magnetice 88 89 92 95
control RX 99 90 82 83
Folosind modelul liniar general Anova sa se veri ce ipoteza nula.

Solutie.
^

In linia de comand tastam:


#ANOVA example with linear model
table.res<-c(85, 93,96,90,
+ 88, 89,92,95,
+ 99, 90,82,83);
> f <- c("A", "B", "C", "D"); # treatment levels
6.6. EXEMPLE 221

k <- 4;# number of treatment levels


n <- 3;# number of control blocks
#
> tm <- gl(k, 1, n*k, factor(f)) # matching treatment
> blk = gl(n, k, k*n) # blocking factor
tm
0 ABCDABCDABCD
Levels: A B C D
blk
0 111122223333
Levels: 1 2 3
av <- aov(table.res ~ tm + blk)
summary(av)
Df Sum Sq Mean Sq F value Pr(>F)
tm 3 3.67 1.22 0.026 0.994
blk 2 16.67 8.33 0.180 0.839
Residuals 6 277.33 46.22
> coef(av)
(Intercept) tmB tmC tmD
9.150000e+01 7.019071e-15 -6.666667e-01 -1.333333e+00
blk2 blk3
5.078044e-15 -2.500000e+00
X<-model.matrix(av); Y<-table.res;
bhat<-solve(t(X)%*%X,t(X)%*%Y); bhat [,1]
(Intercept) 9.150000e+01
tmB 1.233581e-17
tmC -6.666667e-01
tmD -1.333333e+00
blk2 1.539044e-14
blk3 -2.500000e+00
> SSE.c<-t(Y)%*%Y-t(bhat)%*%t(X)%*%Y; SSE.c
222 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR

[,1]
[1,] 277.3333
Xr<-X[,c(1,5,6)]
betar<-solve(t(Xr)%*%Xr,t(Xr)%*%Y); betar
[,1]
(Intercept) 9.100000e+01
blk2 1.539044e-14
blk3 -2.500000e+00
> SSE.r<-t(Y)%*%Y-t(betar)%*%t(Xr)%*%Y; SSE.r
[,1]
[1,] 281
nn<-k*n; kk<-5; g<-2
F<-((SSE.r-SSE.c)/(kk-g))/(SSE.c/(nn-(kk+1))); F [,1]

[1,] 0.02644231
> pf(F,3,6,lower.tail=FALSE)
[,1]
[1,] 0.9935805

Concluzionam ca se accept ipoteza nula, adic valorile medii ale celor


patru loturi nu difera semni cativ.
Capitolul 7
Fiabilitatea sistemelor

De nitie 41 [23] Fiabilitatea unui produs reprezinta din punct de ve-dere


calitativ proprietatea acestuia de a-si conserva performantele ^n limitele
stabilite ^ntr-un interval de timp si ^n conditiile speci cate.

Cantitativ abilitatea este descrisa de un ansamblu de indicatori cu


ajutorul carora se poate prevedea comportarea produsului P ^n conditii
date, respectiv se poate anticipa momentul defectarii sale.

7.1 Indicatori de abilitate


Indicatorii de abilitate sunt marimi care exprima, sub o forma sau
alta, calitativ si cantitativ, abilitatea produselor; indicatorii de abilitate
mai sunt denumiti si parametri sau caracteristici de abili-tate.

Defectarea trebuie ^nteleas ca depasirea limitelor prescrise de catre


cel putin una din performantele produsului (sistemului), ele constitu-ind
criterii de defectare.
Previziunile date de teoria indicatorilor de abilitate nu pot de-
terministe deoarece procesele de degradare sunt in uentate de o mul-

223
224 CAPITOLUL 7. FIABILITATEA SISTEMELOR

titudine de factori incomplet cunoscuti De aceea modelul matematic al


abilitatii se bazeaz pe teoria probabilitatilor si statistic mate-matic .

Se considera ca timpul de funtionare al unui produs de la pune-rea ^n


functiune p^na la defectare este o variabil aleatoare continua. Fie T durata
de functionare p^an la defectarea produsului (sistemu-lui) si F (t) functia
de repartitie a acestei variabile aleatoare continui. Functiile si
caracteristicile numerice asociate acestei variabile aleatoare vor
considerate indicatori de abilitate.

7.1.1 Probabilitatea de buna functionare R(t)


Aceast probabilitate care mai este cunoscuta ca functia de a-bilitate se
de neste astfel:

R(t) = p(t) = P (T t) (7.1)


unde p(t) - este probabilitatea ca ^n intervalul (0; t) sa nu se produca
defectarea sistemului, adic ^nsasi functia de abilitate; t - variabila timp; T
- o limita precizat a duratei de buna functionare.
Ca orice probabilitate se ^ntelege ca si functia de abilitate va
^ndeplini conditia:
0 < p(t) < 1 (7.2)
adica: la t = 0; p(t) = 1 ceea ce ^nseamn ca produsul este ^n stare de
functionare la momentul ^nceperii exploatarii, iar apoi scade dupa o
anumit lege p^an la p(t) = 0, teoretic la t = 1; c^and produsul se a a ^n
stare de nefunctionare. Adica:
R(t + x)
(t; t + x) = R (t)

Pentru determinarea experimental a functiei de abilitate R (ti), se


urmareste de-a lungul unei perioade de timp ti; o populatie statistic
7.1. INDICATORI DE FIABILITATE 225

format din N0 produse identice numar^andu-se cele n produse defecte:


N
R t 0 n

b ( i) = (7.3)
N0
7.1.2 Probabilitatea de defectare F(t)
Probabilitatea de defectare, sau functia de repartitie a duratei de
functionare F (t) se de neste astfel:

F (t + x) F (t) = P (t T t + x) (7.4)
si reprezinta probabilitatea complementar ^n raport cu R(t); deci
are loc relatia:
R(t) + F (t) = 1

Probabilitatea este o probabilitate total la defectare. Dar ^n realitate


sistemul se poate defecta ^n intervalul (t; t+x) numai dac s-a defectat ^n
intervalul (0; t): Astfel nc^at probabilitatea de defectare ^n intervalul (t; t
+ x); F (t; t + x) este o probabilitate conditionat de faptul ca la momentul
t sistemul este ^n stare de buna functionare. Deci putem scrie relatia:

F (t; t + x) = P (t T < t + x)
= F (t + x) F (t)
P (T t) 1 F (t)
Pentru determinarea pe cale experimental a indicatorului F (t) se
procedeaz astfel:
F t R t n
b
( i) = 1 b (i) = N0 (7.5)
Observatia 32 At^at functia F (t) c^at si R (t) se refera la evenimente se
produc sau nu, ^n intervalul de timp scurs de la punerea ^n functiune t =
0; p^an la momentul t si nu la evenimente evenimente care au loc ^n
momentul t; asa cum s-ar lasa sa se ^nteleag notatiile R(t); F (t):
226 CAPITOLUL 7. FIABILITATEA SISTEMELOR
^
Observatia 33 In afara functiilor prezentate, abilitatea unui sistem poate
descrisa si prin caracteristicile numerice ale variabilei alea-toare care a
stat la baza de nirii functiilor de abilitate si anume tim-pul de
functionare p^an la defectare. Aceste caracteristici numerice sunt:
media, abaterea medie patratica, dispersia si cuantila timpului de
functionare.

7.1.3 Cuantila timpului de functionare


De nitie 42 Cuantila timpului de functionare (tF ) este timpul tF ^n care
un produs functioneaz cu probabilitatea 1 F , se numeste cuantila
timpului de functionare:

P (t tF ) = F (7.6)

Acest indicator poate interpretat ca timp de garantie, adic timp ^n


care proportia de elemente defectate dintr-o anumit colectivitate nu
depaseste o valoare prestabilit :
Dac durata misiunii sistemului nu este precizata, dar se impune un
anumit nivel al abilitatii, cel mai adecvat indicator este cuantila timpului
de functionare.
Cu toate acestea, nu trebuie sa se ^nteleag ca abilitatea sistemu-lui
poate descrisa satisfacator printr-un singur indicator. Mai mult, atunci
c^and comparam doua sisteme, indicatorii de abilitate pot contradictorii,
astfel nc^at decizia va trebui bazat pe ^ntregul set de indicatori.

7.1.4 Densitatea de probabilitate a caderilor f(t)


Comportarea produsului ^n jurul unui moment dat este descrisa de
densitatea de probabilitate a timpului de buna functionare,
7.1. INDICATORI DE FIABILITATE 227

f(t) si ea reprezinta probabilitatea total de defectare ^n jurul mo-mentului


t (indiferent, adic neconditionat de comportarea anterioar a produsului)

f(t) = lim F (t + ∆t) F (t)


=dF (t)
∆t!0 ∆t dt
Acest indicator, exprima frecventa relativ a caderilor ∆ ni, ^ntr-un
interval de timp ∆ ti :
∆ni
b
f (ti) = ∆tiN0 (7.7)
unde ∆ni = N(t) N(t + ∆t)
Reprezentarea gra c a functiei de frecventa se face pe baza date-lor
privind momentele de aparitie a defectelor ^n functie de legea de
distributie care guverneaz procesul respectiv.
^

Intre indicatorii de abilitate de niti p^an acum exista urmatoarele


relatii:

F (t) = f(t)dt
0

∫t ∫1
R (t) = 1 f(t)dt = f(t)dt
t

7.1.5 Rata de defectare z(t)


Rata de defectare, sau intensitatea caderilor, se de neste prin relatia:

z(t) = lim F (t + ∆t) F (t) = f(t) (7.8)


∆t!0 ∆t R(t) R (t)
228 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Rezulta:
1 dR(t)
z(t) = (7.9)
R(t) dt

Integr^and ecuatia diferential (7.9) cu conditia initial R (0) = 1;


obtinem

R(t) = exp( ∫0 t z(u)du) = e t


∫ 0 z(u)du

Acest indicator se poate determina experimental pentru un interval de


timp ∆ ti, ^n functie de frecventa absolut a caderilor ∆ ni :

∆ni

zb (ti) = ∆tiN (7.10)


Dimensional, intensitatea caderilor se exprima ^n h 1:
Pentru foarte multe cazuri practice, functia z(t) se reprezinta sub
forma de "cad de baie". Se deosebesc trei zone ale gra cului z(t):
- zona I, ^n care se manifest caderile precoce, datorate unor cauze
ascunse si de cientelor de control de fabricatie, durata 0 t1 numindu-se si
perioad de rodaj;
- zona II, ^n care se manifest caderile aleatorii, normale, repre-
zent^and perioada de functionare normala; ^n acest interval de timp (t1
t2), valoarea indicatorului z(t) ram^an^and aproape constanta;
zona III, ^n care se manifest uzura sau ^mbatr^anirea materialelor
constructive ale produsului considerat .
Deci, intervalul 0 t2, reprezinta durata de viata utila a pro-dusului
studiat.
^
In concluzie putem scrie urmatoarele relatii ^ntre indicatorii de
7.1. INDICATORI DE FIABILITATE 229

abilitate:

∫ t t
F (t) = 1 R (t) = 0 f(u)du = 1 exp( ∫0 z(u)du)
t
dF (t) dR(t)
f(t) = dt = dt = z(t) exp( ∫0 z(u)du)
f(t)
z(t) = 1

∫t f(u)du

7.1.6 Media timpului de buna functionare (MTBF)


Timpul mediu p^an la defectare, reprezinta media duratelor de buna
functionare pentru populatia statistic ce a fost luat ^n stu-diu. Astfel din
cele N0 produse supuse observatiei, ecare prezinta o anumit durat de
functionare tfi :Media aritmetic a acestor timpi este:
N0
t
fi
=1
M T BF = (7.11)
∑i

N0
Din punct de vedere dimensional, M T BF se exprima ^n ore.
Dac functia de frecventa f(t), este continua atunci:

1 1

∫ ∫
M T BF = 0 tf(t)dt = 0 tdR(t) = tR(t)j01 (7.12)
230 CAPITOLUL 7. FIABILITATEA SISTEMELOR

si deoarece R(0) = 1 si R (1) = 0; rezulta


1 1 t


M T BF = 0 R(t)dt = ∫0 exp( ∫0 z(u)du)dt
^

In cazul sistemelor reparabile M T BF poate interpretat at^at ca media


timpului p^an la prima defectare MTTFF(Mean Time To First Failure)
c^at si ca media timpului ^ntre defectari MTBF(Mean
^

Time Between Failure). In acest ultim caz MTBF este unica nu-mai dac
sistemul revine la starea initial dupa ecare defectare. Altfel valorile lui M
T BF trebuie calculate folosind functii de abilitate di-ferite ^ntre
defectari. Este posibil ca dupa ecare defectare sistemul sa revina ^n starea
initiala; ^n acest caz MTTFF este egal cu MTBF.
O generalizare a mediei timpului de functionare este dat de relatia:

∫1
R(u)du
t
M T BF (t) =
R(t)
care reprezinta media timpului de functionare ramas p^an la defecta-rea
sistemului calculat din momentul ^n care sistemul a atins v^arsta t
MRL(Mean Rezidual Life).

7.1.7 Dispersia D si abaterea medie patratic


Dispersia D este indicatorul care exprima abaterea valorilor tim-pilor
de buna functionare fata de media aritmetic a acestora:

∫1
D = (t m)2f(t)dt (7.13)
0
7.2. FIABILITATE PREVIZIONALA 231

Abaterea medie patratic ( ) exprima ^n (h), gradul de ^mprastiere a


timpilor de buna functionare:

=uv 1 ∑ (ti m)2


N
0
(7.14)
t

1
u N0 i=1
7.1.8 Limitele indicatorilor de abilitate
^
In mod curent, abilitatea produselor este exprimat prin indica-torul
z(t) sau prin M T F B. Rata de defectare z(t) se exprima de obicei printr-
6
un numar x 10 , iar timpul mediu de buna functionare (MTBF) printr-un
numar y de ore.
Dac se cunoaste si legea de distributief(t), atunci se pot deter-mina si
ceilalti indicatori de abilitate. Totdeauna, pentru un anu-mit timp de
misiune t, probabilitatea de buna functionare R(t) are o valoare mai mica
dec^at 1, iar z(t) are o valoare oric^at de mica dar diferita de zero. Nu
exista produs care sa prezinte z(t) = 0 si respectiv R(t) = 1, pentru un timp
de masurare t dat.
Un produs este cu at^at mai bun, cu c^at R(t) are o valoare mai
apropiat de 1 si respectiv z(t) o valoare c^at mai apropiat de zero. Nivele
c^at mai ridicate de abilitate, respectiv indicatori c^at mai buni ^n
conceptia de mai sus, nu se pot realiza ^n orice conditii si nici nu se justi
ca ^n orice ^mprejurare. Fiabilitate superioara, ^nseamn materiale si
tehnologii perfectionate, studii si ^ncercari aprofundate si ^ndelungate, ^n
nal costuri mai ridicate. De aceea trebuie corelat nivelul de abilitate cu
cerintele tehnico-economice.

7.2 Fiabilitate previzional


De nitie 43 Fiabilitatea previzional - reprezinta abilitatea unui sis-tem,
exprimat prin indicatori de abilitate, care au rezultat din calcu-
232 CAPITOLUL 7. FIABILITATEA SISTEMELOR

lele de prognoza, efectuate pe baza abilitatii elementelor componente ale


sistemului.

Acest tip de abilitate se poate determina ^nca din faza de proiect prin
analiza detailat a structurii si componentei sistemului, ^n situatia
cunoasterii prealabile a tuturor conditiilor de solicitare.
Calculul abilitatii previzionale se face ^n urmatoarele ipoteze:

defectiunile sunt independente si schema logica de abilitate a sis-temului


este de tip serie;

ratele de defectare ale elementelor componente sunt constante:

zi(t) = i:

Deci se impune ca, ^nainte de a construi un produs complex, pe


parcursul proiectarii, sa se determine abilitatea previzional a aces-tuia,
pentru a comparat cu nivelul de abilitate impus initial si deci legea de
distributie considerat este cea negativ-exponential .
Nivelul nominal de abilitate al elementelor componente, este cel
stabilit de producator conform sistemului de asigurare al calitatii im-pus
de produs, ^n conditii de exploatare bine precizate. Dac se cu-noaste si
nivelul real al solicitarilor asteptate ^n functionarea sistemu-lui viitor, se
pot determina coe cientii de corectie Kc;i: Peste tot unde vor rezulta coe
cientii Kc;i > 1, se va trece la reproiectarea elemen-telor respective, astfel
nc^at sa se asigure, pe c^at posibil, pentru orice componenta, solutia
tehnica Kc;i < 1:
^
In aceste conditii, abilitatea ecarei componente a sistemului va
:
K t
Ri(t) = e c;i i
7.2. FIABILITATE PREVIZIONALA 233

7.2.1 Factori ce in uenteaz abilitatea


Acestia sunt:
Gradul de complexitate al sistemului,
Redundanta,
Modul de conectare al elementelor redundante,
Regimul de lucru.
^
In ceea ce priveste regimul de lucru distingem:
Regimul intermitent ce se caracterizeaz printr-o ^ncarcare uni-forma a
sistemului,
Regimul de impulsuri ce in uenteaz at^at prin forma c^at si prin
^

succesiunea impulsurilor.In general, pentru rata de defectare se


poate scrie o relatie de forma:
ti t p
= iT + p T + f Nc
unde: ti - durata impulsului; tp - durata pauzei dintre doua impulsuri
succesive; T - perioada impulsurilor;f- frecventa de repartitie a
impulsurilor; i- rata de defectare pe durata impul-sului;

p - rata de defectare pe durata pauzei; N c - numarul mediu de defectari


pe un ciclu. Valorile lui i si p se determina ^n functie de nivelul
solicitarilor, iarN c( depinde de o serie de factori, ^n primul r^and
de speci cul solicitarii).

Regimului ciclic are o rat de defectare: = cont +


(f)
unde f este numarul de cicluri/ora.
234 CAPITOLUL 7. FIABILITATEA SISTEMELOR

7.2.2 Studiul abilitatii sistemelor prin metoda arborilor de


defectare
Metoda arborilor de defectare [19, pag 58-62] pentru studiul -
abilitatii previzionale a sistemelor complexe, porneste de la ideea ca
procesul de defectare poate cuanti cat la nivel structural, astfel nc^at orice
defectiune a sistemului este rezultatul unei secvente cuanti cate de stari
ale procesului de defectare. Nivelul de cuanti care este ales de analist,
conform scopului urmarit si preciziei dorite, put^andu-se merge p^an la
nivelul componentelor, rezultatele obtinute ind cu at^at mai apropiate de
realitate cu c^at nivelul de cuanti care va mai detaliat.
Din punct de vedere structural, arborele de defectare utilizeaz
urmatoarele concepte:

Elementele primare - reprezinta componentele sau blocurile care stau


la nivelul de baz al cuanti carii avariei sistemului;
Defectiunile primare - reprezinta defectele elementelor primare;
Evenimentul critic - reprezinta starea de defect a sistemului;

Modul de defectare - reprezinta setul de elemente defecte simul-tan


care scot din functiune sistemul;

Modul minim de defectare - reprezinta setul cel mai mic de ele-mente


primare care ind defecte simultan, conduc la defectarea sistemului;

Nivelul ierarhic - reprezinta totalitatea elementelor care sunt


echivalente structural si care ocupa pozitii echivalente ^n struc-tura
arborelui de defectare.

Metoda are la baz logica binara, prin care ^n mod formal o functie a
sistemului este asimilat unei functii binare, ale carei variabile sunt
defectiunile primare si care este sintetizat cu elemente NU, SI, SAU.
7.2. FIABILITATE PREVIZIONALA 235

Pe baza analizei prin metoda arborelui de defectare, se poate obtine e


probabilitatea de defectare, e rata de defectare:

Evaluarea probabilitatii de defectare foloseste proprietatile portilor


logice: SI, SAU, INVERSOR.

Evaluarea intensitatii de defectare ( s) se face pe baza ipotezei ca


defectarile elementelor componente sunt evenimente indepen-dente
si legea de defectare este de tip exponential (z(t) = = ct:).

Pentru a stabili valoarea ratei de defectare a sistemului, se porneste de


la urmatoarele considerente:
- probabilitatea (A sa se defecteze ^n intervalul (0; t) = P (A) = FA(t);

probabilitatea (B sa se defecteze ^n intervalul 0; t) = P (B) = FB(t);

7.2.3 Modelul proceselor MARKOV


Lanturi Markov

Un model Markov caracterizeaz un sistem cu ajutorul a doua vari-


abile aleatoare: starea sistemului si timpul de observare. Cum ecare dintre
aceste variabile aleatoare poate sa e continua sau discreta, re-zulta atunci
patru tipuri de modele obtinute din combinatiile posibile ale celor doua
variabile aleatoare.
Dac modelul este cu stare discreta si timp discret se mai numeste si
lant Markov. Atunci c^and sistemul are starea discreta si timpul de
observare este continuu, se obtine un proces Markov. Acesta este cazul
cel mai important ^n teoria abilitatii.
^
Observatia 34 In cazul ^n care sistemul analizat are un numar nit sau
numarabil de stari, iar timpul de observare este continuu, se obtine
236 CAPITOLUL 7. FIABILITATEA SISTEMELOR
^
un proces Markov. In aceast situatie, probabilitatea tranzitiei dintr-o
stare ^n alta, la un moment dat este ^ntotdeauna nula. Deoarece
variabila aleatoare timp este continua nu mai vorbim de probabilitatea
de tranzitie, ci de densitati ale probabilitatii de tranzitie.
O caracteristic de baz a oricarui model Markov este ca, dac sistemul
se a a ^ntr-o anumit stare la momnetul t0, atunci probabili-tatea ca acesta
sa se a e ^ntr-o alt stare la momentul t > t0, depinde numai de starea
prezenta (la momentul t0) si nu depinde de modul ^n care sistemul a
ajuns ^n aceast stare.
^

In cazul unui lant Markov, procesul stochastic poate descris prin


secventa de stari pe care o parcurge sistemul:

X(1); X(2); :::X(k)


unde X (k) reprezinta starea sistemului dupa k pasi (variabila alea-
toare discreta), iar argumentul reprezinta momentele discrete de timp la
care pot avea loc tranzitii. Se considera un sistem care poate avea numai
un numar nit de stari Si, i = 1:::n. Deci,

X(k) 2 fSi=i = 1:::ng; 8 k 2 N


Se noteaz cu pi(k) probabilitatea ca sistemul sa se a e ^n starea
Si, dupa exact k pasi, adica:

pi(k) = P (X(k) = Si
Dupa k pasi, sistemul se a a ^n mod sigur ^ntr-una din starile
Si, i = 1:::n, deci:
∑n
pi(k) = 1
i=1
unde probabilitatile pi, i = 1...n, reprezinta probabilitatile starilor si,
^n general se cunosc valorile lor, pi(0), la momentul ^nceperii proce-
sului. Astfel, de exemplu, dac sistemul se a a^n starea S3 la^nceputul
7.2. FIABILITATE PREVIZIONALA 237

procesului, atunci:
p3(0) = 1; p1(0) = p2(0) = :::pn(0) = 0
Dac notam cu pij probabilitatea ca sistemul sa treac din starea i^n
starea j. Dac aceste probabilitati nu depind de numarul de pasi efectuati
anterior (sunt constante ^n timp) si depind numai de starea initial si de
starea nala, atunci lantul se numeste omogen.

pij = P fX(k) = Sj =X(k 1) = Sig


Aceste probabilitati formeaz o matrice n n, numita matrice de
tranzitie:
p p p
11 12 ::: 1n
2 p
21
p
22 ::: p
2n 3
6 . 7
4 :::
6
::: .. ::: 5
7

p p p
6 n1 n2 ::: nn 7
Matricea are proprietatea:
∑n
pi(k) = pj (k 1)pij ; i = 1; :::n
j=1

Probabilitatea ca sistemul sa parcurg un anumit sir de stari


Si0; Si1; :::Sik
este:

pfX(0) = Si0; X(1) = Si1; :::X(k) = Sikg =


= p (0)p p :::p
i0 i0i1 i1i2 ik 1ik
^

In general un lant Markov se reprezinta cu ajutorul unui graf orien-tat


^n care nodurile reprezinta starile sistemului, iar arcele reprezinta
tranzitiile posibile de la o stare la alta.
238 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Fie un sistem coerent descris de functia de structura φ (x1; x2; :::xn):


Dac se asociaz ecarui vector de stare (x1; x2; :::xn) un numar real care sa
indice sintetic starea unui sistem, se obtine un proces aleator discret w(t)
cu urmatoarele proprietati:

valorile particulare ale procesului formeaz o multime nita,

modi carile valorii w(t) se produc e prin defectarea, e prin punerea ^n


functiune a unui element al sistemului, evenimente care se pot
produce ^ntr-un interval de timp (t; t+∆t) in nit mai mic ^n jurul
unui moment oarecare t: Deci trecerile sistemului se produc numai
^ntre starile adiacente, care difera ^ntre ele prin starea unui singur
element.
dac wij reprezinta o valoare particular a procesului la un mo-ment t0 (w0
reprezinta starea sistemului la momentul t0 ) atunci
probabilitatea ca sistemul sa se gaseasc ^ntr-o stare particular w
depinde de w0 deoarece starea w se atinge prin tranzactii dis-crete
de la starea w0:Aceast probabilitate nu depinde ^nsa de starile
anterioare lui w0; traiectoria urmat de sistem de la starea w0 la
starea w ind independenta de modul cum a juns sistemul ^n starea
w0 ^naintea momentului t0 , proprietate care se numeste absenta
postactiunii.

Datorit acestor proprietati tragem concluzia ca evolutia unor ast-fel de


sisteme poate modelat de un proces Markov omogen cu un numar nit de
stari. Probabilitatile de trecere din starea i ^n starea j pentru un lant
Markov omogen sunt de forma:

pij (∆t) = ij + ( 1) ij ij + o(∆t)


Termenii o(∆t) pot considerati nuli si nereprezentati ^n graf, ei au o
contributie nula la ecuatiile de stare ale lantului, deci pot neglijati de la
^nceput.
7.2. FIABILITATE PREVIZIONALA 239

pij (∆t) = ij +( 1) ij ij

ij sunt simbolurile lui Kronecker, iar ij sunt coe cienti pozitivi sau
nuli numiti intensitati de trecere.

Concluzie 5 Dac blocurile componente ale unui sistem au pentru timpul


de buna functionare si respectiv pentru timpul de restabilire repartitii
exponentiale ( si sunt constante ); atunci coe cientii sunt constanti si
probabilitatile de trecere de la o stare la alta nu depind de timp, ci
numai de latimea intervalului ^n care se face trecerea, adic sunt
stationare, iar lantul Markov este omogen si stationar.

Notam cu 0 starea initial a sistemului ^n care toate blocurile sunt ^n


stare de buna fuctionare cu 0; 1; :::n celelate stari ale sistemului (^n care
cel putin o componenta este defecta, sistemul ^ndeplinindu-si corect sau
nu functiile) cu Pj (t) probabilitatea absolut a starii j (probabilitatea
neconditionat ca la momentul t sistemul sa se a e ^n starea j) si cu pij ( )
probabilitatea de trecere din starea i ^n starea j ^n intervalul de timp : Deci
conform formulei probabilitatilor totale:
∑i
n

Pj (t + ) = Pi(t) pij ( ) ; j = 0; 1; :::n (7.15)


=0

Not^and cu P(t) matricea probabilitatilor absolute:

P (t) = [P0(t); P1(t); :::P (t)]

p p p p
00 01 02 ::: 0n
2 p10
6
p
11
p
12 ::: p
31n
7

p( ) = 6 p20 p
21
p
22 ::: 2n
p
7
4 :::
6
::: ::: ::: ::: 5 7

p p p p
6 n0 n1 n2 ::: nn 7
240 CAPITOLUL 7. FIABILITATEA SISTEMELOR

sistemul poate scris matricial sub forma:

P (t + ) = P (t)p( )
Matricea p( ) se numeste matricea stohastic si are urmatoarele
proprietati:

i) elementele matricei sunt probabilitati (0 pij 1) 8i; j

suma termenilor pe linie este egal cu unitatea,

pentru = 0 matricea devine matricea unitate.

Dac scadem ^n ambii membrii matricea P (t) obtinem:

P (t + ) P (t) = P (t)p( ) P (t) P (t + ) P


(t) = P (t)[p( ) p(0)]
^
Impartind ambii membrii cu si trec^and la limita pentru !1
rezulta relatia matriciala:
dP (t) dp( )
=
dt = P (t) dt =0 (7.16)
unde suma termenilor pe linie ^n matricea p′(0) este nula.

Observatia 35 Ecuatia matricial sta la baza studiului abilitatii sis-


temelor, permitand^ calculul oricarei probabilitati de buna functionare
sau defect, ^n orice conditii precizate.

Rezolvarea uni probleme de abilitate prin metoda lanturilor


Markov presupune parcurgerea urmatoarelor etape:

de nirea notiunii de stare a sistemului si stabilirea tuturor sta-rilor


posibile,
7.2. FIABILITATE PREVIZIONALA 241

scrierea matricei de trecere p(∆t) si p′(0);

rezolvarea sistemului de ecuatii.

Etapa 1
Notiunea de stare trebuie astfel de nita nc^at starile sistemului sa
satisfac conditia de dependenta markovian . De asemenea trebuie urmarit
ca numarul total de stari sa e c^at mai mic pentru a avea o tratare
matematic mai putin laborioas . Practic, ^n functie de structura sistemului
se folosesc trei moduri de de nire a starilor.
Modul I (modulul general)
Se considera ca ecare bloc component are doua stari posibile: sta-rea
de buna functionare si starea de defect. Dac sistemul este compus din n
blocuri independente numarul total de stari ale sistemului va 2n: Aceste
stari pot usor descrise cu n simboluri ^n cod binar, simbo-lul 1 reprezinta
atributul de buna functionare a unui bloc si simbolul 0 starii de defect.

Din multimea celor 2n se elimina starile care nu au sens zic. Modul II

Starea sistemului se de neste prin numarul de blocuri defecte din


sistem. Astfel starea 0 va starea ^n care nu exista nici un bloc defect, iar
starea i ^n care exista i blocuri defecte. Acest mod de de nire are sens si
este util numai pentru sistemele formate din blocuri identice, conectate
abilistic ^n paralel sau conectate ca ^ntr-o schema de tipul rezervarii cu
multiplicitate.
Numarul total de stari este cu o unitate mai mare dec^at numarul
blocurilor din sistem, iar probabilitatile elementare de trecere sunt toate
nule, cu exceptia celor de forma:

p ;p ;p
i;i 1 i;i i;i+1
242 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Modul III
Acest mod de de nire se foloseste numai ^n cazul sistemelor av^and
toate blocurile conectate abilistic ^n serie. Starea 0 se de neste ca ind
starea ^n care toate blocurile functioneaza, iar starea i starea ^n care
blocul av^and numarul de ordine i este defect si toate celelalte blocuri
sunt ^n stare de buna functionare. Rezulta ca doar starea 0 este de buna
functionare pentru sistem, iar celelate stari sunt de defect.
Probabilitatile elementare de trecere sunt toate nule cu exceptia

p ;p ;p
i;0 0;i i:i

Etapa 2
^

In aceast etap se scriu mai nt^ai probabilitatile elementare de trecere.


Pentru orice mod de de nire a starilor, probabilitatea de a ram^ane ^n
starea i este de forma:

pii(∆t) = 1 [p(id) + p(ir)]


unde:
p(id) este probabilitatea de a parasi starea i prin defectarea unui bloc,
adica:
(d)

pi = j ∆t

pentru toate valorile lui j corespunzatoare blocurilor bune care mai


asigur functionarea sistemului ^n starea i.
p(ir)este probabilitatea de a parasii starea i prin restabilirea unui
bloc:

(r)
pi = ∑j j ∆t
Dac starile sunt de nite ^n modul I si trecerea din starea i ^n starea j
se face prin defectarea blocului k, atunci probabilitatea de
7.2. FIABILITATE PREVIZIONALA 243

trecere din starea i ^n starea j este:


pji(∆t) = k∆t
iar probabilitatea de trecere din starea j ^n starea i este :
pji(∆t) = k∆t

Dac starile unui sistem cu N blocuri independente, av^and acelasi


si acelasi sunt de nite ^n modul II, atunci trecerea din starea i ^n
starea i + 1 se poate face prin defectarea oricarui bloc din cele N i blocuri
_
bune ^n starea i
pi;i+1(∆t) = (N 1) ∆t
iar trecerea din starea i ^n starea i 1 se poate face prin repararea
oricarui bloc din cele i defecte (^n cazul restabilirii nelimitate)
pi;i 1(∆t) = i ∆t
^
In cazul unui sistem compus din N blocuri, folosind modelul III de de
nire a starilor si not^and cu i si i intensitatile de defectare si respectiv de
restabilire ale blocului i, rezulta:

> p0i(∆t) = i∆t


pi0(∆t) = i∆t
N

>

>
8

>

< ∑
> p 00 (∆t) = 1
> i
∆t (7.17)
> ij
i=1
>
>
> >
p (∆t) = 1∆t; i = 0
> pii
i
(∆t) = 0; j ̸
= 0; 1

>
:

^
> 8 2f g
In scrierea probabilitatilor de trecere exista doua cazuri distincte:

restabilire nelimitat ^n care se considera ca numarul celor care repar


defectul este egal cu numarul maxim de blocuri defecte ce pot
apare.
244 CAPITOLUL 7. FIABILITATEA SISTEMELOR

restabilire limitat ^n care numarul celor care repar defectul


este mai mic dec^at numarul maxim de blocuri defecte ce pot
^

apare. In acest caz pentru starile ce contin mai mult de un singur


defect trebuie precizat prioritatea de restabilire a blocurilor.

Etapa 3
Se rezolva sistemul (7.16) completat cu conditii initiale:
n

Pi(t) = 1
i=1
Pj (0) = Aj (0 sau 1)

Distingem doua cazuri:

Stim apriori ca sistemul este ergodic (pentru un t ! 1 pro-babilitatile P


(t) tind catre o valoare constant independenta de
timp si de starea initiala) si ne intereseaza, doar solutia de regim
^

stationar. In acest caz



lim P (t) = 0
t!1

si sistemul se reduce
8
<
P (t) p′(0) = 0 ∑n
Pj (t) = 1

:
j=1

sistem care este compatibil av^and n + 2 ecuatii si n + 1 necu-


noscute ale carei solutii nu depind de timp.
^
2. In acest caz, intereseaz solutia general (compusa din cea de regim
tranzitoriu si cea de regim permanent). Pentru rezolvare
7.2. FIABILITATE PREVIZIONALA 245

folosim transformata Laplace


1 00∆t 01∆t 02∆t ::: 0n∆t
2
6
10∆t 1 11∆t 12∆t ::: 1n∆t 3
7

p(∆t) = 6 20∆t 21∆t 1 22∆t ::: 2n∆t 7


4
6
::: ::: ::: ::: ::: 5
7

6 n0∆t n1∆t n2∆t ::: 1 nn∆t 7

00 01 02 ::: 0n
2
6
10 11 12 ::: 1n 3
7
n∑

′ 6 7
p (0) = 6 20 21 22 ::: 2n 7 ; ii = j=0 ij
4 5
::: ::: ::: ::: :::

6 n0 n1 n2 ::: nn 7
Not^and cu Pi(s) transformata Laplace a lui Pi(t); adica:
1


Pj (s) = 0 e stPj (t)dt = $Pj (t)
stiind ca:

$Pj′(t) = sPj (s) Pj (0)


si consider^and ca initial sistemul se a a ^n starea 0 cu urmatoarele
conditii initiale:
P0(0) = 1; Pj (0) = 1; j = 1; 2; :::; n
sistemul de ecuatii devine:
= ( 00 + s)P0(s) + ::: + j0Pj (s) + ::: + n0Pn(s) (7.18)
:::
0 = 0j P0(s) + ::: ( jj + s)Pj (s) + ::: + nj Pj (s)
:::
0 = 0nP0(s) + ::: + jnPj (s) + ::: ( nn + s)Pn(s)
246 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Determinantul sistemului (7.18) este un determinant de ordin n+1


care dezvoltat ne da un polinom ^n s de ordinul n+1 pe care-l notam cu
D(s): Dac notam cu Dj (s) determinantul principal ^nlocuind coloana j cu
coloana termenilor liberi, atunci obtinem solutiile:
D (s)
Pj (s) = j

D(s)
1
Pj (t) = $ [Pj (s)]

Observam ca D(s) se poate scrie direct din matricea p (0) in-vers^and
liniile cu coloanele si scaz^and pe diagonala principal variabila
Se observa si ca ^n coloana termenilor liberi toti termenii sunt nuli
cu exceptia celui corespunzator starii initiale, care are valoarea 1. Dac
schimbam conditiile initiale se schimba si coloana termenilor li-beri si
deci Dj (s) asadar se obtine alt expresie pentru Pj (t): Pentru a speci ca ^n
ce conditii initiale s-a obtinut si este valabil expresia lui Pj (t) se mai
adaug un indice care arat starea initial .
Dac D(s) are radacinile reale s0; s1; :::sn atunci el se poate scrie
sub form a:

D(s) = (s + s0)(s + s1):::(s + sn)


∑k
(7.19)
n

Pj (t) = Ajk e skt


=0

unde Ajk sunt niste constante ce se obtin din transformarea inversa.


Probabilitatea ca sistemul sa se a e ^n starea j la un moment dat
^

este de forma relatiei (7.19). In functie de valorile lui sk se deosebesc


doua cazuri:

Dac sk ≠ 0 pentru 8k = 0; 1; :::n rezulta ca nu se ajunge ^n regim


stationar niciodata, adic procesul respectiv nu este ergo-dic.
7.2. FIABILITATE PREVIZIONALA 247

2. Dac exista sk = 0; atunci procesul devine ergodic, deoarece


^

pentru t ! 1; Pj (t) ! Ajk: Intr-adevar e s0 = 0 rezulta:


∑k
n
skt
Pj (t) = Pj0+ Ajk e
=0

unde

Pj0 = Aj0 = constant


La nivel global sistemul este descris de un proces Markov cu doua
stari:

starea 0 corespunde starii de buna functionare a sistemului

starea 1 reprezinta starea de defectare .

Tranzitia din starea 0 ^n starea 1 se produce ^n intervalul (t; t+∆t) cu


probabilitatea
(t)∆t
z(t) reprezinta probabilitatea de defectare a sistemului.
Analiza cantitativ a abilitatii implica ^n prima etap cunoasterea
procesului Markov respectiv a probabilitatilor starilor sistemului. Pen-tru
aceasta scriem ecuatia cu diferente nite

P0(t + ∆t) = P0(t)(1 z(t)∆t)

Aceasta se transform ^n ecuatia diferential


dP0(t)
= z(t)P0(t)

P0(0) = 1
248 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Se obtine solutia:

∫t
P0(t) = exp( z(u)du
0

Dac se presupune ca sistemul se poate re^nnoi, atunci c^and se de-


fecteaz si ca durata de re^nnoire e o variabil aleatoare distribuita dupa o
lege oarecare av^and rata de ^nnoire (t); atunci sistemul poate revenii din
starea 1 ^n starea 0 cu probabilitatea (t)∆t: Probabi-litatile care
caracterizeaz procesul Markov se calculeaz din sistemul de ecuatii:

P0(t + ∆t) = P0(t)(1 z(t)∆t) + P1(t) (t)∆t:


P0(t) + P1(t) = 1

Rezulta:
dP0(t)
= (z(t) + (t))P0(t) + (t)
dt
Rezolvarea ecuatiei pentru cazul general:

∫t

P0(t) = exp( (z( ) + ( ))d ) +


0
∫t ∫

+ exp( (z( ) + ( ))d ) ( )d


0 0

este di cila, de aceea se considera cazul particular ^n care at^at durata de


functionare c^at si durata de reparare sunt distribuite exponential

z(t) =
(t) =
7.2. FIABILITATE PREVIZIONALA 249

Ipoteza privind constanta ratelor de defectare si de re^nnoire


restr^ange aplicabilitatea modelului de analiz global a sistemelor
far uzura la care probabilitatea de punere ^n functiune a siste-mului stiind
ca este mereu aceeasi indiferent de durata scursa de la intrarea ^n
reparare.
^

In aceste conditii consider^andu-se starea 0 ca stare initiala:

P0(t) = + + + exp( ( + )t)


Expresia reprezinta probabilitatea ca sistemul sa e ^n buna stare la
momentul t adic disponibilitatea sistemului. Acest rezultat este valabil
doar ^n cazuri particulare spre deosebire de disponibilitatea calculat pe
baza teoriei proceselor de re^nnoire alternat [31, pp. 107-122].

Fie un sistem descris de un model logic de tip serie format din n


elemente cu rate de defectare si re^nnoire constante si egale respectiv
i si i; i = 1; 2; :::n:
Duratele medii de functionare si de re^nnoire ale elementelor sunt:
1 1
m1i = i ; m2i = i ; i = 1; 2; :::n
Analiza abilitatii sistemului cuprinde doua etape:
Se calculeaz indicatorii generali de abilitate, respectiv functia de
abilitate si media timpului de functionare;

Se calculeaz indicatorii speci ci sistemelor cu re^nnoire, respec-tiv


functiile si densitatile de re^nnoire, disponibilitatea si functia de
abilitate ^n interval.
∑n
S = i
i=1

mi = 1
S
250 CAPITOLUL 7. FIABILITATEA SISTEMELOR
^
In prima etap intereseaz comportarea sistemului p^an la defec-tare; se
ignora posibilitatile de re^nnoire din starea de defectare ^n stare de buna
functionare

P0(t + ∆t) = P0(t)[1 S ∆t)

dP0(t)
= SP0(t)

Rezulta:
t

P0(t) = exp( S du) = exp( S t)


0

Sistemul ind presupus far re^nnoire P0(t) reprezinta functia de


abilitate.
^

In a doua etap de analiz a abilitatii sistemului trebuie sa tinem seama


de posibilitatile de revenire ale sistemului din starile de defec-tare.

Probabilitatile starilor procesului se determina cu ajutorul siste-mului


de ecuatii cu diferente nite:

Pi(t + ∆t) = P0(t)∆t + Pi(t)(1 i∆t); i = 1; 2; :::n

la care se adaug relatia:


∑i
n
P0(t) + Pi(t) = 1
=1

Rezulta
dPi(t)
= iPi(t) + iP0(t)
dt
7.2. FIABILITATE PREVIZIONALA 251
Presupun^and conditia initial P0(0) = 1 si utiliz^and transformata
Laplace, rezulta
∑i ∑
n n
Pi(s) = 1 P0(s) = i P0(s)
=1 S i=1 s+ i

Rezulta P0(s) care este transformata Laplace a disponibilitatii sis-


temului.
Rezulta transformarile Laplace a probabilitatilor starilor de defec-tare:
Pj (s) = j P0(s) =
s+ j
j
s+ j
= ∑i
n
s(1 + s+ i
i
)
=1

Probabilitatea Pi(t) reprezinta indisponibilitatea sistemului da-torita


elementului j.
Valoarea ei asimptotic este:
lim Pj (t) = lim sPj (s) =
t!1 t!1
j

= j
∑i =
n
1+ i

i
=1
m
2j
m
1j
= n
m
2i
1+ m
1i
=1

∑i
Concluzie 6 Un lant Markov este convenabil sa e reprezentat sub forma
unui graf orientat, ^n care nodurile reprezinta starile sistemului, iar
arcele reprezinta tranzitiile posibile de la o stare la alta.
252 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Procese Markov de parametru continuu [1, pag 152-153]


Fie x 2 R starea sistemului la momentul t si e A o multime de stari ale
sistemului. Notam cu p(t; x; ; A) probabilitatea ca sistemul care a fost la
mmentul t ^n starea x sa treac la momentul > t ^n una din starile multimii

p(t; x; ; A) = P (X( ) < y=X(t) = x) (7.20)

Presupunem ca functia (7.20) este de nita pentru > t si ca are


proprietatile:

este o functie de repartitie ^n raport cu y;

este continua ^n raport cu t; ;

este integrabil ^n raport cu x;

4.

lim F (t; x; ; y) = lim F (t; x; ; y) =


!t+0 !t 0 {
1; x = y
= (x; y) =
0; x ̸= y

Stim : ∫
P (A) = (P (A)=X = x)dF (x)
R

iar dac B 2 K si FB(x) este functia de repartitie a v.a. X conditionat de


multimea B :

P (A=B) = (P (A)=B \ X = x)dFB(x)
R
7.2. FIABILITATE PREVIZIONALA 253

Fie momentele t < s < si dac notam:


= fX( ) < yg; B =
fX(t) = xg
din relatia (7.20) obtinem:
P (X( ) < y=X(t) = x) =

P [X( ) < y=X(t) = x; X(s) = z] dzP [X(s)
R
z=X(t) = x)
Deoarece avem un proces Markov:
P [X( ) < y=X(t) = x] = P [X( ) < y=X(s) < z]
deci:
P [X( ) < y=X(t) = x] =

P [X( ) < y=X(s) < z]dzP [X(s) < z=X(t) = x)
R
sau

F (t; x; ; y) = R F (t; x; ; y) dzF (t; x; ; y) (7.21)
Relatia (7.21) reprezinta generalizarea relatiei Chapman-Kolmogorov
^n cazul proceselor Markov.
Dac densitatea de trecere
@
f(t; x; ; y) = @y F (t; x; ; y)

aceasta va ^ndeplinii conditiile:



f(t; x; ; y) 0; f(t; x; ; y)dy = 1
R

F (t; x; ; y) = f(t; x; ; z)dz


R
254 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Relatia Chapman-Kolmogorov devine:

f(t; x; ; y) = ∫
f(t; x; s; z)f(s; z; ; y)dz
R

Procesul Markov este stationar (sau temporal omgen), dac functia de


trecere F (t; x; ; y) nu depinde de momentele ^n care se realizaz trecerea,
ci doar de lungimea intervalului de timp, deci este F ( t; x; ; y): Dac
functia de trecere depinde doar de t; si y x atunci procesul se numeste
aditiv(spatial omogen).
^

In mediul de programare RSTUDIO exista pachetul Markovchain


care dispune de trei functii statistice utilizate ^n estimari si si-mulari:

markovchainFit,predict,rmarkovchain

7.3 Fiabilitate parametric


7.3.1 Obiective
Fiabilitatea parametric are ^n vedere evolutia ^n timp a unui pa-
rametru caracteristic pentru un produs. Dac se considera un lot de produse
identice, supus observatiilor, se constat ca de la ^nceput, ^n urma
fabricatiei, parametrul sau caracteristica speci ca produselor respective
(X) nu este aceeasi la toate componentele lotului, ind ^nsa ^

cuprinsa ^ntr-o plaj initial de toleranta (de exemplu = 5%). In timp,


valoarea initial a caracteristicii sufera o modi care dupa o lege oarecare,
^n general ^n sensul scaderii (ex.: capacitatea unui conden-sator ) sau
cresterii (ex: pierderile de mers ^n gol la un motor electric).
Modi carea valorii initiale a parametrului nu este indiferenta pen-tru
functionarea unui sistem complex care ^ncorporeaz asemenea ele-mente,
este necesar prevederea unor limite, dincolo de care nu mai
7.3. FIABILITATE PARAMETRICA 255

este permisa utilizarea lor. Momentul tdi , ^n care valoarea parametru-lui


X atinge limita impusa (Xsup sau Xinf), echivaleaz cu o defectare.
Sistemul continua sa functioneze, dar far a respecta conditiile stabi-lite

Xinf < X < Xsup

De nitie 44 Fiabilitatea stabilit pe baza statisticii evenimentelor co-


respunzatoare momentelor tdi, se numeste abilitate parametric .

Curbele de evolutie a parametrului ^n timp, sunt asimilate cu drepte,


reprezentarea teoretica ind de doua feluri:

Evolutie parametric de tip polar,


Evolutia parametric uniforma.

7.3.2 Metode pentru studiul abilitatii parame-trice


^
In continuare vom studia calculul abilitatii, [19, pag 78-88] por-nind
de la cunoasterea modului ^n care variaz marimile de iesire ale unui
sistem, ^n functie de variatiile posibile ale parametrilor interni si de
intrare, aceste variatii ind simultane si independente. Problema de fapt se
reduce la determinarea valorilor parametrilor de iesire, res-pectiv variatia
parametrului de iesire determinant al sistemului, ^n functie de repartitia
tolerantelor parametrilor interni.
^

In esenta se presupune ca parametrul de iesire este distribuit nor-mal


^n orice moment al duratei de viata a sistemului si ca el trebuie sa se
^ncadreze ^ntre anumite limite (+L) si ( L). Pentru toate valorile ce
depasesc aceste limite, se produce defectarea sistemului sau o stare
echivalent cu defectarea.
La momentul initial t0, parametrul de iesire semni cativ are media m0
si dispersia 20. La alte momente ulterioare datorit diverselor
256 CAPITOLUL 7. FIABILITATEA SISTEMELOR

variatii ale parametrilor interni, media si dispersia se modi ca conform


noilor distributii ale parametrului de iesire y0 la momentele respective.
Este evident ca trebuie sa de nim un model matematic, care ne-cesita
parcurgerea urmatoarelor etape:

selectia sistemului;

stabilirea modelului matematic (functia de transfer);

validarea experimental a modelului;

determinarea teoretica a domeniului de functionare;

determinarea experimental a domeniului de functionare.

^
In general se folosesc urmatoarele metode:

metoda experimentala;

metoda regresiei;

metoda cazului cel mai defavorabil sau a valorilor extreme;

metoda Monte Carlo.

Deoarece exista un pachet RStudio Markov Chain Monte Carlo


prescurtat mcmc( elaborat de Charles J. Geyer ) care se poate descarca de
la adresa http: // www.stat.umn.edu/geyer/mcmc ne vom focusa ^n aceast
lucrare pe metoda Monte Carlo.
7.3. FIABILITATE PARAMETRICA 257

7.3.3 Metoda Monte Carlo


Aceast metoda este o tehnica de simulare, legat de probleme cu
caracter aleator, model^and variabile aleatoare, ^n scopul calcularii
repartitiei acestora. Metoda Monte Carlo permite simularea functionarii
sistemelor cu ajutorul proceselor aleatoare.
Consideram:
yj (j = 1; 2; :::; n) - parametrii de iesire;
i
yj (i = 1; 2) - limita inferioara, respectiv superioara, admise de
proiectant pentru parametrii de iesire;
xk (k = 1; 2; :::m)- parametrii interni si de intrare.
Metoda presupune urmatorii pasi:

Scrierea ecuatiilor modelului matematic ce descrie functionarea sis-


temului:
yj = F (x1; x2; :::xm); j = 1; 2; :::n (7.22)

Randomizarea parametrilor xk;

a
Pentru cazul unei repartitii normale x k se determina prin relatia:
N T
x + 2x
a N k k

xk = xk + 6 kh (7.23)

umde :
xNk este valoarea nominal a parametrului xk; xTk
- toleranta parametrului xk;
kh - un numar aleator dintr-o selectie su cient de mare de nu-mere
aleatoare repartizate uniform ^n intervalul (0,1) cu h = 1; 2; :::r:
Modelul mcmc aplic formula de randomizare (7.23) ecarui pa-rametru
a
x si veri ca inegalitatile:
K

x1k xak x2k (7.24)


258 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Valorile lui ce satisfac inecuatia (7.24), se introduc ^n modelul (7.22),


din care, ^n urma datelor obtinute prin ^ncercarile privind
variatia parametrilor interni si de intrare, se determina densita-tea
de probabilitate f(yj ) a parametrilor de iesire aleatori yj:

Se formuleaz un criteriu cantitativ de determinare a abilitatii


sistemului astfel: abilitatea unui sistem S la momentul t, P (S; t), se
poate de ni prin probabilitatea ca parametrii de iesire yj (t) la
momentul t > 0, sa se ^ncadreze ^n limitele y1j, y2j admise apriori:

P (S; t) = P (yj1 yj (t) yj2); j = 1; 2; :::n (7.25)

Dac exista un singur parametru de iesire y atunci:


y


P (S; t) = P (y1 y(t) y2) = y1 2 f(y)dy (7.26)
Dac exista mai multi parametri de iesire independenti (yj ) :
n

1 2
P (S; t) = P (yj yj (t) yj ) = (7.27)
j=1 ∫ yj2
n


= f(yj )dyj
1
j=1 yj

Generarea numerelor pseudoaleatoare kh distribuite uniform ^ntr-un


interval dat, se face folosind rutine de calcul specializate din
biblioteca matematic a mediului de programare MStudio.

De asemenea se poate utiliza metoda congruential prezentat ^n exemplul


2.1.
7.4. FIABILITATE EXPERIMENTALA SI OPERATIONALA 259

7.4 Fiabilitate experimental si operational


Dupa realizarea produselor se impune si faza de veri care a con-
formitatii indicatorilor de abilitate determinati prin calcule.
Aceasta se poate face ^n doua moduri:

^n laborator, ^n conditii standard de ^ncercare, stabilite astfel nc^at sa


se simuleze conditiile de solicitare reala, din functionarea normala,
sau ^n conditii accelerate;

^n exploatare, indicatorii determinati av^and un caracter real, cu


conditia ca modul de exploatare sa e corect si semni cativ pen-tru
produsul studiat.
^
In studiul abilitatii experimentale sau operationale, cel mai im-portant
lucru ^l constituie determinarea legii de distributie care guver-neaz
procesul respectiv de defectare, cele mai utilizate ^n acest dome-niu, sunt
legile de distributie continue si anume: legea exponentiala, legea normal
si legea Weibull.
Deci, ^nainte de a trece la determinarea indicatorilor de abilitate,
trebuie sa se veri ce care din legile de mai sus este valabil .
Pentru veri carea si determinarea indicatorilor de abilitate se uti-lizeaz
riglele pentru determinarea abilitatii. Pentru veri carea con-formitatii legii
de distributie, se folosesc metodele de prelucrare sta-tistica a datelor
experimentale obtinute. Cele mai utilizate sunt:

Testele gra ce de abilitate ^n cazul celor trei legi de distributie mai des
utilizate, folosind asa-zisele h^artii de probabilitate;

Rigle pentru determinarea abilitatii;

Prelucrarea statistic a datelor din exploatare ^n vederea veri carii


concordantei legii de repartitie.
260 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Datele necesare prelucrarii se extrag din raportul de exploatare.


Pentru ecare componenta a lotului supus observatiilor se noteaz
momentul defectarii, iar aceste informatii se trec ^ntr-un tabel centra-
lizator ^n ordine crescatoare:

t1 t2 ::: tr

unde r reprezinta numarul total de defecte din lotul de n produse


supuse observatiilor.
Recomandam folosirea urmatoarelor teste:

2
Testul care poate aplicat pentru veri carea concordantei oricarei repartitii
empirice cu repartitia teoretica corespunzatoare, far a cunoaste ^nsa
valorile repartitiei teoretice.

Testul Kolmogorov-Smirnov care veri ca concordanta dintre o repartitie


teoretica F (X) si una experimental Fn(X):

7.5 Exemple
Exemplul 44 S-au observat un numar de 10 PC-uri pe durata a 28260
ore c^at reprezinta perioada de garantie.
Datele ^n ordinea producerii iesirilor din functionare se prezinta ^n
tabelul urmator:
7.5. EXEMPLE 261

calc timp
1 1041
2 1125
3 1201
4 1308
5 1405
6 1524
7 1534
8 1610
9 1654
10 1709

Sa se estimeze abilitatea acestui sistem utilizind media duratei ramase


de functionare MTTFF.
Solutie
Vom construi vectorul cu timpul de functionare al calculatoarelor,
dupa care vom de ni norma necesar .Vom calcula timpul ramas de
functionare, facem o medie a datelor, iar apoi vom face raportul mediei
de functionare cu norma de functionare stabilind probabilitatea ca aceste
calculatoare sa functioneze. Scriem urmatorul cod RStudio:

>timp=c(1041,1125,1201,1308,1405,1524,1534,1610,1654,1709)
>norma=28260
>timp_ramas=norma-timp
>mean(timp_ramas)
>fiabilitate=mean(timp_ramas)/norma
>fiabilitate

Vom obtine rezultatul:

[1] 0.9500672

Deci ne ^ncadram ^n riscul bene ciarului de 1 = 10%


262 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Exemplul 45 MTBF a unei telecomenzi apartin^and unui T.V. cu plasm


^n zile are urmatoarea densitate de probabilitate:
{
x2
1000 ; x > 1000 f(x)
=
0; x 1000

Sa se calculeze :
Probabilitatea ca telecomanda sa nu e ^nlocuita ^n primele 1500 de
zile.
Stiind ca o telecomand functioneaz mai mult de 2000 zile sa se
determine probabilitatea ca ea sa nu functioneze mai mult de 3000 zile.

Solutie
Vom da o solutie analitic . Cuantila timpului de buna functionare este
dat de urmatoarea relatie:
1


P (x > T ) = T f(x)dx
1
1000 2

P (x > 1500) = 1500 x2 dx = 3 (7.28)
Se poate folosi si RStudio pentru calculul integralei (7.28) astfel:

integrant<-function(x){1000/x^2}
integrate(integrant,1500,Inf)
0.6666667 with absolute error < 1.2e-05

De nim urmatoarele evenimente: A- Evenimentul ca o teleco-mand sa


functioneze mai mult de 2000 zile, B-evenimentul ca ea sa functioneze
mai putin de 3000 de zile.
7.5. EXEMPLE 263

Vom folosi formula probabilitatilor conditionate.

P (A=B) = P (x > 2000=x < 3000) = (7.29)


P (2000 < x < 3000)
= =
P (x < 3000)
3000
1000

2000 x
2
dx 1
= =
3000
4
1000

∫ x2 dx
Vom folosi din nou RStudio pentru calculul (7.29) si obtinem acelasi
rezultat:

integrant<-function(x){1000/x^2}
a=integrate(integrant,2000,3000)
b=integrate(integrant,-Inf,3000)
p=a/b
p
0.25

Exemplul 46 S-au facut 12 teste de anduranta asupra unui tip de


HDD si s-a stabilit ca MTBF (^n zile) este dat ^n tabelul urmator:
1 2 3 4 5 6 7 8 9 10 11 12
580 595 618 640 665 690 720 780 821 864 968 1003
Folosind testul Kolmogorov-Smirnov sa se veri ce ipoteza statistic ca
datele din tabel urmeaz o lege normal .

Solutie 5 Scriem urmatorul script Kolmogorov.r:

x<-c(580,595,618,640,665,690,720,780,821,864,968,1003)
264 CAPITOLUL 7. FIABILITATEA SISTEMELOR

#ipoteza nula distributia TMBF este normala,


ipoteza alternativa este o alta distributie summary(x)

sd(x)#deviatia standard
par(mfrow=c(1,4))
w=hist(x)#histograma
#generam 12 valori cu media 800.9
y=rnorm(12,mean=800.9,sd=39.74426)
summary(y)
sd(y)
#windows()
qqnorm(x)#graficul are trebui sa fie o dreapta #verificam
daca cele doua selectii
#au aceasi distributie
#graficul ar trebui sa fie o dreapta
grid(5,5,col="GREEN")
qqplot(x,y,main="Q-Q plot- doua selectii",pch="+",
xlab="x=runif(100)", ylab="y=rnorm(1000,mean=800.9)")
grid(5,5,col="BLUE")
#folosim testul Kolmogorov-Smirnov z=ks.test(x,y)#au aceasi
distributie? #deoarece p-val<0.5883 se respinge ipoteza nula
plot(x,y,type="b",pch="+",xlab="",ylab="",lwd=3);
title(main="Test Kolmogorov") grid(5,5,col="RED")

Dac ^l lansam ^n executie folosind comanda:

>source('~/R/Kolmogorov.R')

obtinem gra cul:


7.5. EXEMPLE 265

Two-sample Kolmogorov-Smirnov test

data: x and y
D = 0.58333, p-value = 0.03144
alternative hypothesis: two-sided

Concluzionam ca deoarece p val < 0:5883 se respinge ipoteza nula


vezi gura(7.1).
266 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Figura 7.1: Teste de anduranta


7.5. EXEMPLE 267

Exemplul 47 Un calculator, ce are cuplate o imprimant si un plot-ter,


poate privit ca un sistem care se poate a a ^ntr-una din urmatoarele stari:

a: calculatorul, imprimanta si plotter-ul sunt functionale;

b : imprimanta este defecta si pot rulate numai programe uti-liz^and


plotter-ul;

c: plotter-ul este defect si pot rulate numai programe utiliz^and


imprimanta;

d: calculatorul este defect sau imprimanta si plotter-ul sunt de-fecte,


sistemul nemaiput^and utilizat.
^
In momentul initial sistemul se a ^n starea a si el este controlat la
momente xate de timp, t1,t2,t3. Sistemul poate modelat cu un lant Markov
cu trei pasi (momentele de timp dupa cele trei controale). Se cer
probabilitatile starilor sistemului dupa cele trei controale. Nu se iau ^n
considerare eventuale actiuni de reparare.

Solutie 6 Avem urmatoarele probabilitati de tranzitie:


p12 = 0.1; p13 = 0.2; p14 = 0.3; p11= 1 - p12 - p13 - p14 = 1 - 0.1 - 0.2
- 0.3 = 0.4;
p21 = 0; p23 = 0; p24 = 0.2; p22 = 1 -p21 - p23 - p24 = 1 - 0.2 = 0.8;

p31 = 0; p32 = 0;p34 = 0.1; p33 = 1 -p31- p32 - p34 = 1 - 0.1 = 0.9; p41
= 0; p42 = 0; p43 = 0; p44 = 1.
Probabilitatile initiale ale starilor sunt: p1(0) = 1, p2(0) = p3(0) =
p4(0) = 0.
Vom ^ncerca sa dam o solutie folosind RStudio:
268 CAPITOLUL 7. FIABILITATEA SISTEMELOR

library(markovchain)
library(matlab)
mathematicaMatr <- zeros(4)
mathematicaMatr[1,] <- c(0.4,0.1,0.2,0.3)
mathematicaMatr[2,] <- c(0,0.8,0,0.2)
mathematicaMatr[3,] <- c(0,0,0.9,0.1)
mathematicaMatr[4,] <- c(0,0,0,1)
statesNames <- letters[1:4]
mathematicaMc <- new("markovchain",
+transitionMatrix = mathematicaMatr,
+name = "Mathematica MC",states = statesNames)
m<-mathematicaMc
m

4 - dimensional discrete Markov Chain defined by the following


states:
a, b, c, d
The transition matrix (by rows) is defined as follows:
a b c d
a 0.4 0.1 0.2 0.3
b 0.0 0.8 0.0 0.2
c 0.0 0.0 0.9 0.1
d 0.0 0.0 0.0 1.0

plot(m,package="diagram")
title(main = "Diagrama starilor")
iterate.P <- function(x, m, n) {
res <- matrix(NA, n+1, length(x))
res[1,] <- x
for (i in seq_len(n))
res[i+1,] <- x <- x %*% P
res
7.5. EXEMPLE 269

+}
n <-3
y1<-iterate.P(c(1,0,0,0),m,n)
y1
[,1] [,2] [,3] [,4]
[1,] 1.000 0.000 0.000 0.000
[2,] 0.400 0.100 0.200 0.300
[3,] 0.160 0.120 0.260 0.460
[4,] 0.064 0.112 0.266 0.558
matplot(0:n,y1,type="l",lty=1,xlab="Pasi",
ylab="y",las=1)

Dupa executie se obtin gra cele urmatoare:


270 CAPITOLUL 7. FIABILITATEA SISTEMELOR

(a) (b)

Exemplul 48 Sa se studieze din punctul de vedere al abilitatii un sistem


cu re^noire format din doua microprocesoare identice conectate ^n
paralel. Microprocesoarele au timpii de buna functionare p^an la
defectare si timpul de reparare distribuiti exponential cu rata de defec-
tare si rata de reparare .
Pentru ^nceput vom da o solutie analitic .
Un studiu al comportarii abilistice al unui asemenea sistem im-plica
determinarea:

R(s) = transformata Laplace a functiei de abilitate R(t) a siste-mului


7.5. EXEMPLE 271

m1 = media timpului de functionare p^an la prima defectare a sistemului

A(s) =transformata Laplace a functiei de disponibilitate A(t) a sistemului

A = coe cientul de disponibilitate a sistemului


m2 = media timpului de reparare a sistemului

Studiul se poate realiza folosind modelarea prin procese Markov.


Pentru aceasta este necesar sa se determine starile sistemului. Mo-delarea
cea mai natural e aceea a codi carii binare a starii ecarui microprocesor
din structura sistemului. Asignam simbolurile:

"1" : starea de buna functionare a microprocesorului,

"0" :starea defectare a microprocesorului..

Numerot^and microprocesoarele componente ale sistemului de la i =


1; 2; atunci cuv^antul binar care este format din bitii starilor ecarui
microprocesor se va reprezenta ^n mod unic.
Un sistem cu 2 microprocesoare va descris 22 stari si prin tranzitiile
^ntre aceste stari. Tranzitiile vor putea reprezentate printr-o matrice a
probabiltatilor de tranzitie dintr-o stare ^n alta , asadar printr-o ma-trice cu
2 2
2 linii si 2 coloane. Pentru a avea o tratare matematic c^at mai putin
laborioas este bine sa avem c^t mai putine stari, de aceea ^n primul r^and
se elimina starile care nu au sens zic (^n care de exemplu nu se pate ajunge
niciodata). Se caut si alte reprezentari posibile ale starilor astfel nc^at sa
avem un numar mai mic de stari. Starile de buna functionare ale sistemului
se deseneaz cu cercuri (elipse) cu o linie simpla continua, iar ^n interior se
scrie "numele" starii, starile de defect se marcheaz printr-un cerc cu o linie
^ngrosat . Astfel, ^n cazul sistemelor cu blocuri identice conectate ^n
paralel din punct de vedere
272 CAPITOLUL 7. FIABILITATEA SISTEMELOR

abilistic se prefera notarea starilor dupa numarul de microprocesoare


defecte din sistem. Vom considera ^n continuare un sistem duplex format
din cele doua microprocesoare care are o viteza constant de defectare =
10 5 si o viteza constant de reparatie = 10 2: Mo-delul Markov al acestui
sistem este prezentat ^n gura (7.2):

Figura 7.2: Model Markov continuu


7.5. EXEMPLE 273

P0(t + ∆t) = P0(t)[1 2 ∆t] + P1(t) ∆t


{ P1(t + ∆t) = 2P0(t) ∆t + P1(t)[1 ( + )∆t]
) dP0(t)
dt = 2 P0 (t) + P1 (t)
8
dP1(t)
dt = 2 P0(t) ( + )P1(t) (7.30)
:

< P1(0) = 1; P0(0) = 0


Problema Cauchy (7.30) o rezolvam folosind transformata Laplace,
obtin^and un sistem de doua ecuatii liniare cu doua necunoscute P1(s); P0(s)

(s + 2 )P0(s) P1(s) = 0
{ 2 P0(s) + (s + + )P1(s) = 1
s+2
P1(s) = 2
s +s(3 + )+2
2

{ P0(s) = 2
s +s(3 + )+2
2

)
R(s) = P0(s) + P1(s) =
s+2 +
= 2 2
s + (3 + )s + 2

1 2+


m1 = 0 R(t)dt = R(s)js=0 = 22
274 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Disponibilitatea sistemului pentru un singur depanator

Figura 7.3: Disponibonibilitatea sistemului pentru un singur depana-tor

P (t + ∆t) = P (t)[1 2 ∆t] + P (t) ∆t


0 0 1
8 P1(t + ∆t) = 2P0(t) ∆t + P1(t)[1 ( + )∆t] + P2(t) ∆t
:

< P2(t) = 1 P0(t) P1(t)


8 dP0(t)
= 2 P0(t) + P1(t)
< dt
dP1(t)
: dt = (2 )P0(t) ( + 2 )P1(t) + (7.31) P1(0) = 1; P0(0) = 0

Rezolv^and problema Cauchy (7.31) folosind transformata Laplace


obtinem :
2
(s + (3 + )s + 2 )P0(s) P1(s) = 0
s+
{ (2)P0(s) + (s + + )P1(s) = s

Rezolv^and sistemul liniar de mai sus obtinem solutiile:

(s + )
P0 (s) =
s[s + (3 + )s + 2 2 + 2 + 2]
2

P (s + 2 )(s + )
1 (s) = s[s2 + (3 + )s + 2 2 + 2 + 2]
7.5. EXEMPLE 275

A(s) = P0(s) + P1(s) =


(s + )(s + 2 + )
=
2 2 2
s[s + (3 + )s + 2 + 2 + ]
Coe cientul de disponibilitate este :

= lim A(t) = lim sA(s) =


t!1 s!0
2+ m
2 1
2
= 1 2+ =
+ 2 2 m1 + m2
276 CAPITOLUL 7. FIABILITATEA SISTEMELOR

Disponibilitatea sistemului pentru doi depanatori

Figura 7.4: Disponibilitatea sistemului pentru doi depanatori

{
(s+2 )
P0(s) =
s(s+ + )(s+2 +2 )
(s+2 )(s+2 )
P1(s) =
s(s+ + )(s+2 +2

)
A(s) = P0(s) + P1(s) =
= (s + 2 )(s + 2 )
s(s + + )(s + 2 + 2 )
7.5. EXEMPLE 277

Coe cientul de disponibilitate este

A = lim A(t) = lim sA(s) =


t!1 s!0
2+ m
2 1
2
= 1 2+ =
2 + 2 2
m1 + m2

unde
1
m2 = 2
este durata medie de re^noire a sistemului.

(2 + ) ()
2 2 2
A(t) = ( + ) + ( + ) exp( ( + )t) + ( + ) exp( ( + )t)

A(t) = A1(t) + A2(t) A1(t)A2(t)


unde
A1(t) = + + + exp( ( + )t)
exp( ( + )t)
{ A2(t) = + +
Observatia 36

R(t) = R1(t) + R2(t) R1(t)R2(t)

Sugeram cititorilor rezolvarea acestei probleme folosind R-Studio.


Indicatie
Se vor folosii help-urile din pachetele R-Studio:

microbenchmark, mcmc,
markovchainFit,predict,rmarkovchain.
Capitolul 8

Probleme propuse

Sa se realizeze un program care implementeaz algoritmul


SUPER0.
Se va scrie cod C++, si se va crea un dll, apoi se va lansa ^n RStudio.
Sa se realizeze un program care implementeaz algoritmul
SUPER1.
Se va scrie cod C++, se va crea un dll si apoi se va lansa ^n RStudio.
Sa se realizeze un program care implementeaz algoritmul KMP
(Knuth-Morris-Plat) pentru potrivirea sirurilor.
Efectu^and o ^ncercare exhaustiv asupra a 12 de microproce-soare
Intel s-au obtinut urmatoarele momente de defectare exprimate ^n ore:

105 232 290 293 295 325 368 388 403 405 422 428:

Sa se identi ce legea de distributie a timpului de buna functio-nare (se


va folosi RStudio).
b)Sa se calculeze parametrii legii.
Sa se raspund la ^ntrebarea de ce este necesar un test statistic de
^

concordanta ? In ce consta el?

278
279

Un esantion de n = 10 hard-discuri sunt supuse unui test de abilitate,


timpul xat ind de 2000 de ore.

Dupa epuizarea perioadei T au ramas ^n stare de buna functionare


doar doua hard-discuri.

^
In ipoteza unui model exponential calculati:

durata medie de functionare.

b)rata de defectare

c)probabilitatea ca hard-discurile sa functioneze far defectiuni cel putin 500 ore.


Hard disk T impii de buna f unctionare
1 100
2 170
3 250
4 400
5 520
6 680
7 1200
8 1500

6. S-au observat un numar de 10 calculatoare pe durata a 2500 de ore,


c^at reprezinta perioada de garantie. Datele ^n ordinea producerii iesirilor
din functionare se prezinta ^n tabelul urmator:
280 CAPITOLUL 8. PROBLEME PROPUSE

Calculator T imp
1 845
2 868
3 920
4 1034
5 1450
6 1680
7 2238
8 2275
9 2345
10 2480
Sa se estimeze abilitatea acestui sistem utiliz^and media timpului de
buna functionare.
Numarul de componente electronice v^andute zilnic la supermar-
ketul Flanco din Sibiu este o variabil discreta repartizat uniform ^n
intervalul [6; 10]: Se cere simularea v^anzarilor pentru zece zile.
Sa se scrie un program ^n RStudio care sa analizeze comportarea unui
sistem multimedia serie av^and opt componente cu abilitatile: 0.63, 0.69,
0.72, 0.77, 0.83, 0.87, 0.95, 0.97
Numarul de calculatoare care sosesc la nt^amplare la o rma de
depanare poate descris de o distributie Poisson cu media de trei
calculatoare pe zi. Se cere simularea numarului de calculatoare care vor
sosi ^n urmatoarele patru zile.
Firma VISMA doreste sa organizeze trimestrial concursuri pentru
ocuparea unor posturi de programatori. Procesul de selectie a angajatilor
presupune participarea candidatilor la un test de pro-gramare. Estimam ca
se pot ^nscrie maxim 25 candidati. Pe baza experientei de la testele
anterioare s-a stabilit ca probabilitatea ca un candidat sa treac testul este
de 30%. Managerul rmei doreste sa de-termine prin simulare c^ati
candidati vor promova testul la urmatoarele trei concursuri.
281

Sa se scrie un program R pentru implementarea algoritmului criptogra


c RSA cu chei publice.
Repartitia timpului de buna functionare a unui microprocesor pe 64
biti este caracterizat prin densitatea de probabilitate:
1 x
f(x; ) = 2
exp( 2 ); dac x 0
{ 0; dac x < 0
Presupun^and ca x1; x2; x3; :::xn reprezinta duratele de functionare a
n microprocesare sa se estimeze parametrul folosind metoda vero-
similitatii maxime. Se va da o solutie analitic si una folosind mediul de
programare RStudio.
Reteaua de PC-uri din laboratorul de calitate si abilitate este format
din 14 calculatoare, al carui factor de ^ntretinere este = 0; 1: Sa se
determine probabilitatea ca ^n compartimentul de ^ntretinere dotat cu un
singur inginer electronist sa se a e j calculatoare (j =
0; 1; :::14):
Sa se a e numarul mediu de calculatoare care sunt ^n atelierul de
^ntretinere.
Se presupune ca releele defecte obtinute ^ntr-un proces de
^

productie al rmei Siemens nu depasesc 5%. Intr-o selectie de 100 piese se


gasesc 10 defecte.
Sa se veri ce ipoteza la un nivel de semni catie 0.05. Se va folosii mediul
de programare RStudio.
Studind rezistenta la rupere a unor cabluri electrice s-au obtinut
urmatoarele valori:

16:10; 19:18; 19:25; 22:44; 22:58; 23:20; 24:58; 26:50; 27:22; 30:26:

Sa se veri ce folosind testul Kolmogorov, dac rezistenta la rupere poate


considerat variabil normal .
16. MTBF [33] a unei plasme dintr-un lot omogen este o va-riabil
aleatoare. Presupunem ca probabilitatea ca o plasm sa e
282 CAPITOLUL 8. PROBLEME PROPUSE

functionala, dupa un interval de timp de la intrarea ei ^n functiune este


dat de:
P (T > ) = e
unde > 0 este un parametru.
Admitem ca durata medie de viata este de 105 ore. Care este
probabilitatea ca patru plasme sa ias din functiune ^n 2 105 ore?
Putem alege doua tipuri de plasme. Prima are o durat medie de viata
5 5
de 10 ore si costa k euro, iar a doua are o durat medie de viata de 2 10
ore si costa 2k euro.
Pentru securitate oricare din cele doua tipuri de plasme sunt ^n-
locuite, atunci c^and probabilitatea de supravietuire ( abilitate) este de
30%. Care este tipul de plasm cel mai avantajos, ^n ipoteza ca toate
plasmele urmeaz legi de repartitie independente unele de altele.
Bibliogra e

Gabriela Beganu, &Colaboratori- Elemente de teoria probabi-litatilor si


statistic matematica, -Meteor Press, Bucuresti 2003.

Petru Blaga- Statistic prin Matlab-Editura Presa Universitar Clujeana,


2002.

Peter Dalgaard - Introductory Statistics with R- Springer Verlag


Second Edition 2008.

W. G. Hunter, and J. S. Hunter.-Statistics for Experimenters, 2d ed.


New York: Wiley Interscience. 2005.

Petru Blaga - Statistic prin Matlab-Editura Presa Universitar Clujeana,


2002.

Borovkov, A.- Statistique Mathematique-Editions MIR, Moscou, 1987.

John M. Chambers - Software for Data Analysis, Programming with R-


Springer Verlag ,2009.

C. Cormen, T. Leiserson, R. Rivest { Algorithms, MIT Press, 1994.

Jonathan D.Cryer, Kung-Sik Chan- Time Series Analysis with


Applications in R- Springer Texts in Statististics Hardcover 2008.

283
284 BIBLIOGRAFIE

Dirk Eddelbuettel - "R, C++ and Rcpp", UCLA, 2014.

Ding, C. G. Algorithm AS275: Computing the non-central chi-squared


distribution function. Appl.Statist., 41 478{482,1992.

Graybill, F. - Theory and Application of the Linear Model. Bel-mont


Calif.: Duxbury,2000.

Geyer, C. J. - Practical Markov Chain Monte Carlo, Statistical Science 7


473{483 1992.

Hocking, R. R. - Methods and Applications of Linear Models: Regression


and the Analysis of Variance, 5th ed.New York: Wiley
Interscience.2003.

Geber, T., Staicut, E. Tutoveanu, I. Balan, M.- Fiabilitatea si


mentenabilitatea sistemelor- Editura Tehnica, Bucuresti, 1984.

Gheoghe Mihoc, Aneta Muja, Eugeniu Diatcu-Bazele matematice ale


Teoriei Fiabilitatii -Editura Dacia Cluj-Napoca, 1976.

Gheoghe Mihoc, G. Ciucu, V.Craiu-Teoria probabilitatilor si Sta-tistica


Matematica, Ed. Did. Ped. Bucuresti, 1970.

Maria Miroiu, Viorel Petrehus, Gheorghita Zbaganu- Initiere ^n R,


pentru persoane cu pregatire matematic -proiect POS-
DRU/56/1.2/S/32768,2002.

Toader Munteanu, Gelu Gurguiatu, Ciprian Balanuta- Fiabilitate si


Calitate ^n Inginerie Electrica- Galati University Press, 2009

Murrell, P- R Graphics. Chapman & Hall-CRC Press, 2005.

Emmanuel Paradis- R pentru ^ncepatori-Institutul de Stiinte ale


Evolutiei, Universitatea din Montpellier II, 2005.
BIBLIOGRAFIE 285

A. Paun, M. Paun- Analiz Statistic folosind limbajul R, Edi-tura Matrix


Rom,Bucuresti, 2009.

E.Pieruschka - Principles of reliability- Prentice-Hall, Inc. En-glewood


Clifs, New York,1963.

Daniel N.Pop- Teoria probabiltatilor si Statistic Matematic prin Matlab -


Editura Universitatii Lucian Blaga, Sibiu, 2018.

Vasile Preda- Teoria deciziilor statistice, Ed. Academiei Romane, 1992.

Christian P.Robert, Gerge Cassella- Introducing Monte Carlo Methods


with R-Springer Science +Bussines Media,2010.

Radu Tiberiu Tr^ambitas- Metode statistice- Editura Presa Uni-versitar


Clujean 2013.

G.A. Spedicato, T.S Kang, S.B. Yalamanchi,D.Zadav- The mar-kovchain


Package: A Package for Easily Handling Discrete Mar-kov Chains
in R.-The R Journal URL ,2017.

Karline Soetaert, Thomas Petzoldt and R. Woodrow -Solving Di-


fferential Equations in R, The R Journal Vol. 2/2, December 2010.

User's guide EDSA- Electrical distribution and transmossion sys-tem


analyses and design programs- EDSA Macro Corporation, San
Diego, USA, 1998.

Daniel Volovici - Fiabilitate Hardware si Software-Editura Uni-versitatii


Sibiu, 1997.

G. Zbaganu- Metode Matematice ^n Teoria Riscului si Actuariat, Editura


Universitatii Bucuresti, 2004.
286 BIBLIOGRAFIE

www.edumanager.ro/community/documente/initiere in R.

http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/repp-devel
Glosar

Anova, 178 Lanturi Markov, 235, 269


Asimetria, 16 Lattice, 101

Calitate, 119, 158, 181, 190 Matrice, 41, 56, 64, 82, 88, 237
Coe cientul de variatie, 15 Metoda congruentiala, 74
Criteriu de decizie, 186 Metoda Monte Carlo, 153, 257
Cuantile, 24, 142, 153, 226
Obiecte, 39, 47, 53
Data frame, 79
Densitate de probabilitate, 108 Persp, 93
Plan de control atributiv, 195
Exemple, 202, 260 Procese Markov, 252 Puterea
unui test, 174, 177
Fiabilitate, 223, 226, 229, 231,
234, 254 Regiunea critica, 152
Histograma, 98 Teste statistice, 137, 138, 144,
148, 149, 154, 156, 162,
Indexare, 51 Integrale 164, 168, 189
de nite, 67 Integrale
Transformata Laplace, 20, 245
Euleriene, 16
Interval de ^ncredere, 158, 167, Valoarea critica, 145 Veri
175 care indicatori, 183
Ipoteze statistice, 135, 138,
144, 170 Weibull, 129

287

S-ar putea să vă placă și