varias studio probabilidad leyendas hipergeometrica graficos grafico graficas distribuciones distribucion dispersion binomial r plot

studio - Representación de la densidad de probabilidad/función de masa del conjunto de datos en R



plot en r (1)

Sus datos parecen estar lejos de ser discretos para mí. Esperar una probabilidad cuando se trabaja con datos continuos es simplemente un error. density() le da una función de densidad empírica, que se aproxima a la función de densidad verdadera. Para demostrar que es una densidad correcta, calculamos el área bajo la curva:

energy <- rnorm(100) dens <- density(energy) sum(dens$y)*diff(dens$x[1:2]) [1] 1.000952

Dado un error de redondeo. el área debajo de la curva es de hasta uno, y por lo tanto el resultado de density() cumple con los requisitos de un PDF.

Use la opción probability=TRUE de hist o la función de density() (o ambas)

p.ej :

hist(energy,probability=TRUE) lines(density(energy),col="red")

da

Si realmente necesitas una probabilidad para una variable discreta, usas:

x <- sample(letters[1:4],1000,replace=TRUE) prop.table(table(x)) x a b c d 0.244 0.262 0.275 0.219

Edición: ilustración de por qué la count(x)/sum(count(x)) ingenua count(x)/sum(count(x)) no es una solución. De hecho, no es porque los valores de los intervalos sumen uno, lo que hace el área bajo la curva. Para eso, tienes que multiplicar con el ancho de los ''contenedores''. Tome la distribución normal, para la cual podemos calcular el PDF usando dnorm() . El siguiente código construye una distribución normal, calcula la densidad y se compara con la solución ingenua:

x <- sort(rnorm(100,0,0.5)) h <- hist(x,plot=FALSE) dens1 <- h$counts/sum(h$counts) dens2 <- dnorm(x,0,0.5) hist(x,probability=TRUE,breaks="fd",ylim=c(0,1)) lines(h$mids,dens1,col="red") lines(x,dens2,col="darkgreen")

Da :

La función de distribución acumulativa.

En caso de que @Iterator tuviera razón, es bastante fácil construir la función de distribución acumulativa a partir de la densidad. El CDF es la integral del PDF. En el caso de los valores discretos, simplemente la suma de las probabilidades. Para los valores continuos, podemos usar el hecho de que los intervalos para la estimación de la densidad empírica son iguales, y calcular:

cdf <- cumsum(dens$y * diff(dens$x[1:2])) cdf <- cdf / max(cdf) # to correct for the rounding errors plot(dens$x,cdf,type="l")

Da :

Tengo un conjunto de datos y quiero analizar estos datos por función de densidad de probabilidad o función de masa de probabilidad en R, usé la función de densidad pero no me dio una probabilidad.

Mis datos como este:

"step","Time","energy" 1, 22469 , 392.96E-03 2, 22547 , 394.82E-03 3, 22828,400.72E-03 4, 21765, 383.51E-03 5, 21516, 379.85E-03 6, 21453, 379.89E-03 7, 22156, 387.47E-03 8, 21844, 384.09E-03 9 , 21250, 376.14E-03 10, 21703, 380.83E-03

Quiero obtener PDF / PMF para vector de energía, los datos que tomamos en cuenta son discretos por naturaleza, por lo que no tengo un tipo especial para la distribución de los datos.