In [1]:
ENV["PYTHON"] = "" # Declaramos la variable PYTHON nula, para reproducibilidad
Pkg.update()
In [2]:
function p_it(p::String...)
# Instala el paquete 'p'
#
# Args:
# p: el nombre completo del paquete::String
#
# Returns:
# Mensaje de error o notifica de la instalación vía Base.Pkg.add
#
ENV["PYTHON"]=""
for i = 1:length(p)
if !contains(==, Pkg.available(), p[i])
println(p[i], ", no disponible.")
else
if !haskey(Pkg.installed(), p[i])
Pkg.add(p[i])
end
end
end
end
Out[2]:
Para saber más sobre la función, lo invitamos a consultar la libreta "Paquetes en Julia II":
In [3]:
p_it("Distributions",
"GLM",
"RDatasets",
"Plots",
"PlotlyJS",
"PyPlot",
"GR",
"UnicodePlots",
"PGFPlots",
"StatPlots",
"PlotRecipes",
"Blink")
In [4]:
using Blink
# Blink.AtomShell.install() # Ejecutar sólo una vez
In [5]:
using Distributions, Plots, StatPlots
In [6]:
pyplot() # motor de gráficos para Plot
Out[6]:
In [7]:
plot(Normal(), # Gráfica de ~ N(μ, σ)
label = "~ N(μ, σ)", # Definimos leyenda
fill = (0, .5,:green), # Color de fondo
fmt = :svg) # Opción para generar las notas
#\mu = μ
#\sigma = σ
Out[7]:
In [8]:
params(Normal()) # Obtenemos los parámetros: μ, σ
Out[8]:
In [9]:
x0 = rand(Normal(), 10000)
histogram!(x0, lab = "")
Out[9]:
In [10]:
plot(Normal(3,5), # Alteramos los parámetros ~N(μ, σ)
label = "~ N(3, 5)", # Definimos leyenda
fill=(0, .5,:orange), # Color de fondo
fmt = :svg) # Opción para generar las notas
Out[10]:
In [11]:
plot(Exponential(), # exponencial, λ por defecto
fill=(0, .5, :green), # Color de fondo con transparencia
fmt = :svg) # Opción para generar las notas
Out[11]:
In [12]:
params(Exponential())
Out[12]:
In [13]:
plot(Exponential(), # Exponencial, λ por defecto
fill=(0, .5, :orange), # Color de fondo con transparencia
label = "λ = 1.0", # Definimos leyenda
fmt = :svg) # Opción para generar las notas
Out[13]:
In [14]:
plot!(Exponential(0.5), # Exponencial, λ = 0.5
fill=(0, .5, :green), # Color de fondo con transparencia
label = "λ = 0.5", # Definimos leyenda
fmt = :svg) # Opción para generar las notas
Out[14]:
In [15]:
# savefig("exponential")
In [16]:
dist = Gamma()
scatter(dist,
leg = false)
bar!(dist,
func=cdf,
alpha=0.3,
xlabel = "Gamma()",
ylabel = "n",
fmt = :svg) # Opción para generar las notas
Out[16]:
In [17]:
params(Gamma())
Out[17]:
In [18]:
dist = Gamma(2)
scatter(dist, leg=false)
bar!(dist,
func=cdf,
alpha=0.3,
xlabel = "Gamma(2, 1)",
ylabel = "n",
fmt = :svg) # Opción para generar las notas
Out[18]:
In [19]:
x = rand(Uniform(), # Generamos aleatorios con d ~ unif()
10000) # diez mil números
histogram(x,
xlabel = "unif(0, 1)", # leyenda en abscisas
ylabel = "n", # leyenda en ordenadas
lab = "", # No leyenda
fmt = :svg) # Opción para generar las notas
Out[19]:
In [20]:
mean(x)
Out[20]:
In [21]:
using GLM, RDatasets
In [22]:
data01 = dataset("datasets", # usamos los 'datasets' de R
"Formaldehyde") # Nombre del conjunto a usar
Out[22]:
In [23]:
scatter(data01[:Carb], # la variable independiente, x
data01[:OptDen], # la variable dependiente, y
xlabel = "Carb", # Leyenda en las ordenadas
ylabel = "OptDen", # Leyenda en las abscisas
lab = "", # No queremos leyenda
fmt = :svg) # Opción para generar las notas
Out[23]:
In [24]:
lm1 = fit(LinearModel, # El tipo de ajuste: linear
@formula(OptDen ~ Carb), # El módelo a evaluar: y ~ x
data01) # El conjunto de datos
Out[24]:
In [25]:
plot!(data01[:Carb], # la variable independiente, x
predict(lm1), # la variable dependiente, y
lab = "lm", # La leyenda
fmt = :svg) # Opción para generar las notas
Out[25]:
In [26]:
data02 = DataFrame(X=[1,2,3], Y=[1,0,1]) # Generamos datos en un DataFrame
Out[26]:
In [27]:
Probit = fit(GeneralizedLinearModel, # El tipo de ajuste: linear generalizado
@formula(Y ~ X), # El modelo a evaluar
data02, # El conjunto de datos
Binomial(), # El tipo de distribución a usar
ProbitLink()) # Regresión Probit
Out[27]:
In [28]:
vcov(Probit)
Out[28]:
In [29]:
dobson = DataFrame(Counts = [18.,17,15,20,10,20,25,13,12],
Outcome = gl(3,1,9),
Treatment = gl(3,3))
Out[29]:
In [30]:
gm2 = fit(GeneralizedLinearModel, # El tipo de ajuste: linear generalizado
@formula(Counts ~ Outcome + Treatment), # El modelo a evaluar
dobson, # Los datos
Poisson()) # Regresión de Poisson
Out[30]:
In [31]:
deviance(gm2)
Out[31]:
In [32]:
versioninfo()
In [33]:
Dates.today()
Out[33]: