#### ========== ========== ========== 分布函数与密度函数 ========== ========== ==========
rm(list = ls(all = TRUE))
graphics.off()
## ---------- 加载必要的包 ----------
library(mclust)
library(ggplot2)
library(plotly)
library(MASS)
library(fBasics)
library(LaplacesDemon)
## ---------- 钞票数据的相关矩阵 ----------
data(banknote)
round(cor(banknote[, 2:7]), digits = 2)
## ---------- X4与X6的散点图 ----------
fig = plot_ly(banknote, x = ~Bottom, y = ~Diagonal, type = "scatter", mode = "markers") %>%
layout(plot_bgcolor = '#e5ecf6',
xaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'),
yaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'))
fig
## --------- X4与X6的核密度图 ----------
fig1 = plot_ly()
dX4 = density(banknote$Bottom, kernel = "gaussian", na.rm = TRUE)
fig1 = add_lines(fig1, x = dX4$x, y = dX4$y, name = "gaussian") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'),
yaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'))
fig1
fig2 = plot_ly()
dX6 = density(banknote$Diagonal, kernel = "gaussian")
fig2 = add_lines(fig2, x = dX6$x, y = dX6$y, name = "gaussian") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'),
yaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'))
fig2
subplot(fig1, fig2, shareY = TRUE)
## ---------- X4与X6的密度函数的乘积的曲面图 ----------
z = outer(dX4$y, dX6$y, function(a, b) a * b)
fig3 = plot_ly(x = ~dX4$x, y = ~dX6$x, z = ~z, type = "surface")
fig3
## ---------- X4与X6的联合概率密度函数的核密度图 ----------
x = sort(banknote$Bottom)
y = sort(banknote$Diagonal)
KD_X4_6 = kde2d(x, y, n = 25)
fig4 = plot_ly(x = ~x, y = ~y, z = ~KD_X4_6$z, type = "surface")
fig4
## ---------- 多元正态分布 -----------
mu = c(3, 2)
Sigma = matrix(c(1, -1.5, -1.5, 4), nrow = 2, byrow = TRUE)
X = mvrnorm(n = 100, mu, Sigma)
colnames(X) = c("X1", "X2")
X = as.data.frame(X)
fig5 = plot_ly(X, x = ~X1, y = ~X2) %>%
add_markers(alpha = 0.9) %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'),
yaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'))
fig5
cor(X) # 相关矩阵
## ---------- 联合密度函数曲面 ----------
n = 80
mu1 = 3
mu2 = 2
s1 = 1
s2 = 2
rho = -1.5/2
x = seq(0, 6, length = n) * s1
y = seq(-4 , 8, length = n) * s2
f = function(x, y){
(2 * pi * s1 * s2 * sqrt(1-rho^2))^-1 * exp(-0.5 * (1 - rho^2)^-1 *
((x-mu1)^2/s1^2 - 2 * rho * (x - mu1) * ( y - mu2) / (s1 * s2) +
(y - mu2)^2/s2^2))
}
z = outer(x , y, f)
fig6 = plot_ly() %>%
add_surface(x = ~x, y = ~y, z = ~z)
fig6
## ---------- 联合密度函数曲面的等高线 ----------
fig7 = plot_ly(x = ~x, y = ~y, z = ~z) %>%
add_contour()
fig7
#### ========== ========== 抽样分布与中心极限定理 ========== ==========
## ---------- Bernoulli总体容量为5、35的中心极限定理 ----------
x = array(0, dim = 1000)
for (i in 1:1000){
y = rbinom(5, 1, prob = 1/2)
x[i] = sqrt(5) * (mean(y) - 1/2)
}
fig8 = plot_ly()
d = density(x, kernel = 'gaussian')
fig8 = add_lines(fig8, x = d$x, y = d$y, name = "n = 5")
fig8
fig8 = add_lines(fig8, x = d$x, y = dnorm(d$x, 0, 0.5), name = "N(0, 0.25)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'),
yaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'))
fig8
x = array(0, dim = 1000)
for (i in 1:1000){
y = rbinom(35, 1, prob = 1/2)
x[i] = sqrt(35) * (mean(y) - 1/2)
}
fig9 = plot_ly()
d = density(x, kernel = 'gaussian')
fig9 = add_lines(fig9, x = d$x, y = d$y, name = "n = 35")
fig9
fig9 = add_lines(fig9, x = d$x, y = dnorm(d$x, 0, 0.5), name = "N(0, 0.25)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'),
yaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2, gridcolor = 'ffff'))
fig9
subplot(fig8, fig9)
## ---------- 二维正态分布密度曲面 ----------
n = 50
mu1 = 0
mu2 = 0
s1 = 1/2
s2 = 1/2
rho = 0
x = seq(-4, 4, length = n) * s1
y = seq(-4, 4, length = n) * s2
f = function(x, y){
(2 * pi * s1 * s2 * sqrt(1-rho^2))^-1 * exp(-0.5 * (1 - rho^2)^-1 *
((x-mu1)^2/s1^2 - 2 * rho * (x - mu1) * ( y - mu2) / (s1 * s2) + (y - mu2)^2/s2^2))
}
z = outer(x , y, f)
fig10 = plot_ly(x = ~x, y = ~y, z = ~z) %>%
add_surface() %>%
layout(
scene = list(
xaxis = list(title = ""),
yaxis = list(title = ""),
zaxis = list(title = "")
)
)
fig10
## ---------- 二维核密度估计 (n=5) ----------
rm(list = ls(all = TRUE))
library(MASS)
x = array(0, dim = 1000)
y = array(0, dim = 1000)
for (i in 1:1000){
a = rbinom(5, 1, prob = 1/2)
x[i] = sqrt(5) * (mean(a) - 1/2)
b = rbinom(5, 1, prob = 1/2)
y[i] = sqrt(5) * (mean(b) - 1/2)
}
kd = kde2d(x, y, n=50, lims = c(-2, 2, -2, 2))
fig11 = plot_ly(x = ~kd$x, y = ~kd$y, z = ~kd$z) %>%
add_surface() %>%
layout(
scene = list(
xaxis = list(title = ""),
yaxis = list(title = ""),
zaxis = list(title = "")
)
)
fig11
## ---------- 二维核密度估计 (n = 85) ----------
x = array(0, dim = 1000)
y = array(0, dim = 1000)
for (i in 1:1000){
a = rbinom(85, 1, prob = 1/2)
x[i] = sqrt(85) * (mean(a) - 1/2)
b = rbinom(85, 1, prob = 1/2)
y[i] = sqrt(85) * (mean(b) - 1/2)
}
kd2 =kde2d(x, y, n=50, lims = c(-2, 2, -2, 2))
fig12 = plot_ly(x = ~kd2$x, y = ~kd2$y, z = ~kd2$z) %>%
add_surface() %>%
layout(
scene = list(
xaxis = list(title = ""),
yaxis = list(title = ""),
zaxis = list(title = "")
)
)
fig12
#### ========== ========== 厚尾分布 ========== ==========
## ---------- Cauchy 分布 ----------
x = seq(-8, 8, length = 200)
y_1 = dcauchy(x, location = 0, scale = 1)
y_2 = dcauchy(x, location = 0, scale = 1/2)
y_3 = dcauchy(x, location = 0, scale = 3)
y_4 = dcauchy(x, location = -3, scale = 2/3)
y_5 = dcauchy(x, location = 2.5, scale = 2)
fig_13 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "l = 0, s = 1") %>%
add_lines(x = ~x, y = ~y_2, name = "l = 0, s = 1/2") %>%
add_lines(x = ~x, y = ~y_3, name = "l = 0, s = 3") %>%
add_lines(x = ~x, y = ~y_4, name = "l = -1, s = 2/3") %>%
add_lines(x = ~x, y = ~y_5, name = "l = 2.5, s = 2")
fig_13 = fig_13 %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = '#ffff', zerolinewidth = 2,
gridcolor = 'ffff', title = ""))
fig_13
## ---------- Cauchy 分布是厚尾分布 ----------
x = seq(-6, 6, length = 200)
y_1 = dnorm(x, mean = 0, sd = 1)
y_2 = dcauchy(x, location = 0, scale = 1)
fig_14 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "Normal") %>%
add_lines(x = ~x, y = ~y_2, name = "Cauchy")
fig_14 = fig_14 %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = ""))
fig_14
## ---------- 双曲线 (HYP) 分布 ----------
# ----- 双曲线分布的概率密度曲线 -----
x = seq(-6, 6, length = 200)
y_1 = dhyp(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_2 = dhyp(x, alpha = 1, beta = 0, delta = 1/2, mu = 0)
y_3 = dhyp(x, alpha = 1, beta = 0, delta = 1/100, mu = 0)
y_4 = dhyp(x, alpha = 1, beta = 0, delta = 4, mu = 0)
fig_15 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "HYP (delta = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "HYP (delta = 1/2)") %>%
add_lines(x = ~x, y = ~y_3, name = "HYP (delta = 1/100)") %>%
add_lines(x = ~x, y = ~y_4, name = "HYP (delta = 4)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "双曲线分布的概率密度函数"))
fig_15
# ----- 双曲线分布的分布函数曲线 -----
x = seq(-6, 6, length = 200)
y_1 = phyp(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_2 = phyp(x, alpha = 1, beta = 0, delta = 1/2, mu = 0)
y_3 = phyp(x, alpha = 1, beta = 0, delta = 1/100, mu = 0)
y_4 = phyp(x, alpha = 1, beta = 0, delta = 4, mu = 0)
fig_16 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "HYP (delta = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "HYP (delta = 1/2)") %>%
add_lines(x = ~x, y = ~y_3, name = "HYP (delta = 1/100)") %>%
add_lines(x = ~x, y = ~y_4, name = "HYP (delta = 4)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "双曲线分布的概率分布函数"))
fig_16
## ---------- 正态逆高斯 (NIG) 分布 ----------
# ----- 正态逆高斯分布的概率密度曲线 -----
x = seq(-4, 4, length = 200)
y_1 = dnig(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_2 = dnig(x, alpha = 1, beta = 0, delta = 1/2, mu = 0)
y_3 = dnig(x, alpha = 1, beta = 0, delta = 1/5, mu = 0)
y_4 = dnig(x, alpha = 1, beta = 0, delta = 4, mu = 0)
fig_17 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "NIG (delta = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "NIG (delta = 1/2)") %>%
add_lines(x = ~x, y = ~y_3, name = "NIG (delta = 1/5)") %>%
add_lines(x = ~x, y = ~y_4, name = "NIG (delta = 4)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "正态逆高斯分布的概率密度函数"))
fig_17
# ----- 正态逆高斯分布的分布函数曲线 -----
x = seq(-4, 4, length = 200)
y_1 = pnig(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_2 = pnig(x, alpha = 1, beta = 0, delta = 1/2, mu = 0)
y_3 = pnig(x, alpha = 1, beta = 0, delta = 1/5, mu = 0)
y_4 = pnig(x, alpha = 1, beta = 0, delta = 4, mu = 0)
fig_18 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "NIG (delta = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "NIG (delta = 1/2)") %>%
add_lines(x = ~x, y = ~y_3, name = "NIG (delta = 1/5)") %>%
add_lines(x = ~x, y = ~y_4, name = "NIG (delta = 4)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "正态逆高斯分布的概率分布函数"))
fig_18
## ---------- 广义双曲线 (GH) 分布 ----------
# ----- 广义双曲线分布的概率密度函数 -----
x = seq(-4, 4, length = 200)
y_1 = dgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = -1/2)
y_2 = dgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 1/2)
y_3 = dgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 2)
fig_19 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "GH (lambda = -1/2)") %>%
add_lines(x = ~x, y = ~y_2, name = "GH (lambda = 1/2)") %>%
add_lines(x = ~x, y = ~y_3, name = "GH (lambda = 2)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "广义双曲线分布的概率密度函数"))
fig_19
# ----- 广义双曲线分布的概率分布函数 -----
x = seq(-4, 4, length = 200)
y_1 = pgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = -1/2)
y_2 = pgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 1/2)
y_3 = pgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 2)
fig_20 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "GH (lambda = -1/2)") %>%
add_lines(x = ~x, y = ~y_2, name = "GH (lambda = 1/2)") %>%
add_lines(x = ~x, y = ~y_3, name = "GH (lambda = 2)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "广义双曲线分布的概率分布函数"))
fig_20
# ----- 不同概率密度函数的对比 -----
x = seq(-6, 6, length = 200)
y_1 = dgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 0.5)
y_2 = dhyp(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_3 = dnig(x, alpha = 1, beta = 0, delta = 1, mu = 0)
fig_21 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "GH (lambda = 1/2)") %>%
add_lines(x = ~x, y = ~y_2, name = "HYP") %>%
add_lines(x = ~x, y = ~y_3, name = "NIG") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "概率密度函数"))
fig_21
# ----- 不同概率分布函数的对比 -----
x = seq(-6, 6, length = 200)
y_1 = pgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 0.5)
y_2 = phyp(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_3 = pnig(x, alpha = 1, beta = 0, delta = 1, mu = 0)
fig_22 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "GH (lambda = 1/2)") %>%
add_lines(x = ~x, y = ~y_2, name = "HYP") %>%
add_lines(x = ~x, y = ~y_3, name = "NIG") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "概率分布函数"))
fig_22
## ---------- 学生 t 分布 ----------
# ----- t 分布的密度函数曲线 -----
x = seq(-6, 6, length = 200)
y_1 = dt(x, 15)
y_2 = dt(x, 5)
y_3 = dt(x, 1)
y_4 = dnorm(x, 0, 1)
fig_23 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "t (n = 15)") %>%
add_lines(x = ~x, y = ~y_2, name = "t (n = 5)") %>%
add_lines(x = ~x, y = ~y_3, name = "t (n = 1)") %>%
add_lines(x = ~x, y = ~y_4, name = "N(0, 1)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "概率密度曲线"))
fig_23
# ----- t 分布的分布函数曲线 -----
x = seq(-6, 6, length = 200)
y_1 = pt(x, 15)
y_2 = pt(x, 5)
y_3 = pt(x, 1)
y_4 = pnorm(x, 0, 1)
fig_24 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "t (n = 15)") %>%
add_lines(x = ~x, y = ~y_2, name = "t (n = 5)") %>%
add_lines(x = ~x, y = ~y_3, name = "t (n = 1)") %>%
add_lines(x = ~x, y = ~y_4, name = "N(0, 1)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "分布函数曲线"))
fig_24
# ----- t 分布尾部的比较 -----
x = seq(2.5, 5, length = 100)
y_1 = dt(x, 1)
y_2 = dt(x, 3)
y_3 = dt(x, 9)
y_4 = dt(x, 45)
y_5 = dnorm(x, 0, 1)
fig_25 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "t (n = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "t (n = 3)") %>%
add_lines(x = ~x, y = ~y_3, name = "t (n = 9)") %>%
add_lines(x = ~x, y = ~y_4, name = "t (n = 45)") %>%
add_lines(x = ~x, y = ~y_5, name = "N(0, 1)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "t 分布密度曲线尾部的比较"))
fig_25
## ---------- Laplace 分布 ----------
# ----- Laplace 分布的密度函数曲线 -----
x = seq(-6, 6, length = 201)
y_1 = dlaplace(x, location = 0, scale = 1)
y_2 = dlaplace(x, location = 0, scale = 1.5)
y_3 = dlaplace(x, location = 0, scale = 2)
fig_26 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "L (theta = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "L (theta = 1.5)") %>%
add_lines(x = ~x, y = ~y_3, name = "L (theta = 2)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "Laplace 分布密度曲线"))
fig_26
# ----- Laplace 分布的分布函数曲线 -----
x = seq(-6, 6, length = 201)
y_1 = plaplace(x, location = 0, scale = 1)
y_2 = plaplace(x, location = 0, scale = 1.5)
y_3 = plaplace(x, location = 0, scale = 2)
fig_27 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "L (theta = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "L (theta = 1.5)") %>%
add_lines(x = ~x, y = ~y_3, name = "L (theta = 2)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "Laplace 分布的分布函数曲线"))
fig_27
## ---------- Cauchy 分布 ----------
# ----- Cauchy 分布的密度函数曲线 -----
x = seq(-6, 6, length = 201)
y_1 = dcauchy(x, location = 0, scale = 1)
y_2 = dcauchy(x, location = 0, scale = 1.5)
y_3 = dcauchy(x, location = 0, scale = 2)
fig_28 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "Cauchy (s = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "Cauchy (s = 1.5)") %>%
add_lines(x = ~x, y = ~y_3, name = "Cauchy (s = 2)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "Cauchy 分布的密度函数曲线"))
fig_28
# ----- Cauchy 分布的分布函数曲线 -----
x = seq(-6, 6, length = 201)
y_1 = pcauchy(x, location = 0, scale = 1)
y_2 = pcauchy(x, location = 0, scale = 1.5)
y_3 = pcauchy(x, location = 0, scale = 2)
fig_29 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "Cauchy (s = 1)") %>%
add_lines(x = ~x, y = ~y_2, name = "Cauchy (s = 1.5)") %>%
add_lines(x = ~x, y = ~y_3, name = "Cauchy (s = 2)") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "Cauchy 分布的分布函数曲线"))
fig_29
#### ---------- ---------- 混合模型 ---------- ----------
## ----- 80% 的 N(0, 1) 与 20% 的 N(0, 9) 构成的正态混合分布的密度函数曲线 -----
x = seq(-6, 6, length = 201)
y_1 = dnorm(x, mean = 0, sd = 1)
y_2 = dnorm(x, mean = 0, sd = 3)
y_3 = 0.8 * y_1 + 0.2 * y_2
fig_30 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "N(0,1)") %>%
add_lines(x = ~x, y = ~y_2, name = "N(0,9)") %>%
add_lines(x = ~x, y = ~y_3, name = "GM") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "正态混合模型的密度函数曲线"))
fig_30
# ----- 80% 的 N(0, 1) 与 20% 的 N(0, 9) 构成的正态混合分布的分布函数曲线 -----
x = seq(-6, 6, length = 201)
y_1 = pnorm(x, mean = 0, sd = 1)
y_2 = pnorm(x, mean = 0, sd = 3)
y_3 = 0.8 * y_1 + 0.2 * y_2
fig_31 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "N(0,1)") %>%
add_lines(x = ~x, y = ~y_2, name = "N(0,9)") %>%
add_lines(x = ~x, y = ~y_3, name = "GM") %>%
layout(plot_bgcolor='#e5ecf6',
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "正态混合模型的分布函数曲线"))
fig_31
## ---------- 广义双曲分布 ----------
# ----- 广义双曲分布以指数速度衰减 -----
x = seq(4, 6, length = 101)
y_1 = dgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 0.5)
y_2 = dgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 1.5)
y_3 = dnig(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_4 = dhyp(x, alpha = 1, beta = 0, delta = 1, mu = 0)
fig_32 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = TeX("\\text{GH} (\\lambda = 0.5)")) %>%
add_lines(x = ~x, y = ~y_2, name = TeX("\\text{GH} (\\lambda = 1.5)")) %>%
add_lines(x = ~x, y = ~y_3, name = "NIG") %>%
add_lines(x = ~x, y = ~y_4, name = "HYP") %>%
layout(plot_bgcolor='#e5ecf6', title = "Tail comparison of GH distributionns (pdf)",
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = "GH 的密度曲线")) %>%
config(mathjax = "cdn")
fig_32
# ----- 正态逆高斯(NIG)、Laplace、Cauchy、标准正态(Gaussian) 分布的密度曲线的比较 -----
x = seq(-6, 6, length = 201)
y_1 = dnig(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_2 = dlaplace(x, location = 0, scale = 1)
y_3 = dnorm(x, 0, 1)
y_4 = dcauchy(x, location = 0, scale = 1)
fig_33 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "NIG") %>%
add_lines(x = ~x, y = ~y_2, name = "Laplace") %>%
add_lines(x = ~x, y = ~y_3, name = "Gaussian") %>%
add_lines(x = ~x, y = ~y_4, name = "Cauchy") %>%
layout(plot_bgcolor='#e5ecf6', title = "Distributions Comparison",
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = ""))
fig_33
# ----- 正态逆高斯(NIG)、Laplace、Cauchy、标准正态(Gaussian) 分布尾部的比较 -----
x = seq(-6, -4, length = 101)
y_1 = dnig(x, alpha = 1, beta = 0, delta = 1, mu = 0)
y_2 = dlaplace(x, location = 0, scale = 1)
y_3 = dnorm(x, 0, 1)
y_4 = dcauchy(x, location = 0, scale = 1)
fig_34 = plot_ly() %>%
add_lines(x = ~x, y = ~y_1, name = "NIG") %>%
add_lines(x = ~x, y = ~y_2, name = "Laplace") %>%
add_lines(x = ~x, y = ~y_3, name = "Gaussian") %>%
add_lines(x = ~x, y = ~y_4, name = "Cauchy") %>%
layout(plot_bgcolor='#e5ecf6', title = "Tail Comparison",
xaxis = list(zerolinecolor = 'cyan', zerolinewidth = 2,
gridcolor = 'ffff', title = ""),
yaxis = list(zerolinecolor = "cyan", zerolinewidth = 2,
gridcolor = 'ffff', title = ""))
fig_34
#### ========== ========== 自助法 Bootstrap ========== ==========
## ----- 经验分布函数(n=10) -----
n = 10
x = rnorm(n, 0, 1)
plot(ecdf(x), xlab = 'X', ylab ='', xlim = c(-3, 3), main = 'ECDF and CDF',
verticals = TRUE, do.points = FALSE)
curve(pnorm(x, 0, 1), -3, 3, add = TRUE, col = 'red', lwd = 2)
# 经验分布函数(n=100)
n = 100
x = rnorm(n, 0, 1)
plot(ecdf(x), xlab = 'X', ylab ='', xlim = c(-3, 3), main = 'ECDF and CDF',
verticals = TRUE, do.points = FALSE)
curve(pnorm(x, 0, 1), -3, 3, add = TRUE, col = 'red', lwd = 2)
# 经验分布函数(n=1000)
n = 1000
x <- rnorm(n, 0, 1)
plot(ecdf(x), xlab = 'X', ylab ='', xlim = c(-3, 3), main = 'ECDF and CDF',
verticals = TRUE, do.points = FALSE)
curve(pnorm(x, 0, 1), -3, 3, add = TRUE, col = 'red', lwd = 2)
# 自助样本(n=100)
n = 100
x = rnorm(n, 0, 1)
y1 = sample(x, n, replace = TRUE)
y2 = sample(x, n, replace = TRUE)
plot(ecdf(x), xlab = 'X', ylab ='', xlim = c(-3, 3),
main = 'ECDF and 2 bootstrap ECDFs, n = 100',
verticals = TRUE, do.points = FALSE, lwd = 2, col = 'black')
plot(ecdf(y1), verticals = TRUE, do.points = FALSE, col = 'red', add = TRUE)
plot(ecdf(y2), verticals = TRUE, do.points = FALSE, col = 'blue', add = TRUE)
curve(pnorm(x, 0, 1), -3, 3, add = TRUE, col = 'cyan3', lwd = 2)