LaborCapitalAndTheOptimalGr.../plots/1000years/.Rhistory

513 lines
16 KiB
R
Raw Normal View History

2020-09-24 10:39:48 +00:00
sum(x1_array_forward_shooting<0)
x3_array_forward_shooting[l]
x3_growth = (x3_array_forward_shooting[l]-x3_array_forward_shooting[l-1])/x3_array_forward_shooting[l-1]/(1*stepsize)
x3_growth
sum(x3_array_forward_shooting<0)
a1_growth = (a1_array_forward_shooting[l]-a1_array_forward_shooting[l-1])/a1_array_forward_shooting[l-1]/stepsize
a1_growth
a3_growth = (a3_array_forward_shooting[l]-a3_array_forward_shooting[l-1])/a3_array_forward_shooting[l-1]/stepsize
a3_growth
a1_array_forward_shooting[l]/x1_array_forward_shooting[l]
plot((a1_array_forward_shooting/x1_array_forward_shooting)[(l-100):l])
# Forward shooting
options(digits=7)
## Evolution
x1_array_forward_shooting <- c()
x3_array_forward_shooting <- c()
a1_array_forward_shooting <- c()
a3_array_forward_shooting <- c()
s1_array_forward_shooting <- c()
s3_array_forward_shooting <- c()
x1_t = x1_init
x3_t = x3_init
#stepsize
comienzo = Sys.time()
max = max(times_forward_shooting)
for(t in times_forward_shooting){
if((100*t/max) %in% seq(from=0, to=100, by=1)){
cat(paste(floor(100*t/max), "%", sep=""))
cat("\n")
}
a1_t = a1(t)
a3_t = a3(t)
s1_t = s1(t)
s3_t = s3(t)
x1_t = x1_t*(1+r1_stepsize) + dx1(t)*stepsize
x3_t = x3_t*(1+r3_stepsize) + dx3(t)*stepsize
a1_array_forward_shooting <- c(a1_array_forward_shooting, a1_t)
a3_array_forward_shooting <- c(a3_array_forward_shooting, a3_t)
s1_array_forward_shooting <- c(s1_array_forward_shooting, s1_t)
s3_array_forward_shooting <- c(s3_array_forward_shooting, s3_t)
x1_array_forward_shooting <- c(x1_array_forward_shooting, x1_t)
x3_array_forward_shooting <- c(x3_array_forward_shooting, x3_t)
}
# Variables
η = 0.9 ## 1.1
ρ = 0.005
r_1 = 0.06
r_3 = -0.05
γ_1 = 0.03
γ_3 = 0.01
w_3 = 5000 ## Mean on the EA Survey 2018: ~7000
β_3 = 1 ## 1 ## 0.5 Corresponds to roughly 5 people convincing 10 other people per year on a 50k year budget
## Dramatic if beta = 0.5, w_3 = 1000
λ_1 = 0.5
λ_3 = 0.5
δ_3 = 0.44
## k1_forward_shooting
k1_forward_shooting = 3*10^(-7) ## 1*10^(-7) fails. 2*10^(-7) fails
k1_reverse_shooting = k1_forward_shooting
## Artfully guessed, such that s1 < 1
stepsize = 0.1
## stepsize = 0.1 => seconds (7s).
## stepsize = 0.01 => minutes (3 mins).
r1_stepsize = ((1+r_1)^stepsize)-1
r3_stepsize = ((1+r_3)^stepsize)-1
first = 0
last = 1000
times_forward_shooting = seq(from=first, to=last, by=stepsize)
times_reverse_shooting = seq(from=last, to=first, by=-stepsize)
### Initial conditions. Correspond to "year 0".
x1_init = 10^10 ## 1 billion? 15 billion? 100 billion? Too much?
x3_init = 10^5
# Forward shooting
options(digits=7)
## Evolution
x1_array_forward_shooting <- c()
x3_array_forward_shooting <- c()
a1_array_forward_shooting <- c()
a3_array_forward_shooting <- c()
s1_array_forward_shooting <- c()
s3_array_forward_shooting <- c()
x1_t = x1_init
x3_t = x3_init
#stepsize
comienzo = Sys.time()
max = max(times_forward_shooting)
for(t in times_forward_shooting){
if((100*t/max) %in% seq(from=0, to=100, by=1)){
cat(paste(floor(100*t/max), "%", sep=""))
cat("\n")
}
a1_t = a1(t)
a3_t = a3(t)
s1_t = s1(t)
s3_t = s3(t)
x1_t = x1_t*(1+r1_stepsize) + dx1(t)*stepsize
x3_t = x3_t*(1+r3_stepsize) + dx3(t)*stepsize
a1_array_forward_shooting <- c(a1_array_forward_shooting, a1_t)
a3_array_forward_shooting <- c(a3_array_forward_shooting, a3_t)
s1_array_forward_shooting <- c(s1_array_forward_shooting, s1_t)
s3_array_forward_shooting <- c(s3_array_forward_shooting, s3_t)
x1_array_forward_shooting <- c(x1_array_forward_shooting, x1_t)
x3_array_forward_shooting <- c(x3_array_forward_shooting, x3_t)
}
fin = Sys.time()
fin-comienzo
## Checking condition
options(digits=22)
l = length(times_forward_shooting)
x1_array_forward_shooting[l]
x1_growth = (x1_array_forward_shooting[l]-x1_array_forward_shooting[l-1])/x1_array_forward_shooting[l-1]/(1*stepsize)
x1_growth
sum(x1_array_forward_shooting<0)
x3_array_forward_shooting[l]
x3_growth = (x3_array_forward_shooting[l]-x3_array_forward_shooting[l-1])/x3_array_forward_shooting[l-1]/(1*stepsize)
x3_growth
sum(x3_array_forward_shooting<0)
a1_growth = (a1_array_forward_shooting[l]-a1_array_forward_shooting[l-1])/a1_array_forward_shooting[l-1]/stepsize
a1_growth
a3_growth = (a3_array_forward_shooting[l]-a3_array_forward_shooting[l-1])/a3_array_forward_shooting[l-1]/stepsize
a3_growth
a1_array_forward_shooting[l]/x1_array_forward_shooting[l]
plot((a1_array_forward_shooting/x1_array_forward_shooting)[(l-100):l])
# Plotting
## install.packages("tidyverse") <- Not totally necessary.
## install.packages("ggplot2")
## install.packages("ggsci")
library(ggplot2)
library(ggsci)
## General variables
saveplots=TRUE
times = times_forward_shooting
## Also for reverse shooting plots; time in reverse shooting is inverted
shootingtype="reverse"#"forward"#
shootingtype="forward"#"reverse"#
directory = paste("/home/nuno/Documents/core/SRF/BackShooting/RCode/plots/satisfactory3/", shootingtype, "shooting", "/", last, "years", sep="")
directory
setwd(directory)
if(shootingtype=="forward"){
x1_array_plotting <- x1_array_forward_shooting
x3_array_plotting <- x3_array_forward_shooting
a1_array_plotting <- a1_array_forward_shooting
a3_array_plotting <- a3_array_forward_shooting
s1_array_plotting <- s1_array_forward_shooting
s3_array_plotting <- s3_array_forward_shooting
} else if(shootingtype=="reverse"){
x1_array_plotting <- x1_array_reverse_shooting
x3_array_plotting <- x3_array_reverse_shooting
a1_array_plotting <- a1_array_reverse_shooting
a3_array_plotting <- a3_array_reverse_shooting
s1_array_plotting <- s1_array_reverse_shooting
s3_array_plotting <- s3_array_reverse_shooting
}
height = 5
width = floor(height*(1+sqrt(5))/2)
imagenumbercounter = 1
saveplot = function(imagename){
if(saveplots){
ggsave(paste(imagenumbercounter,"_", imagename, "_",shootingtype, "shooting",".png", sep =""), units="in", width=width, height=height)
imagenumbercounter <<- imagenumbercounter+1
## https://stackoverflow.com/questions/1236620/global-variables-in-r
}
}
options(digits=1) ## Just for display
xs <- list()
xs$values <- c(x1_array_plotting, x3_array_plotting)
xs$var <- c(rep("x1", length(x1_array_plotting)), rep("x3", length(x3_array_plotting)))
xs$times = rep(times,2)
xs <- as.data.frame(xs)
title_text = "Evolution of state variables"
(ggplot(data = xs, aes(x = times, y= values, color = var)) +
geom_line(size = 0.5)
+ labs(
title=title_text,
#subtitle="n =303",
x="Year since start",
y="Capital and labor"
#caption="@EA Mental Health Survey"
)
+theme(
legend.title = element_blank(),
#plot.subtitle = element_text(hjust = 0.5),
plot.title = element_text(hjust = 0.5),
#axis.text.y = element_blank(),
legend.position="bottom",
legend.box="vertical"
)
+ scale_color_lancet(
breaks=c("x1", "x3"),
labels=c("Capital", "Labor")
)
+ scale_y_continuous(breaks = seq(min(x1_array_plotting), max(x1_array_plotting), length.out=5))
)
## x1 and x3: log plot
title_text = "Evolution of state variables"
(ggplot(data = xs, aes(x = times, y= values, color = var)) +
geom_line(size = 0.5)
+labs(
title=title_text,
subtitle="(logarithmic scale)",
#subtitle="n =303",
x="Year since start",
y="Capital and labor"
#caption="@EA Mental Health Survey"
)
+theme(
legend.title = element_blank(),
#plot.subtitle = element_text(hjust = 0.5),
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
#axis.text.y = element_blank(),
legend.position="bottom",
legend.box="vertical"
)
+ scale_color_lancet(
breaks=c("x1", "x3"),
labels=c("Capital", "Labor")
)
+ scale_y_continuous(trans = 'log2')
)
saveplot("StateVariablesX1X3logplot")
## Only x3
equis3 <- list()
equis3$values <- c(x3_array_plotting)
equis3$times = times
equis3 <- as.data.frame(equis3)
title_text = "Evolution of movement size"
(ggplot(data = equis3, aes(x = times, y= values))
+geom_line(size = 0.5)
+labs(
title=title_text,
#subtitle="n =303",
x="Year since start",
y="Labor"
#caption="@EA Mental Health Survey"
)
+theme(
legend.title = element_blank(),
#plot.subtitle = element_text(hjust = 0.5),
plot.title = element_text(hjust = 0.5),
#axis.text.y = element_blank(),
legend.position="bottom",
legend.box="vertical"
)
##+ scale_color_lancet()
)
saveplot("StateVariableX3")
## s1, s3, s4
sigmas <- list()
s4_array_plotting=1-s1_array_plotting-s3_array_plotting
sigmas$values <- c(s1_array_plotting, s3_array_plotting,s4_array_plotting)
sigmas$fraction <- c(rep("s1", length(s1_array_plotting)), rep("s3", length(s3_array_plotting)),rep("s4", length(s3_array_plotting)))
sigmas$times = rep(times,3)
sigmas <- as.data.frame(sigmas)
title_text = "Evolution of labor fractions"
(ggplot(data = sigmas, aes(x = times, y= values, color = fraction)) +
geom_line(size = 0.5)
+labs(
title=title_text,
#subtitle="n =303",
x="Year since start",
y="Fraction of total labor"
#caption="@EA Mental Health Survey"
)
+theme(
legend.title = element_blank(),
#plot.subtitle = element_text(hjust = 0.5),
plot.title = element_text(hjust = 0.5),
#axis.text.y = element_blank(),
legend.position="bottom",
legend.direction="vertical"
)
+ scale_color_lancet(
breaks=c("s1", "s3", "s4"),
labels=c("Direct work", "Movement building", "Money-making")
)
)
# Variables
η = 0.9 ## 1.1
ρ = 0.005
r_1 = 0.06
r_3 = -0.02
γ_1 = 0.03
γ_3 = 0.01
w_3 = 5000 ## Mean on the EA Survey 2018: ~7000
β_3 = 1 ## 1 ## 0.5 Corresponds to roughly 5 people convincing 10 other people per year on a 50k year budget
## Dramatic if beta = 0.5, w_3 = 1000
λ_1 = 0.5
λ_3 = 0.5
δ_3 = 0.44
## k1_forward_shooting
k1_forward_shooting = 3*10^(-7) ## 1*10^(-7) fails. 2*10^(-7) fails
k1_reverse_shooting = k1_forward_shooting
## Artfully guessed, such that s1 < 1
stepsize = 0.1
## stepsize = 0.1 => seconds (7s).
## stepsize = 0.01 => minutes (3 mins).
r1_stepsize = ((1+r_1)^stepsize)-1
r3_stepsize = ((1+r_3)^stepsize)-1
first = 0
last = 1000
times_forward_shooting = seq(from=first, to=last, by=stepsize)
times_reverse_shooting = seq(from=last, to=first, by=-stepsize)
### Initial conditions. Correspond to "year 0".
x1_init = 10^10 ## 1 billion? 15 billion? 100 billion? Too much?
x3_init = 10^5
# Forward shooting
options(digits=7)
## Evolution
x1_array_forward_shooting <- c()
x3_array_forward_shooting <- c()
a1_array_forward_shooting <- c()
a3_array_forward_shooting <- c()
s1_array_forward_shooting <- c()
s3_array_forward_shooting <- c()
x1_t = x1_init
x3_t = x3_init
#stepsize
comienzo = Sys.time()
max = max(times_forward_shooting)
for(t in times_forward_shooting){
if((100*t/max) %in% seq(from=0, to=100, by=1)){
cat(paste(floor(100*t/max), "%", sep=""))
cat("\n")
}
a1_t = a1(t)
a3_t = a3(t)
s1_t = s1(t)
s3_t = s3(t)
x1_t = x1_t*(1+r1_stepsize) + dx1(t)*stepsize
x3_t = x3_t*(1+r3_stepsize) + dx3(t)*stepsize
a1_array_forward_shooting <- c(a1_array_forward_shooting, a1_t)
a3_array_forward_shooting <- c(a3_array_forward_shooting, a3_t)
s1_array_forward_shooting <- c(s1_array_forward_shooting, s1_t)
s3_array_forward_shooting <- c(s3_array_forward_shooting, s3_t)
x1_array_forward_shooting <- c(x1_array_forward_shooting, x1_t)
x3_array_forward_shooting <- c(x3_array_forward_shooting, x3_t)
}
fin = Sys.time()
fin-comienzo
## Checking condition
options(digits=22)
l = length(times_forward_shooting)
x1_array_forward_shooting[l]
x1_growth = (x1_array_forward_shooting[l]-x1_array_forward_shooting[l-1])/x1_array_forward_shooting[l-1]/(1*stepsize)
x1_growth
sum(x1_array_forward_shooting<0)
x3_array_forward_shooting[l]
x3_growth = (x3_array_forward_shooting[l]-x3_array_forward_shooting[l-1])/x3_array_forward_shooting[l-1]/(1*stepsize)
x3_growth
sum(x3_array_forward_shooting<0)
a1_growth = (a1_array_forward_shooting[l]-a1_array_forward_shooting[l-1])/a1_array_forward_shooting[l-1]/stepsize
a1_growth
a3_growth = (a3_array_forward_shooting[l]-a3_array_forward_shooting[l-1])/a3_array_forward_shooting[l-1]/stepsize
a3_growth
a1_array_forward_shooting[l]/x1_array_forward_shooting[l]
plot((a1_array_forward_shooting/x1_array_forward_shooting)[(l-100):l])
# Plotting
## install.packages("tidyverse") <- Not totally necessary.
## install.packages("ggplot2")
## install.packages("ggsci")
library(ggplot2)
library(ggsci)
## General variables
saveplots=TRUE
times = times_forward_shooting
## Also for reverse shooting plots; time in reverse shooting is inverted
shootingtype="reverse"#"forward"#
shootingtype="forward"#"reverse"#
directory = paste("/home/nuno/Documents/core/SRF/BackShooting/RCode/plots/satisfactory3/", shootingtype, "shooting", "/", last, "years", sep="")
directory
setwd(directory)
if(shootingtype=="forward"){
x1_array_plotting <- x1_array_forward_shooting
x3_array_plotting <- x3_array_forward_shooting
a1_array_plotting <- a1_array_forward_shooting
a3_array_plotting <- a3_array_forward_shooting
s1_array_plotting <- s1_array_forward_shooting
s3_array_plotting <- s3_array_forward_shooting
} else if(shootingtype=="reverse"){
x1_array_plotting <- x1_array_reverse_shooting
x3_array_plotting <- x3_array_reverse_shooting
a1_array_plotting <- a1_array_reverse_shooting
a3_array_plotting <- a3_array_reverse_shooting
s1_array_plotting <- s1_array_reverse_shooting
s3_array_plotting <- s3_array_reverse_shooting
}
height = 5
width = floor(height*(1+sqrt(5))/2)
imagenumbercounter = 1
saveplot = function(imagename){
if(saveplots){
ggsave(paste(imagenumbercounter,"_", imagename, "_",shootingtype, "shooting",".png", sep =""), units="in", width=width, height=height)
imagenumbercounter <<- imagenumbercounter+1
## https://stackoverflow.com/questions/1236620/global-variables-in-r
}
}
options(digits=1) ## Just for display
xs <- list()
xs$values <- c(x1_array_plotting, x3_array_plotting)
xs$var <- c(rep("x1", length(x1_array_plotting)), rep("x3", length(x3_array_plotting)))
xs$times = rep(times,2)
xs <- as.data.frame(xs)
title_text = "Evolution of state variables"
(ggplot(data = xs, aes(x = times, y= values, color = var)) +
geom_line(size = 0.5)
+ labs(
title=title_text,
#subtitle="n =303",
x="Year since start",
y="Capital and labor"
#caption="@EA Mental Health Survey"
)
+theme(
legend.title = element_blank(),
#plot.subtitle = element_text(hjust = 0.5),
plot.title = element_text(hjust = 0.5),
#axis.text.y = element_blank(),
legend.position="bottom",
legend.box="vertical"
)
+ scale_color_lancet(
breaks=c("x1", "x3"),
labels=c("Capital", "Labor")
)
+ scale_y_continuous(breaks = seq(min(x1_array_plotting), max(x1_array_plotting), length.out=5))
)
saveplot("StateVariablesX1X3")
## x1 and x3: log plot
title_text = "Evolution of state variables"
(ggplot(data = xs, aes(x = times, y= values, color = var)) +
geom_line(size = 0.5)
+labs(
title=title_text,
subtitle="(logarithmic scale)",
#subtitle="n =303",
x="Year since start",
y="Capital and labor"
#caption="@EA Mental Health Survey"
)
+theme(
legend.title = element_blank(),
#plot.subtitle = element_text(hjust = 0.5),
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5),
#axis.text.y = element_blank(),
legend.position="bottom",
legend.box="vertical"
)
+ scale_color_lancet(
breaks=c("x1", "x3"),
labels=c("Capital", "Labor")
)
+ scale_y_continuous(trans = 'log2')
)
saveplot("StateVariablesX1X3logplot")
## Only x3
equis3 <- list()
equis3$values <- c(x3_array_plotting)
equis3$times = times
equis3 <- as.data.frame(equis3)
title_text = "Evolution of movement size"
(ggplot(data = equis3, aes(x = times, y= values))
+geom_line(size = 0.5)
+labs(
title=title_text,
#subtitle="n =303",
x="Year since start",
y="Labor"
#caption="@EA Mental Health Survey"
)
+theme(
legend.title = element_blank(),
#plot.subtitle = element_text(hjust = 0.5),
plot.title = element_text(hjust = 0.5),
#axis.text.y = element_blank(),
legend.position="bottom",
legend.box="vertical"
)
##+ scale_color_lancet()
)
saveplot("StateVariableX3")
## s1, s3, s4
sigmas <- list()
s4_array_plotting=1-s1_array_plotting-s3_array_plotting
sigmas$values <- c(s1_array_plotting, s3_array_plotting,s4_array_plotting)
sigmas$fraction <- c(rep("s1", length(s1_array_plotting)), rep("s3", length(s3_array_plotting)),rep("s4", length(s3_array_plotting)))
sigmas$times = rep(times,3)
sigmas <- as.data.frame(sigmas)
title_text = "Evolution of labor fractions"
(ggplot(data = sigmas, aes(x = times, y= values, color = fraction)) +
geom_line(size = 0.5)
+labs(
title=title_text,
#subtitle="n =303",
x="Year since start",
y="Fraction of total labor"
#caption="@EA Mental Health Survey"
)
+theme(
legend.title = element_blank(),
#plot.subtitle = element_text(hjust = 0.5),
plot.title = element_text(hjust = 0.5),
#axis.text.y = element_blank(),
legend.position="bottom",
legend.direction="vertical"
)
+ scale_color_lancet(
breaks=c("s1", "s3", "s4"),
labels=c("Direct work", "Movement building", "Money-making")
)
)