Code
library(kableExtra)
library(tidyverse)
library(ggplot2)
library(MASS)
library(DiagrammeR)
library(igraph)library(kableExtra)
library(tidyverse)
library(ggplot2)
library(MASS)
library(DiagrammeR)
library(igraph)“Probabilidad es el lenguaje matemático para cuantificar incertidumbre.” -Wasserman
La probabilidad es una medida de la incertidumbre de que ocurra un evento. Su valor es un número entre 0 y 1.
donde un evento imposible corresponde a “0” y uno seguro corresponde a “1”.
Desde un punto de vista puramente matemático, la probabilidad se define como una funcion de eventos. Los eventos se representan como conjuntos, y suponemos que la función de probabilidad satisface las reglas básicas de proporcion. Antes de definir estas reglas consideremos la representación de los eventos como subconjuntos de un espacio de resultados Ω.
Es una funcion que asocia a cada resultado del espacio muestral un numero real.
NOTACION:
1. X = Variable aleatoria (v.a)
2. x = Valor de la v.a
grViz("
digraph {
node [shape = rectangle]
Variable; Discreta; Continua;
Variable -> Discreta;
Variable -> Continua;
}")una variable aleatoria discreta es una variable que toma valores discretos y finitos o infinitos numerables. Es decir, estos valores no pueden ser continuos y deben ser contables.
La probabilidad de que la variable aleatoria tome un valor específico se puede calcular a través de una función de probabilidad discreta.
Ejemplo: X= “número de personas que vallan en un bus”
x= 0,1,2,3,4,5…45.
una variable aleatoria continua es una variable que puede tomar cualquier valor dentro de un rango continuo de valores. A diferencia de las variables aleatorias discretas, los valores posibles de una variable aleatoria continua no son contables y pueden tomar una infinidad de valores en un intervalo determinado.
La probabilidad de que la variable aleatoria tome un valor específico se puede calcular utilizando una función de densidad de probabilidad continua.
Ejemplo: X= “peso de una persona”.
x= 60Kg, 60,1kg, 60,2kg…, 120kg.
es una función f(x) que asigna pesos probabilisticos a cada uno de los valores de la variable aleatoria estando definida sobre el conjunto de todos de los posibles valores de la variable.
Para la variable aleatoria discreta, esta funcion f(x) tambien recibe el nombre de función masa o funcion de cuantia y cumple con las siguentes propiedades:
\[1.\text{ }f\left( x \right)\ge 0\]
\[2.\sum\limits_{x}{f\left(x \right)=1}\]
\[3.P\left(x \right)=a\]
Para la variable aleatoria continua f(x), tambien recibe el nombre de función de densidad y cumple con las siguientes propiedades
\[1.\text{ }f\left( x \right)\ge 0\]
\[2.\int\limits_{-\infty}^{+\infty }{f\left( x \right)dx=1}\]
\[3.P\left(a<x<b \right)=\int\limits_{a}^{b}{f\left( x \right)dx}\]
Es una función matemática que se emplea para saber la probabilidad de que una variable aleatoria tome valores más pequeños o iguales que un número en concreto, sea cual sea su distribución
\[F\left(x \right)=f\left( X\le x \right)\]
\[F\left( x \right)=f\left( x\le a \right)\]
\[\sum\limits_{t\le x}{f\left( t \right)}\]
\[F\left(x \right)=f\left( X\le x \right)=\int\limits_{-\infty }^{x}{f\left( t\right)dt}\]
\[E\left[ x \right]=\mu =\sum\limits_{x}{x}f(x)\]
\[a.\text{ }{{\sigma }^{2}}=V\left[ x \right]=\sum\limits_{x}{{{\left( x-\mu \right)}^{2}}f\left( x \right)}\]
\[b.\text{ }{{\sigma }^{2}}=V\left[ x \right]=E\left[ {{x}^{2}} \right]-{{\left( E\left[ x \right] \right)}^{2}}\]
\[Donde=E\left[ {{x}^{2}} \right]=\sum\limits_{x}{{{x}^{2}}f\left( x \right)}\]
\[\sigma=\sqrt{V\left[ x \right]}\]
\[E\left[x \right]=\mu =\int\limits_{-\infty }^{+\infty }{x\text{ }f\left( x \right)dx}\]
\[a.\text{}{{\sigma }^{2}}=V\left[ x \right]=\int\limits_{-\infty }^{+\infty }{{{\left( x-\mu \right)}^{2}}f\left( x \right)dx}\]
\[b.\text{}{{\sigma }^{2}}=V\left[ x \right]=E\left[ {{x}^{2}} \right]-{{\left( E\left[ x \right] \right)}^{2}}\]
\[Donde=E\left[{{x}^{2}} \right]=\int\limits_{-\infty }^{+\infty }{{{x}^{2}}f\left( x \right)dx}\]
\[\sigma=\sqrt{V\left[ x \right]}\]
Sean x y y variables aleatorias y a,b constantes:
\(1.\text{ }E\left[ ax \right]=aE\left[ x \right] \\\)
\(2.\text{ }E\left[ x+a \right]=E\left[ x \right]+a \\\)
\(3.\text{ }E\left[ x+y \right]=E\left[ x \right]+E\left[ y \right] \\\)
\(4.\text{ }E\left[ ax+by \right]=aE\left[ x \right]+bE\left[ y \right] \\\)
\(1.\text{ }V\left[ X \right]\ge 0 \\\)
\(2.\text{ }V\left[ a \right]=0 \\\)
\(3.\text{ }V\left[ X+a \right]=V\left[ x \right] \\\)
\(4.\text{ }V\left[ aX \right]={{a}^{2}}V\left[ X \right] \\\)
\(5.\text{ }\left[ X+Y \right]=V\left[ X \right]+V\left[ Y \right]+2Cov\left[ x,Y \right] \\\)
\(Donde=Cov\left[ X,Y \right]=E\left[ X.Y \right]-E\left[ x \right].E\left[ Y \right] \\\)
Un experimento consiste en lanzar tres veces una moneda. Sea la variable aleatoria: X =“número de caras que se obtienen”. Se pide:
Espacio muestral incluido el numero de caras en cada combinacion
\(\Omega =\left\{ \begin{align} & CCC,CCS,CSC,CSS \\ & SCC,SCS,SSC,SSS \\ \end{align} \right\}\)
Ademas podemos verlo como un diagrama de arbol:
Para verlo de una forma mas organizada:
library(kableExtra)
# Generar los posibles resultados del lanzamiento de 3 monedas
resultados <- expand.grid(Moneda_1 = c("Cara", "Sello"),
Moneda_2 = c("Cara", "Sello"),
Moneda_3 = c("Cara", "Sello"))
# Calcular la cantidad de caras en cada resultado
resultados$Cantidad_de_caras <- apply(resultados, 1, function(x) sum(x == "Cara"))
# Mostrar la tabla con kbl()
kbl(resultados, caption = "Resultados del lanzamiento de 3 monedas") %>%
kable_styling(bootstrap_options = "striped")| Moneda_1 | Moneda_2 | Moneda_3 | Cantidad_de_caras |
|---|---|---|---|
| Cara | Cara | Cara | 3 |
| Sello | Cara | Cara | 2 |
| Cara | Sello | Cara | 2 |
| Sello | Sello | Cara | 1 |
| Cara | Cara | Sello | 2 |
| Sello | Cara | Sello | 1 |
| Cara | Sello | Sello | 1 |
| Sello | Sello | Sello | 0 |
Aca se presenta acontinuacion los valores a partir del numero de caras.
\[\begin{align} & X(CCC)=3 \\ & X(CCS)=X(CSC)=X(SCC)=2 \\ & X(CSS)=X(SCS)=X(SSC)=1 \\ & X(SSS)=0 \\ \end{align}\]
por siguiente mostraremos los momentos que ocurren.
\[\begin{align} & E\left[ {{x}^{2}} \right]=\sum{{{x}^{2}}f(x)=3} \\ & E\left[ x \right]=\mu =\sum\limits_{x}{x}f(x)=\frac{3}{2} \\ & V\left[ x \right]={{\sigma }^{2}}={{\sum\limits_{x}{{{(x-\mu )}^{2}}=3-\left( \frac{3}{2} \right)}}^{2}}=3-\frac{9}{4}=\frac{3}{4} \\ & \sigma =\sqrt{\frac{3}{4}=}\frac{\sqrt{3}}{2} \\ \end{align}\]
# Cargar la paqueter�a kableExtra
library(kableExtra)
# Crear la tabla de distribuci�n de probabilidad de X
X <- c(0, 1, 2, 3)
fx <- c(0.125, 0.375, 0.375, 0.125)
Fx <- cumsum(fx)
X_por_fx <- X * fx
X_cuadrado_por_fx <- X^2 * fx
tabla <- data.frame(X,fx, Fx, X_por_fx, X_cuadrado_por_fx)
# Agregar formato a la tabla
tabla_kable <- kable(tabla, digits = 3) %>%
kable_styling(bootstrap_options = "striped", full_width = FALSE)
# Imprimir la tabla
tabla_kable| X | fx | Fx | X_por_fx | X_cuadrado_por_fx |
|---|---|---|---|---|
| 0 | 0.125 | 0.125 | 0.000 | 0.000 |
| 1 | 0.375 | 0.500 | 0.375 | 0.375 |
| 2 | 0.375 | 0.875 | 0.750 | 1.500 |
| 3 | 0.125 | 1.000 | 0.375 | 1.125 |
df <- data.frame(X = 0:3, Frecuencia = c(0.125, 0.375, 0.375, 0.125))
ggplot(df, aes(x = X, y = Frecuencia)) +
geom_segment(aes(x = X, y = 0, xend = X, yend = Frecuencia), color = "blue", size = 1) +
geom_text(aes(x = X, y = Frecuencia, label = Frecuencia), vjust = -0.5, color = "blue", size = 4) +
scale_y_continuous(limits = c(0, max(df$Frecuencia) * 1.2), expand = c(0, 0.1)) +
labs(title = "Diagrama de Bastones", x = "Valores de X", y = "Frecuencia")# Crear un data frame con los datos
df <- data.frame(X = 0:3, Frecuencia = c(0.125, 0.375, 0.375, 0.125))
# Configurar la ventana gr???fica
par(mar = c(5, 4, 4, 2) + 0.1)
plot(df$X, df$Frecuencia, type = "h", lwd = 10, col = "blue", ylim = c(0, max(df$Frecuencia) * 1.2),
xlab = "Valores de X", ylab = "Frecuencia", main = "Diagrama de Bastones")
# Agregar etiquetas de frecuencia
text(df$X, df$Frecuencia, labels = df$Frecuencia, pos = 3, col = "blue")se presenta la funcion de distribucion en sus respectivos intervalos a graficas.
\[F\left( x \right)\left\{ \begin{align} & o\text{ }Para\text{ }x\text{ 0} \\ & \frac{1}{8}\text{ }Para\text{ }0\le x<1 \\ & \frac{1}{2}\text{ }Para\text{ }1\le x<2 \\ & \frac{7}{8}\text{ }Para\text{ }2\le x<3 \\ & 1\text{ }Para\text{ }x\ge 3 \\ \end{align} \right\}\]
| \[{{x}^{2}}f(x)\] | \[x\] | \[f(x)=P(x)\] | \[F(x)\] | \[x\text{ }f(x)\] | \[{{\left( x-\mu \right)}^{2}}f(x)\] |
|---|---|---|---|---|---|
| \[0\] | \[0\] | \[\frac{1}{8}\] | \[\frac{1}{8}\] | \[0\] | \[\frac{9}{32}\] |
| \[\frac{3}{8}\] | \[1\] | \[\frac{3}{8}\] | \[\frac{1}{2}\] | \[\frac{3}{8}\] | \[\frac{3}{32}\] |
| \[\frac{12}{8}\] | \[2\] | \[\frac{1}{8}\] | \[\frac{7}{8}\] | \[\frac{6}{8}\] | \[\frac{9}{32}\] |
| \[\frac{9}{8}\] | \[3\] | \[\frac{1}{8}\] | \[1\] | \[\frac{3}{8}\] | \[\frac{9}{32}\] |
| \[\frac{24}{8}=3\] | \[\sum{{}}\] | \[1\] | \[\frac{1}{8}\] | \[\frac{3}{4}\] |
library(ggplot2)
# Crear el gr�fico escalonado con mejoras
ggplot(tabla, aes(x = X, y = Fx)) +
geom_step(color = "blue", size = 1.5) +
labs(title = "Diagrama Escalonado",
x = "Valores de X",
y = "F(x)") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5),
axis.title = element_text(size = 12),
axis.text = element_text(size = 10)) +
scale_y_continuous(expand = expansion(mult = c(0, 0.1))) +
scale_x_continuous(breaks = X, expand = expansion(mult = c(0.1, 0))) +
coord_cartesian(clip = "off")library(ggplot2)
# Crear el gr�fico escalonado
ggplot(tabla, aes(x = X, y = Fx)) +
geom_step(color = "blue", size = 1.5) +
labs(title = "Diagrama Escalonado", x = "Valores de X", y = "F(x)")La variable X =“numero de centímetros a que un dardo queda del centro de la diana” al ser tirado por una persona tiene como función de densidad:
\[f(x)=\left\{ \begin{align} & k\text{ }0<x<10 \\ & 0\text{ }en\text{ }otros\text{ }casos \\ \end{align} \right\}\]
Se pide:
a) Hallar k para que f(x) sea funcionn de densidad. Representarla
b) Hallar la funcion de distribucion. Representarla
c) Media, varianza y desviacion ti�pica
d) P(X 1) e) Probabilidad de acertar en la diana
a) Para que f(x) sea función de densidad debe verificar:
\[1=\int\limits_{-\infty }^{+\infty }{f(x)}dx=\int\limits_{-\infty }^{0}{f(x)}dx+\int\limits_{0}^{10}{f(x)dx}+\int\limits_{10}^{+\infty }{f(x)dx=\int\limits_{0}^{10}{f(x)dx}}\]
la primera y tercera integral son cero al ser f(x) = 0 en esos intervalos
\[1=\int\limits_{0}^{10}{k}dx=k\int\limits_{0}^{10}{{}}dx=10\left[ x \right]_{0}^{10}=10k\to k=\frac{1}{10}\]
\[En\text{ }consecuencia,\text{ }f(x)=\left\{ \begin{align} & \frac{1}{10}\text{ }0<x<10 \\ & 0\text{ }en\text{ }otros\text{ }casos \\ \end{align} \right\}\]
b) La función de distribución se define:
\[F\left( x \right)=\int\limits_{-\infty }^{x}{f(t)dt}\]
\(\begin{align} & x<0\text{ F}\left( x \right)=\int\limits_{{}}^{{}}{f\left( t \right)dt}=0 \\ & 0\le x\le 10\text{ F}\left( x \right)=\int\limits_{-\infty }^{x}{f\left( t \right)dt}=\int\limits_{-\infty }^{0}{f\left( t \right)dt}+\int\limits_{0}^{x}{f\left( t \right)dt}=\int\limits_{0}^{x}{\frac{1}{10}dt}=\frac{x}{10} \\ & x>0\text{ F}\left( x \right)=\int\limits_{-\infty }^{x}{f\left( t \right)dt}=\int\limits_{-\infty }^{0}{f\left( t \right)dt}+\int\limits_{0}^{10}{f\left( t \right)dt}=\int\limits_{10}^{x}{f\left( t \right)dt}=\int\limits_{0}^{10}{\frac{1}{10}dt}=1 \\ \end{align}\)
En consecuencia:
\(F\left( x \right)\left\{ \begin{align} & 0\text{ }x<0 \\ & \frac{x}{10}\text{ 0}\le x\le 10 \\ & 1\text{ }x>10 \\ \end{align} \right\}\)
c) Media
\({{a}_{1}}={{\mu }_{x}}=E\left( X \right)=\int\limits_{-\infty }^{+\infty }{x\text{ }f\left( x \right)dx}=\int\limits_{0}^{10}{x\frac{1}{10}dx}=\frac{1}{10}\int\limits_{0}^{10}{x\text{ }dx=\frac{1}{10}\left[ \frac{{{x}^{2}}}{2} \right]_{0}^{10}=5cm}\)
Varianza: \({{\sigma }^{2}}_{x}={{a}_{2}}-{{a}^{2}}_{1}\)
\({{a}_{2}}=E\left( {{X}^{2}} \right)=\int\limits_{-\infty }^{+\infty }{{{x}^{2}}\text{ }f\left( x \right)dx}=\int\limits_{0}^{10}{{{x}^{2}}\frac{1}{10}dx}=\frac{1}{10}\int\limits_{0}^{10}{{{x}^{2}}\text{ }dx=\frac{1}{10}\left[ \frac{{{x}^{3}}}{3} \right]_{0}^{10}=\frac{1}{10}\left[ \frac{1000}{3}-0 \right]}=\frac{100}{3}\)
\({{\sigma }^{2}}_{x}={{a}_{2}}-{{a}^{2}}_{1}=\frac{100}{3}-{{5}^{2}}=\frac{25}{3}c{{m}^{2}}\)
Desviacion tipica: \({{\sigma }_{x}}=\sqrt{\frac{25}{3}}=2,9cm\)
d) \(P\left( X\le 1 \right)=F(1)=\frac{1}{10}\)
\(o\text{ }tambien,\text{ }P(X\le 1)=\int\limits_{0}^{1}{\frac{1}{10}}dx=\frac{1}{10}\int\limits_{0}^{1}{dx=\frac{1}{10}\left[ x \right]_{0}^{1}=\frac{1}{10}}\)
e) Probabilidad de acertar en la diana: \(P(X=0)=0\) Por ser una variable continua
\(P(X=0)=\int\limits_{0}^{0}{f(x)}dx=\int\limits_{0}^{0}{\frac{1}{10}dx=\frac{1}{10}\int\limits_{0}^{0}{dx}=0}\)
Podemos hacer esto usando la distribucion binomial, ya que estamos interesados en el numero de exitos en un numero fijo de ensayos independientes, donde cada ensayo tiene la misma probabilidad de exito.
\[P(X=0)=\left(\frac{8}{10} \cdot \frac{7}{10} \cdot \frac{6}{10} \cdot \frac{5}{10}\right)=0.168\]
Por lo tanto la probabilidad de que 0 sabores sean exitosos es del 16,8%.
\[\begin{align*} P(X=1) &= \left(\frac{2}{10} \cdot \frac{7}{10} \cdot \frac{6}{10} \cdot \frac{5}{10}\right) \\ &\quad + \left(\frac{8}{10} \cdot \frac{3}{10} \cdot \frac{6}{10} \cdot \frac{5}{10}\right) \\ &\quad + \left(\frac{8}{10} \cdot \frac{7}{10} \cdot \frac{4}{10} \cdot \frac{5}{10}\right) \\ &\quad + \left(\frac{8}{10} \cdot \frac{7}{10} \cdot \frac{6}{10} \cdot \frac{5}{10}\right) \\ &= 0.394 \end{align*}\]
Por lo tanto la probabilidad de que 1 sabores sean exitosos es del 39,4%.
\[\begin{align*} P(X=2) &= \left(\frac{2}{10} \cdot \frac{3}{10} \cdot \frac{6}{10} \cdot \frac{5}{10}\right) \\ &\quad + \left(\frac{2}{10} \cdot \frac{7}{10} \cdot \frac{4}{10} \cdot \frac{5}{10}\right) \\ &\quad + \left(\frac{2}{10} \cdot \frac{7}{10} \cdot \frac{6}{10} \cdot \frac{5}{10}\right) \\ &\quad + \left(\frac{8}{10} \cdot \frac{3}{10} \cdot \frac{4}{10} \cdot \frac{5}{10}\right) \\ &\quad + \left(\frac{8}{10} \cdot \frac{3}{10} \cdot \frac{6}{10} \cdot \frac{5}{10}\right) \\ &\quad + \left(\frac{8}{10} \cdot \frac{7}{10} \cdot \frac{4}{10} \cdot \frac{5}{10}\right) \\ &= 0.32 \end{align*}\]
Por lo tanto la probabilidad de que 2 sabores sean exitosos es del 32%.
\[\begin{align*} P(X=3)&=\left(\frac{2}{10} \cdot \frac{3}{10} \cdot \frac{4}{10} \cdot \frac{5}{10}\right) \\ &+\left(\frac{2}{10} \cdot \frac{3}{10} \cdot \frac{6}{10} \cdot \frac{5}{10}\right) \\ &+\left(\frac{2}{10} \cdot \frac{7}{10} \cdot \frac{4}{10} \cdot \frac{5}{10}\right) \\ &+\left(\frac{8}{10} \cdot \frac{3}{10} \cdot \frac{4}{10} \cdot \frac{5}{10}\right) \\ &=0.106 \end{align*}\]
Por lo tanto la probabilidad de que 3 sabores sean exitosos es del 10,6%.
\[P(X=4)=\left(\frac{2}{10} \cdot \frac{3}{9} \cdot \frac{4}{8} \cdot \frac{1}{2}\right)=0.012\]
Por lo tanto la probabilidad 1,2%.
df <- data.frame(X = 0:4, P_X = c(0.168, 0.394, 0.32, 0.106, 0.012))
# Cambiar los nombres de las columnas
colnames(df) <- c("valores de X", "fx")
# Agregar una columna de probabilidades acumuladas
df$`FX` <- cumsum(df$fx)
kbl(df, caption = "Tabla de distribucion de probabilidades", align = "c") %>%
kable_styling(bootstrap_options = "striped", full_width = F) %>%
column_spec(1, bold = T)| valores de X | fx | FX |
|---|---|---|
| 0 | 0.168 | 0.168 |
| 1 | 0.394 | 0.562 |
| 2 | 0.320 | 0.882 |
| 3 | 0.106 | 0.988 |
| 4 | 0.012 | 1.000 |
# Instalar y cargar la paqueter�a flextable
library(flextable)
# Crear un data frame con los datos de ejemplo
df <- data.frame(X = 0:4, P_X = c(0.168, 0.394, 0.32, 0.106, 0.012))
# Cambiar los nombres de las columnas
colnames(df) <- c("valores de X", "fx")
# Agregar una columna de probabilidades acumuladas
df$`FX` <- cumsum(df$fx)
# Crear la tabla con flextable
ft <- flextable(df) %>%
set_header_labels("valores de X" = "Valores de X", "fx" = "f(X)", "FX" = "F( x)") %>%
bold(part = "header") %>%
autofit()
# Imprimir la tabla
ftValores de X | f(X) | F( x) |
|---|---|---|
0 | 0.168 | 0.168 |
1 | 0.394 | 0.562 |
2 | 0.320 | 0.882 |
3 | 0.106 | 0.988 |
4 | 0.012 | 1.000 |
Realizada la tabla de distribucion de probabilidades, seguimos con sus respectivos diagramas.
df <- data.frame(X = 0:4, Frecuencia = c(0.168, 0.394, 0.32, 0.106, 0.012))
ggplot(df, aes(x = X, y = Frecuencia)) +
geom_segment(aes(x = X, y = 0, xend = X, yend = Frecuencia), color = "blue", size = 1) +
geom_text(aes(x = X, y = Frecuencia, label = Frecuencia), vjust = -0.5, color = "blue", size = 4) +
scale_y_continuous(limits = c(0, max(df$Frecuencia) * 1.2), expand = c(0, 0.1)) +
labs(title = "Diagrama de Bastones", x = "Valores de X", y = "Frecuencia")df <- data.frame(X = 0:4, Frecuencia = c(0.168, 0.394, 0.32, 0.106, 0.012))
# Configurar la ventana gr�fica
par(mar = c(5, 4, 4, 2) + 0.1)
plot(df$X, df$Frecuencia, type = "h", lwd = 10, col = "blue", ylim = c(0, max(df$Frecuencia) * 1.2),
xlab = "Valores de X", ylab = "Frecuencia", main = "Diagrama de Bastones")
# Agregar etiquetas de frecuencia
text(df$X, df$Frecuencia, labels = df$Frecuencia, pos = 3, col = "blue")# Cargar la librer�a ggplot2
library(ggplot2)
# Crear un data frame con los datos de ejemplo
df <- data.frame(X = 0:4, Frecuencia = c(0.168, 0.394, 0.320, 0.106, 0.012))
# Calcular los valores acumulados de la frecuencia
df$FrecAcum <- cumsum(df$Frecuencia)
# Crear el diagrama escalonado con ggplot2
ggplot(df, aes(x = X, y = FrecAcum)) +
geom_step(direction = "hv", color = "blue", size = 1.5) +
scale_x_continuous(breaks = 0:4) +
labs(title = "Diagrama Escalonado", x = "Valores de X", y = "Fx")df <- data.frame(X = 0:4, Frecuencia = c(0.168, 0.562, 0.882, 0.988, 1))
# Crear el diagrama escalonado con la paqueter�a base de R
plot(df$X, df$Frecuencia, type = "s", col = "blue", lwd = 2, xlab = "Valores de X", ylab = "Frecuencia", main = "Diagrama Escalonado")
# Agregar l�neas gu�a y etiquetas a los ejes
abline(h = seq(0, 1, 0.1), v = seq(0, 4, 1), col = "lightgray")
axis(1, at = 0:4)
axis(2, at = seq(0, 1, 0.1))(2023); Wickham et al. (2019); Zhu (2021); Csardi and Nepusz (2006); Venables and Ripley (2002); Iannone (2022); Wickham (2016)[]