Documente Academic
Documente Profesional
Documente Cultură
DOCUMENTATIE
I = CNK(f)
#2) Verificarea dacă o funcție introdusă de utilizator este densitate de probabilitate.
Deoarece nu am putut construi vectori cu un numar infinit de elemente, am verificat daca functia este pozitiva in
multimea (-500;500), cu pasul de 0.1, astfel am putut prin aproximatie sa vedem daca functia este pozitiva.
#3) Crearea unui obiect de tip variabilă aleatoare continuă pornind de la o densitate de probabilitate introdusă de
utilizator. Funcția trebuie să aibă opțiunea pentru variabile aleatoare unidimensionale și respectiv bidimensionale.
Cu ajutorul functiei VAC, primim o functie care indeplineste criterile unei functii de densitate, iar daca acest
criteriu este indeplinit, setam clasa obiectului returnat “VAC”, continand atributul “pdf” acesta reprezentand
functia de distributie.
VAC <- function() { #variabila aleatorie continua
if(!probDens(functiePD))
stop("Functia nu este o densitate de probabilitate")
x = functiePD
attr(x,"pdf") = functiePD
class(x)="VAC"
return(x)
}
#4)
Reprezentarea grafică a densității și a funcției de repartiție pentru diferite valori ale
parametrilor repartiției. Ȋn cazul ȋn care funcția de repartiție nu este dată ȋntr-o formă
explicită(ex. repartiția normală) se acceptă reprezentarea grafică a unei aproximări a
acesteia.
#5) Calculul mediei, dispersiei și a momentelor inițiale și centrate pȃnă la ordinul 4(dacă
există). Atunci cȃnd unul dintre momente nu există, se va afișa un mesaj
corespunzător către utilizator.
medieFPD <- function(functiePD) { # intoarce valoare medie a distributiei
if(class(functiePD)!="VAC")
stop("functiePD nu este variabila aleatorie continua")
densFunctiePD <- attr(functiePD,"pdf")
integrate(Vectorize(function(functiePD){functiePD*densFunctiePD(functiePD)}), -Inf, Inf)$value
}
variatie<-function(functiePD) {
if(class(functiePD)!="VAC")
stop("functiePD nu este variabila aleatorie continua")
densFunctiePD <- attr(functiePD,"pdf")
var <- function(functiePD) {
(functiePD^2)*densFunctiePD(functiePD)
}
integrate(Vectorize(var), -Inf, Inf)$value - (medieFPD(functiePD)^2)
}
#6) Calculul mediei și dispersiei unei variabile aleatoare g(X), unde X are o repartiție
continuă cunoscută iar g este o funcție continuă precizată de utilizator.
#7) Crearea unei funcții P care permite calculul diferitelor tipuri de probabilități asociate
unei variabile aleatoare continue(similar funcției P din pachetul discreteRV)
probVar<-function(functiePD,a,b){
if(!class(functiePD)=="VAC")
stop("functiePD nu este variabila aleatorie continua")
densFunctiePD = attr(functiePD, "pdf")
integrate(Vectorize(densFunctiePD), a, b)
}
pentru a calcula aceasta probabiblitate, intergram functia de distributie de probabiblitati pe intervalul cautat (a,b)
#12)Construirea sumei și diferenței a două variabile aleatoare continue
independente(folosiți formula de convoluție)
sumaVAC = function(functiePD, Y) {
if(!class(functiePD)=="VAC")
stop("functiePD nu este variabila aleatorie continua")
if(!class(Y)=="VAC")
stop("Y nu este variabila aleatorie continua")
densFunctiePD = attr(functiePD, "pdf")
densY = attr(Y, "pdf")
densityOfZ = function(functiePD) {integrate(Vectorize(function(t) {densFunctiePD(functiePD-t) * densY(t)}),
-Inf, Inf)}
Z = VAC(densFunctiePD)
return(Z)
}
difVAC = function(functiePD, Y) {
if(!class(functiePD)=="VAC")
stop("functiePD nu este variabila aleatorie continua")
if(!class(Y)=="VAC")
stop("Y nu este variabila aleatorie continua")
densY = attr(Y, "pdf")
densNegY = function(functiePD) {densY(-functiePD)}
negY = VAC(densNegY)
return(sumaVAC(functiePD, negY))
}
#Aflam suma/diferenta celor doua variabile aleatoare continue (VAC) cu ajutorul functiei definite
sumaVAC/difVAC, verificand daca variabilele sunt aleatorii si continue
Pachete folosite si surse de inspiratie
https://en.wikipedia.org/wiki/Normalizing_constant#Definition
https://en.wikipedia.org/wiki/Variance#Absolutely_continuous_random_variable
Instructions for Creating Your Own R Package| In Song Kim, Phil Martin, Nina McMurry, Andy
Halterman - March 18, 2018
https://www.r-project.org/nosvn/pandoc/devtools.html
https://en.wikipedia.org/wiki/Convolution_of_probability_distributions
integrate function | R Documentation
https://rstudio-pubs-static.s3.amazonaws.com/100906_8e3a32dd11c14b839468db756cee7400.html
rpackage_instructions.pdf (mit.edu)