Usted tiene un algoritmo que estima, dado un instante de tiempo Δt1, la variación de precio que tendrá una acción en la bolsa en los instantes Δt siguientes. Una vez que corre el algoritmo recibe una sucesión de variaciones de precio. Un valor de +3 significa que el precio tendrá un incremento de 3 unidades monetarias, un valor de -5 significa que el precio decrece en 5 unidades monetarias. Empezando con un precio de $0, ¿cuál será el precio resultante de la acción después de que ocurran todas las variaciones?
setwd("/Users/HP/Documents/Estadistica3")
datos<-data.frame(read.delim("input.txt"))
a<-sum(datos)
El precio resultante de la accion despues de todas las variaciones fue: es 423
Usted recuerda que un supuesto fuerte del análisis técnico de acciones es, palabras más palabras menos, que la historia siempre se repite. Por lo cual como parte de su estrategia, y esperando tener cierta ventaja sobre el resto del mercado, se ve interesado en encontrar el primer precio que ocurre dos veces si las variaciones que obtuvo se repiten todo el tiempo. ¿Cuál es primer precio que ocurre dos veces dada esta lista de variaciones?
setwd("/Users/HP/Documents/Estadistica3")
datos<-data.frame(read.delim("input.txt"))
precios<-t(datos)
variaciones<-c()
variaciones[1]=0
i<-1
j<-1
k<-0
a<-T
while(a){
k=(variaciones[j] + precios[i])
if(k %in% variaciones){
variaciones[j+1]=(variaciones[j] + precios[i])
a<-F
}else if(i==988){
variaciones[j+1]=(variaciones[j] + precios[i])
i=1
j=j+1
}else{
variaciones[j+1]=(variaciones[j] + precios[i])
i=i+1
j=j+1
}
}
preciorepetido<-variaciones[j+1]
iteracionrepetida<-j
El primer precio repetido fue 408 En la iteracion 989
Si hacemos una lista de los números naturales menores a 10 que son multiplos de 3 o 5 obtendremos c(3, 5, 6, 9), la suma de esos multiplos es 23. Encuentre la suma de todos los multiplos de 3 o 5 menores a 1000.
a<-0
b<-0
x<-c()
y<-c()
for(i in 1:199){
x[i]<-(5*i)
}
for(j in 1:333){
x[j+199]<-(3*j)
}
for(h in 1:66){
y[h]<-(15*h)
y
b<-(b + y[h])
}
for(k in 1:532){
a<-(a + x[k] )
}
a<-(a-b)
La suma de todos los multiplos de 3 o 5 menores a 1000 es: 2.3316810^{5}
Como bien sabe, cada término de la sucesión de Fibonacci se obtiene sumando los dos elementos anteriores.
Considere los elementos de la sucesión de Fibonacci menores a 1,000,000,000. Sea x la suma de los elementos impares, y la suma de los elementos pares. Encuentre z=x/y
x<-0
y<-0
z<-0
a<-c()
a[1]<-0
a[2]<-1
for(i in 3:45){
a[i]<-(a[i-2]+a[i-1])
}
for(j in 1:45){
if((a[j]%%2)==0){
x<-(x + a[j] )
}else{
y<-(y + a[j])
}
}
z<-(x/y)
Se tiene que z=(suma de los elementos impares/suma de los elementos pares) = 0.236068
Ahora considere los primeros 10n elementos de la sucesión de Fibonacci con n∈(1,200), sean x el número de elementos impares, y el número de elementos pares y z=x/y. Haga un gráfico interactivo del vector de z′s. Explique un par de insights interesantes sobre el ejercicio.
fibo2<-function(n){
serie<-c()
serie[1]<-1
serie[2]<-1
for(i in 3:(10*n)){
serie[i]<-serie[i-1]+serie[i-2]
}
return(serie)
}
resultado<-c()
pares<-c()
impares<-c()
for(w in 1:200){
t1<-fibo2(w)
if((t1[w]%%2)==0){
pares[w]=t1[w]
}else{
impares[w]=t1[w]
}
resultado[w]=(length(impares)/length(pares))
}
parametro<-resultado
plot(0:200,c(0,parametro),xlab="n's",ylab="z's",type="solid", main = "Grafico Interactivo", col="red")
INSIGHTS: Por la grafica podemos pensar que con n’s pequeñas la variacion entre el numero de elementos pares e impares en las series de Fibonacci oscilan demasiado y mientras la n va aumentando la oscilacion va disminuyendo, pero si cuando la n se va acercando a 100 vemos que cada vez hay mas pares que impares en las series de Fibonacci.
Escriba una función que encuentre los números primos entre 1 y n. Haga un gráfico animado de la proporción de números primos en los primeros 10k naturales con k∈(1:100)
fibo3<-function(n){
primos<-c()
k<-1
for(i in 1:(10*n)){
contador<-0
for(j in 1:i){
if((i%%j)==0){
contador=contador+1
}else{
}
}
if(contador==2){
primos[k]=i
k=k+1
}else{
}
}
return(primos)
}
a<-c()
for(w in 1:100){
t1<-fibo3(w)
a[w]=(length(t1)/(10*w))
}
letra<-a
plot(0:100,c(0,letra),xlab="n",ylab="Proporcion",type="solid", main = "Grafico Interactivo", col="red")
## Warning in plot.xy(xy, type, ...): gráfico de tipo 'solid' va a ser
## truncado al primer carácter
Es bien sabido que ρX,Y=0→X⊥Y es falso. Simule un contraejemplo.
x<-rnorm(1000)
y<-(x**2)
correlacion<-round(cor(x,y))
contraejemplo: La implicacion es falsa, pues para las variables aleatorias anteriormente definidas se tiene que su covarianza es = 0 Y por ende su correlacion es = 0
Usted trabaja en un casino donde existe el siguiente juego: un jugador lanza tres dados y gana 20 pesos por cada 6 que aparece, el costo de jugar es de 10 pesos. Escriba una función que simule el juego y regrese la cantidad que se gana en cada juego i.e. ganancia - costo. Calcule la media y varianza al simular 100, 1000 y 10000 juegos. Explique sus hallazgos al dueño del casino. Adapte su función para que tome los argumentos: numero de juegos, dinero inicial, costo del juego, apuesta del juego y que devuelva una lista con: - Un data frame que tenga como columnas: la ganancia del i-ésimo juego y la ganancia acumulada hasta el juego i - Un grafico de la ganancia acumulada Explore y explique las siguientes combinaciones para dinero inicial, costo del juego, apuesta del juego: (10,10,10), (10,2,5), (100, 10, 20), (1000, 5, 10).
juego<-function(di,c,a,n){
xi<-c()
ga=0
for(i in 1:n){
gai=0
play<-c(sample(1:6,3,replace=T,rep(1/6,6)))
for(j in 1:3){
if(play[j]==6){
gai=gai+a
}else{
}
}
xi[i]=gai-c
}
g<-cumsum(xi)
plot(0:n,c(0,g),xlab="No. de juegos",ylab="Ganancia acumulada",type="solid", main = "Grafico Interactivo", col="red")
data.frame(ganancia_juego_i=xi, ganancia_acumuLada=g)
}
casino<-juego(100,10,20,10000)
media<-mean(casino[,1])
varianza<-var(casino[,1])
La media obtenida fue: -0.038 La varianza obtenida fue: 166.0951655