Documente Academic
Documente Profesional
Documente Cultură
folosind R-Studio
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
CUPRINS 3
Bibliogra e 278
Glosar 283
Lista de guri
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
8
LISTA DE FIGURI 9
1 n
log g = n log xi
=1
12
1.1. MEDII STATISTICE.INDICATORI AI VARIATIEI 13
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.
Dac (li 1; li) putem lua drept valoare a modei repartitiei mijlocul
acestui interval, adic
′ 1
M = (l + l )
0 2 i 1 i
dispersia ∑i
2 1 n
2
= (xi x )
n =1
u n
= u 1 ∑ pi(xi
v n m)
2
t
i=1
1.1. MEDII STATISTICE.INDICATORI AI VARIATIEI 15
1 ∑n r
mer = n nix i
i=1
As = x M0′
16 CAPITOLUL 1. PRELIMINARII
M0′
As = x
Me )
As = 3(x
∫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
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
0
1 F (x1) F (x2); 8 x1 < x2 (x1; x2 2 R) adic functia de repartitie
este monoton crescatoare,
30 F (-1) = 0; F (+1) = 1
40 Fie o variabil aleatoare a carei functie de repartitie este F (x)
are loc:
∫1
23 f (u)du = 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
21
23 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO
>getwd()
>setwd("<Location of...")
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:
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 .
>source("prim.r")
> help.start()
> help(qqplot)
> ?qqplot
> ??qqplot
> help("if")
5889 help.search("binomial")
sau echivalent
> ?binomial
> library(grid)
23 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:
Obtinem rezultatul:
> update.packages()
> install.packages("R.matlab")
> q()
sau echivalent Ctrl+Q sau din meniul File alegem optiunea Quit.
>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)
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 - > .
0 read.table,
1 scan si read.fwf.
Functia read.fwf poate utilizat pentru citirea unor date ^ntr-un sier ^n
format de dimensiune xa:
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).
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
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
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
NULL
> dim(x) <- c(5,3) > x
unde:
- statistica este un vector sau o matrice,
^
2.2. TIPURILE DE DATE IN R. 45
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.
^
5888 as.numeric(as.character(fac
)) [1] 1 10
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
Sistemul de indexare
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
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
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"
[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
Editorul de date
0 x <- 1:4
1 y <- rep(1, 4)
2 z <- x + y
3 z
[1] 2 3 4 5
0 a <- 10
1 z <- a * x
2 z
[1] 10 20 30 40
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:
[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
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
for (i in 1:length(x)) {
y[i] <- 0
...
}
if (x[i] == b) {
y[i] <- 0
...
}
0.0755153 2.1388071
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
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
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
repeat instr
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
^
[1] 22 26 30
0 CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO
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
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
a=matrix(c(1:12),nrow=3)
s=apply(a,MARGIN=1,sum)
>s
[1] 22 26 30
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
f(x; y; z) = x2 + xzy
f<-function(x,y,z){r<-x^2+x*y*z;r}
f(3,5,9)
[1] 144
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
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
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
urmatorii pasi:
@ A
B 3 14 15 8 C
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
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
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)
{
}
}
}
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()
*/
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()
*/
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
>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
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
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
>names(data.frame),
>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 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
^
Rodica 8 9 7
> class(t)
[1] "data.frame"
t2=read.table(file.choose())
t2
t3=read.csv(file.choose())
t3
In rezumat avem:
CAPITOLUL 2. MEDIUL DE PROGRAMARE RSTUDIO
> data()
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
write.table
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
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
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",
^
palette(rainbow(n)),
palette(heat.colors(n)),
palette(terrain.colors(n)),
palette(topo.colors(n)),
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")
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().
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
Ma[Rg =
103
(n)
r
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
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}
Ma[ ] = ; Da[ ] = 2
Densitatea de probabilitate a rezultatelor experimentale este:
- pentru planul cenzurat:
( T )r 1
(T = ) = exp( T ) (r 1)!
( 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 .
curve(dgamma(x,scale=1.5,shape=2,from=0,to=15,
main="Gamma distribution")
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
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
Distributii utilizate
112
4.1. REPARTITII DISCRETE 113
a+b=c
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
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
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
Se obtine rezultatul:
[1] 0.6317984
si gura (4.1).
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) =
require(graphics)
-log(dpois(0:7, lambda = 1)* gamma(1+ 0:7))# = = 1 Ni <-
rpois(50, lambda = 4); + table(factor(Ni,0:max(Ni)))
Ck Cn k
a b
Pn(k; a; b) = Cn
a+b
Functia generatoare a repartitiei hipergeometrice este:
∑k
n
>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
+ 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
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
<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
^
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)
P (jX mj < ) = 2 ( ) 1
dac =3 )
P (jX mj < 3 ) = 2 (3) 1
124 CAPITOLUL 4. DISTRIBUTII UTILIZATE
0:9987 = 0:26%
Dac punem:
= 1 (ln X a)
rezulta:
= ea
D2(X) = e2a+ 2
(e
2
1)
f(x) = 0;
4.2. REPARTITII CONTINUE 125
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
φ(t) = it
Momentele de repartitiei sunt:
1 2 1
M1(X) = ; M2(X) = 2 ; D2(X) = 2
0m x 0 u
m
m 1 (x u )
f(x) = x
( x
) e (4.5)
x0
u = 0; m = 1
>curve(dweibull(x,scale=2.5,shape=1.5),from=0,to=15,
main="Weibull distribution")
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")
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
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:
2
este repartizat cu n grade de libertate.
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)
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
"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
2
Figura 4.6: Repartitia
Capitolul 5
Teste statistice
135
136 CAPITOLUL 5. TESTE STATISTICE
H0 : = 0
H1 : < 0 sau > 0
H0 : = 0
H1 : ≠ 0;
adic media populatiei din care este extras esantionul este egal cu
media populatiei de comparatie, esantionul face parte din popula-tie.
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
m = m0 m > m0 z > z1
m = m0 m < m0 z < z1
n
N 0:10
este
∑A
k k n k
Pa = P (k A) = Cn p (1 p)
k=0
(p) = 1 Pa
^
In pachetul de functii R TeachingDemos exista functia prede nita
z.test, cu prototipul:
unde
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
qnorm(p; :::)
142 CAPITOLUL 5. TESTE STATISTICE
In cazul nostru:
= 0:05:
H1. In cazul nostru, p-valoarea este 0:5044 > 0:05 si deci se accept ipoteza
nula H0
z = z1
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
(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
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
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
de volum n). In pachetul de functii R "stats" exista functia prede nita t.test, cu
prototipul:
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
qt(0.975, 9) [1]
2.262157
iar dac este mai mica dec^at 0:05;atunci respingem ipoteza nula H0 ^n
^
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.
> 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
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
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:
′
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;
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
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
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
p = P (X > Y )
H0 : p = 0:5
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.
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
Conditii de aplicabilitate:
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, ^
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.
c1
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
>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
celor scumpe
HA: durata de viata a bateriilor modi cate este mai mare cu cea a
celor scumpe
Cum p-valoarea este 0.4286 > 0.05 rezulta ca diferenta este nesem-ni
cativ statistic ^ntre cele doua esantioane.
- 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
F = S2 2
F
;n1 1;n2 1
166 CAPITOLUL 5. TESTE STATISTICE
n1 1
=1
∑i
2 1 n2
S2 = (yi y )2; estimatia nedeplasat pentru 2
2
n2 1
=1
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
^
>var.test(x,y,ratio = 1,alternative =
c("two.sided", "less","greater"),
5.2. TESTE STATISTICE PENTRU DOUA ESANTIOANE 167
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
Cum valoarea calculat (5.4473) este mai mare dec^at valoarea te-
oretica (1.990354), atunci se respinge ipoteza nula.
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
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:
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
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
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.
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
mean(teh) [1]
49.7
multi.hist(teh)
error.bars(teh)
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
D
P=N
181
182 CAPITOLUL 6. STUDIUL CALITATII PRODUSELOR
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
∫ ( ) (T )
1 p = f(x)dx + Ts i
Ti
6.2. ESTIMAREA SI VERIFICAREA INDICATORILOR 183
= ∫ x f (x)dx
0
1
2
∫ 2
= 0 (x ) f (x)dx
valorile lor determina proportia de elemente defecte p:
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
eroarea de ordin II, care consta din acceptarea ipotezei H0; cu toate ca
este fals .
= 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
Dac dinpotriva ipoteza este fals si noi decidem ca este adevarata, facem
o eroare de grad II, probabilitatea acestei erori se no-teaz cu :
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
H0 : = 0(ipteza simpla)
abordarea clasic
abordarea bazat pe probabilitate
P (Z > z )
P (Z < z )
= 2P (Z < jz j)
proiectare
fabricatie
6.3. CONTROLUL CALITATII PRODUCTIEI 191
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:
n 0:1N
∑A
=P (d = p = p2)
d=0
30 n 0:1N ; p 10%
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.
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;
5. A numarul de acceptare;
6. R numarul de respingere.
media esantionului,
.
^
4. In tabelul de contingenta teoretic (sau expectat) ecare celula contine
valori mai mari sau egale cu 10.
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
b)
library("latice")
x=2 # 2 condensatori in afara limitelor de toleranta >size=10 #
numarul total de condensatori >prob=0.15# probabilitatea
[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
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
Solutie
a + b = c = 400;
a
= c = 0:08; 1 p
b
= c = 0:92
= 0:08 400 = 32;
= 0:92 400 = 368
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
>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.
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.
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
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:
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
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:
dd<-diff(pexp(HH$breaks,1/700));
chisq.test(HH$density,dd)
>ks.test(xx,"pexp",1/700); One-sample
Kolmogorov-Smirnov test data: xx
2
Figura 6.4: Test Kolmogorov +
6.6. EXEMPLE 219
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)
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
Solutie.
^
[,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
223
224 CAPITOLUL 7. FIABILITATEA SISTEMELOR
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
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.
P (t tF ) = F (7.6)
F (t) = f(t)dt
0
∫t ∫1
R (t) = 1 f(t)dt = f(t)dt
t
Rezulta:
1 dR(t)
z(t) = (7.9)
R(t) dt
∆ni
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
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
∫
M T BF = 0 R(t)dt = ∫0 exp( ∫0 z(u)du)dt
^
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).
∫1
D = (t m)2f(t)dt (7.13)
0
7.2. FIABILITATE PREVIZIONALA 231
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.
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:
zi(t) = i:
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
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.
p p p
6 n1 n2 ::: nn 7
Matricea are proprietatea:
∑n
pi(k) = pj (k 1)pij ; i = 1; :::n
j=1
pij (∆t) = ij +( 1) ij ij
ij sunt simbolurile lui Kronecker, iar ij sunt coe cienti pozitivi sau
nuli numiti intensitati de trecere.
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
P (t + ) = P (t)p( )
Matricea p( ) se numeste matricea stohastic si are urmatoarele
proprietati:
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.
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
^
(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
>
>
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:
Etapa 3
Se rezolva sistemul (7.16) completat cu conditii initiale:
n
∑
Pi(t) = 1
i=1
Pj (0) = Aj (0 sau 1)
si sistemul se reduce
8
<
P (t) p′(0) = 0 ∑n
Pj (t) = 1
:
j=1
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:
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:
unde
P0(0) = 1
248 CAPITOLUL 7. FIABILITATEA SISTEMELOR
Se obtine solutia:
∫t
P0(t) = exp( z(u)du
0
Rezulta:
dP0(t)
= (z(t) + (t))P0(t) + (t)
dt
Rezolvarea ecuatiei pentru cazul general:
∫t
z(t) =
(t) =
7.2. FIABILITATE PREVIZIONALA 249
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
dP0(t)
= SP0(t)
Rezulta:
t
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
= 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
4.
Stim : ∫
P (A) = (P (A)=X = x)dF (x)
R
f(t; x; ; y) = ∫
f(t; x; s; z)f(s; z; ; y)dz
R
markovchainFit,predict,rmarkovchain
selectia sistemului;
^
In general se folosesc urmatoarele metode:
metoda experimentala;
metoda regresiei;
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
∫
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
Testele gra ce de abilitate ^n cazul celor trei legi de distributie mai des
utilizate, folosind asa-zisele h^artii de probabilitate;
t1 t2 ::: tr
2
Testul care poate aplicat pentru veri carea concordantei oricarei repartitii
empirice cu repartitia teoretica corespunzatoare, far a cunoaste ^nsa
valorile repartitiei teoretice.
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
>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
[1] 0.9500672
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
∫ 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
x<-c(580,595,618,640,665,690,720,780,821,864,968,1003)
264 CAPITOLUL 7. FIABILITATEA SISTEMELOR
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")
>source('~/R/Kolmogorov.R')
data: x and y
D = 0.58333, p-value = 0.03144
alternative hypothesis: two-sided
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
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)
(a) (b)
(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
(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
{
(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
unde
1
m2 = 2
este durata medie de re^noire a sistemului.
(2 + ) ()
2 2 2
A(t) = ( + ) + ( + ) exp( ( + )t) + ( + ) exp( ( + )t)
microbenchmark, mcmc,
markovchainFit,predict,rmarkovchain.
Capitolul 8
Probleme propuse
105 232 290 293 295 325 368 388 403 405 422 428:
278
279
^
In ipoteza unui model exponential calculati:
b)rata de defectare
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
16:10; 19:18; 19:25; 22:44; 22:58; 23:20; 24:58; 26:50; 27:22; 30:26:
283
284 BIBLIOGRAFIE
www.edumanager.ro/community/documente/initiere in R.
http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/repp-devel
Glosar
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