RChallenge

Modelos de Supervivencia y de Series de Tiempo

EJERCICIOS

Alumna: Odilia Karime Toledo Serna.

Fecha de entrega: 10/10/2020

1.PARADOJA DEL CUMPLEAÑOS

total <- 1
n <- 119
data <- NULL

##Ciclo for (Probabilidad )
for(i in 1:n){
  total=total*((365-i+1)/365) ##Casos favorables/Casos totales 
  fila<- data.frame(i, 1-total)
  data <- rbind(data, fila)
  if (i==n) {
  print(data) 
  }
}

2. Relación Fibonacci-Eigen (vectores/valores)

\[F_{n}= F_{n-1}+F_{n-2}\] de otra forma se puede ver como:

\[\begin{pmatrix}\ F_{n} \\ F_{n-1} \end{pmatrix} = \begin{pmatrix}\ 1 & \ 1\\ \ 1 & \ 0 \end{pmatrix}\cdot\left (\begin{array}{cc} F_{n-1} \\ F_{n-2} \end{array}\right )\]

fib <- function(n) {

  if (n == 1) {
    
      return(0)
  }
  else if(n == 2) {

return(1)
  }
  else if(n > 2) {
      return(fib(n - 1) + fib(n - 2))
  }
  
}
#Apliquemos la función fib para generar el número que se encuentra en "()"
#de la secuencia de Fibonnacci:
fib(20)
## [1] 4181
r_oro <- function(n) {
  
  if (n <= 4) {
    
    return('Utiliza un número mayor a 4')
  }
  
  else (return(fib(n)/fib(n-1)))
  
}
r_oro(20)
## [1] 1.618034

3. ITERACIONES

En la mayoría de cursos que haz visto se ha tenido una gran cantidad de teoría sin ver algoritmos que te permitan comprobar dichas cosas. Vamos a arreglar un poco esto y crea alguna función o método iterativo para aproximar lo siguiente. En cada uno de los casos da un ejemplo para comprobar el funcionamiento de tu solución.

  • Derivada. Para comprobar determina si la derivada de \(2x^2\) en algún punto se aproxima con tu función.

  • Integral. Puedes usar funciones positivas para comprobar tu función utilizando la interpretación de la integral.

  • Perímetro de una circunferencia. Investiga un poco sobre la relación que existe entre el número de lados de un polígono regular y su perímetro, así como la longitud de los lados de un polígono inscrito en una circunferencia de radio r. Con esto tienes las bases para crear una función, que de acuerdo a un numero de lados n se vaya acercando al perímetro de una circunferencia. Al final puedes comprobar tus resultados con la formula ya conocida.

4. PROCESAMIENTO DE TEXTOS

library(stringr)

options(max.print = .Machine$integer.max)
novela <- 'Romeo_and_Juliet.txt'
  • Cantidad de letras.

## [1] 105834
  • Cantidad de vocales.

## [1] 40531
  • Cantidad de espacios.

## [1] 21487
  • Porcentaje que representa cada letra en el texto.

  • a
## [1] 7.785778
  • b
## [1] 1.620462
  • c
## [1] 2.158097
  • d
## [1] 3.717142
  • e
## [1] 12.11142
  • f
## [1] 1.918098
  • g
## [1] 1.736682
  • h
## [1] 6.412873
  • i
## [1] 6.528148
  • j
## [1] 0.2617306
  • k
## [1] 0.7851919
  • l
## [1] 4.700758
  • m
## [1] 3.172893
  • n
## [1] 6.111458
  • o
## [1] 8.319633
  • p
## [1] 1.465503
  • q
## [1] 0.06141694
  • r
## [1] 6.130355
  • s
## [1] 6.222008
  • t
## [1] 9.1738
  • u
## [1] 3.551789
  • v
## [1] 1.047867
  • w
## [1] 2.380142
  • x
## [1] 0.1181095
  • y
## [1] 2.47841
  • z
## [1] 0.03023603

5. TEOREMA CENTRAL DEL LÍMITE

Defino una función el cual me genera datos ya sea el parametro.

  • Binomial
  • Exponencial
#  "binom" -> Binomial de parámetros n=100 y p=0.4
#  "exp" -> Exponencial de parámetro lambda=100
genera=function(dist,tamMuestra){
  if (dist=="binom"){
    return(rbinom(tamMuestra,100,0.4))    
  } else {
    return(rexp(tamMuestra,100))
  }
}

Función con parámetros Binomial

tamMuestra=3500
numMuestras=6
dist="binom" 

mat=matrix(nrow = numMuestras, ncol = tamMuestra)
# Matriz para almacenar las muestras generadas 
mediax=vector() 
#Vector para almacenar la media de cada muestra generada
 
for (i in 1:numMuestras){
  x=genera(dist,tamMuestra)
  mat[i,]= x
  mediax[i]=mean(x)
}
## [1] 39.94971 39.95286 39.98886 40.00686 40.08371 39.99143

Función con parámetros Exponencial

tamMuestra=3500
numMuestras=6
dist="exp" 

mat=matrix(nrow = numMuestras, ncol = tamMuestra)
# Matriz para almacenar las muestras generadas 
mediax=vector() 
#Vector para almacenar la media de cada muestra generada
 
for (i in 1:numMuestras){
  x=genera(dist,tamMuestra)
  mat[i,]= x
  mediax[i]=mean(x)
}
## [1] 0.009726791 0.010022160 0.010237823 0.009860802 0.010177724 0.009842958