diff --git a/MSMLLN/MSMLLN.py b/MSMLLN/MSMLLN.py
new file mode 100644
index 0000000..b5d2054
--- /dev/null
+++ b/MSMLLN/MSMLLN.py
@@ -0,0 +1,22 @@
+# imports
+import numpy as np
+import matplotlib.pyplot as plt
+
+# plotting settings
+plt.style.use('seaborn')
+plt.rcParams['figure.figsize'] = (16, 8)
+
+np.random.seed(0)
+mu, sigma = 0, 1 # mean, standard deviation
+x = np.random.normal(mu, sigma, 1000)
+cum_sum = np.cumsum(x)
+sample_size = np.arange(1, len(x)+1)
+averges = np.divide(cum_sum, sample_size)
+
+plt.xlabel('Size of a sample', fontsize=16)
+plt.ylabel('Average', fontsize=16)
+plt.axhline(0, ls= '--', c='black', label='mean')
+plt.plot(sample_size, averges,
+ c='r', lw=5, alpha=0.6, label='sample average')
+plt.legend(loc="upper right", frameon=True, prop={'size': 14})
+plt.title('Law of Large Numbers', fontsize=20);
diff --git a/MSMLLN/MSMLLN.png b/MSMLLN/MSMLLN_R.png
similarity index 100%
rename from MSMLLN/MSMLLN.png
rename to MSMLLN/MSMLLN_R.png
diff --git a/MSMLLN/MSMLLN_py.png b/MSMLLN/MSMLLN_py.png
new file mode 100644
index 0000000..b608af8
Binary files /dev/null and b/MSMLLN/MSMLLN_py.png differ
diff --git a/MSMLLN/Metainfo.txt b/MSMLLN/Metainfo.txt
index aa35b58..e244598 100755
--- a/MSMLLN/Metainfo.txt
+++ b/MSMLLN/Metainfo.txt
@@ -3,9 +3,7 @@ Name of QuantLet : MSMLLN
Published in : MSM
-Description : 'Plots the points showing law of large numbers.
-As the sample size becomes larger, the sample mean converges to
-the theoretical (true) mean of the distribution.'
+Description : 'Plots the points showing law of large numbers. As the sample size becomes larger, the sample mean converges to the theoretical (true) mean of the distribution.'
Keywords :
- pdf
@@ -21,8 +19,8 @@ See also :
- MSMpdfasymmetric
- MSMasprob
-Author : Xiu Xu
+Author : Xiu Xu, Jacek Wiland
-Submitted : Thu, November 5 2015 by Chen Huang
+Submitted : December 15 2020
Example : Plot of points presenting law of large numbers.
diff --git a/MSMLLN/README.md b/MSMLLN/README.md
index 991f232..8595782 100644
--- a/MSMLLN/README.md
+++ b/MSMLLN/README.md
@@ -1,51 +1,42 @@
+
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMLLN** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMLLN
+```
+Name of QuantLet: MSMLLN
-Published in : MSM
+Published in: MSM
-Description : 'Plots the points showing law of large numbers. As the sample size becomes larger,
-the sample mean converges to the theoretical (true) mean of the distribution.'
+Description: Plots the points showing law of large numbers. As the sample size becomes larger, the sample mean converges to the theoretical (true) mean of the distribution.
-Keywords : pdf, normal, distribution, mean, plot, parameter, visualization, discrete
+Keywords:
+- pdf
+- normal
+- distribution
+- mean
+- plot
+- parameter
+- visualization
+- discrete
-See also : MSMpdfasymmetric, MSMasprob
+See also:
+- MSMpdfasymmetric
+- MSMasprob
-Author : Xiu Xu
+Author: Xiu Xu, Jacek Wiland
-Submitted : Thu, November 5 2015 by Chen Huang
+Submitted: December 15 2020
-Example : Plot of points presenting law of large numbers.
+Example: Plot of points presenting law of large numbers.
```
+
+
+
-
-
-
-### R Code:
-```r
+
+
+
-# clear history
-rm(list = ls(all = TRUE))
-graphics.off()
-
-n = 1000
-mu = 0
-sig = 1
-y = rnorm(n, mu, sig)
-x = matrix(0, nrow = n, ncol = 1)
-
-for (i in 1:n) {
- x[i] = mean(y[1:i])
-}
-
-# Plot
-plot(x, col = "red3", type = "p", pch = 20, lwd = 2.5, ylab = "", xlab = "")
-abline(h = 0, col = "blue", pch = 20, lwd = 3.5)
-
-```
diff --git a/MSM_LIL/README.md b/MSM_LIL/README.md
index 593cbe4..e46b2ab 100644
--- a/MSM_LIL/README.md
+++ b/MSM_LIL/README.md
@@ -1,74 +1,31 @@
-
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSM_LIL** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSM_LIL
-
-Published in : MSM
-
-Description : 'Plots the average of n Bernoulli trials (each taking a value of +/- 1, with
-probability 0.5) to show the law of large numbers and the law of the iterated logarithm. Plots of
-sample mean (red), its asymptotic standard deviation (dark-green) and its bound given by law of
-iterated logarithm (blue).'
-
-Keywords : bernoulli, random, random-number-generation, simulation, plot
-
-Author : Chen Huang
-
-Author [New] : Ya Qian
-
-Submitted : Fri, October 16 2015 by Shi Chen
+
```
+Name of QuantLet: MSM_LIL
-
-
+Published in: MSM
-### R Code:
-```r
+Description: Plots the average of n Bernoulli trials (each taking a
-## clear history
-rm(list = ls(all = TRUE))
-graphics.off()
+Keywords:
+- bernoulli
+- random
+- random-number-generation
+- simulation
+- plot
-## Initialize
-y = 0
-m = 0
-N1 = 0
-N2 = 0
+Author: Chen Huang
-for (n in 1:1e+04) {
- ## Simulate the paths of Bernoulli Distribution
- y = c(y, (1 + (-1 - 1) * (runif(1) < 0.5)))
- ## Calculate the sample mean
- m = c(m, mean(y[-1]))
- ## Calculate the asymptotic standard deviation
- N1 = c(N1, sqrt(1/n))
- ## Calculate the bounds of the sample mean
- N2 = c(N2, sqrt(2 * log(log(n))/n))
-}
+Author [New]: Ya Qian
-## Remove the initial zeros of each vector
-m = m[-1]
-N1 = N1[-1]
-N2 = N2[-1]
-
-## Plot the sample mean
-par(cex.lab = 1.5, cex.axis = 1.5, cex.main = 1.5, pch = 20)
-plot(m, ylim = c(-0.2, 0.2), type = "p", col = "red", main = "Law
- of the Iterated Logarithm", xlab = "Sample Size", ylab =
- "Deviation from Mean", cex = 0.5, bty = "n")
-legend(5000, 0.2, c("sqrt(1/n)", "sqrt(2 * log(log(n)) / n)"),
- lty = c(1, 1), col = c("dark green", "blue"), box.col =
- "white", pt.cex = 1.5 )
-
-## Add the asymptotic standard deviation and bounds
-lines(N1, lty = 1, lwd = 2, col = "dark green")
-lines(-N1, lty = 1, lwd = 2, col = "dark green")
-lines(N2, lty = 1, lwd = 2, col = "blue")
-lines(-N2, lty = 1, lwd = 2, col = "blue")
+Submitted: Fri, October 16 2015 by Shi Chen
```
+
+
+
+
diff --git a/MSM_VaRandES/Metainfo.txt b/MSM_VaRandES/Metainfo.txt
index df49e63..4991489 100755
--- a/MSM_VaRandES/Metainfo.txt
+++ b/MSM_VaRandES/Metainfo.txt
@@ -13,7 +13,7 @@ Keywords :
- cdf
- plot
-Author : Chen Huang
+Author : Chen Huang, Fulvio Raddi
Author [New] : Torsten Becker, Viktor Sandor
diff --git a/MSM_VaRandES/README.md b/MSM_VaRandES/README.md
index fcc0565..56bac70 100644
--- a/MSM_VaRandES/README.md
+++ b/MSM_VaRandES/README.md
@@ -1,73 +1,32 @@
-
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSM_VaRandES** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSM_VaRandES
-
-Published in : MSM
-
-Description : 'Plots Value at Risk and Expected Shortfall in one figure and shows the relationship
-between VaR and ES.'
-
-Keywords : VaR, expected shortfall, lognormal, pdf, cdf, plot
-
-Author : Chen Huang
-
-Author [New] : Torsten Becker, Viktor Sandor
-
-Submitted : Thu, November 5 2015 by Chen Huang
+
```
+Name of QuantLet: MSM_VaRandES
-
-
-
-### R Code:
-```r
-
-# clear all variables
-rm(list = ls(all = TRUE))
-graphics.off()
+Published in: MSM
-dlognormalLoss = function(x) {
- dlnorm(x, 0.5, 0.3) # the density function
-}
+Description: Plots Value at Risk and Expected Shortfall in one figure and shows the relationship between VaR and ES.
-plognormalLoss = function(x) {
- plnorm(x, 0.5, 0.3) # the distribution function
-}
+Keywords:
+- VaR
+- expected shortfall
+- lognormal
+- pdf
+- cdf
+- plot
-curve(plognormalLoss, 0, 4, xlab = "Loss", ylab = "", lwd = 2)
-curve(dlognormalLoss, 0, 4, col = " black", lty = 2, lwd = 2, add = TRUE)
+Author: Chen Huang, Fulvio Raddi
-# Fill in the part beyond VaR with shadow
-x = seq(2.42, 4, length = 100)
-y = dlognormalLoss(x)
-x = c(2.42, x)
-y = c(dlognormalLoss(4), y)
-polygon(x, y, col = "grey", border = "grey")
-text(3.5, 0.2, expression(P(S > VaR[alpha]) == alpha))
-arrows(3, 0.2, 2.7, 0.05, lwd = 2)
+Author [New]: Torsten Becker, Viktor Sandor
-mtext(expression(VaR[alpha]), side = 1, at = 2.42)
-
-# Mark the Expected shortfall
-x = seq(2.42, 4, length = 100)
-y = plognormalLoss(x)
-x = c(0, x, 0)
-y = c(0.9, y, plognormalLoss(4))
-polygon(x, y, density = 20, col = "grey", border = "black", angle = 45)
-text(0.3, 0.93, expression(1 - alpha == 0.9))
-text(1.6, 0.95, expression(alpha * ES[alpha](X)))
-curve(plognormalLoss, 0, 4, lwd = 2, add = TRUE)
-curve(dlognormalLoss, 0, 4, col = "black", lty = 2, lwd = 2, add = TRUE)
-
-segments(2.42, -0.25, 2.42, 0.9)
-segments(-0.4, 0.9, 2.42, 0.9)
-
-legend(x = 2.5, y = 0.5, c("PDF", "CDF"), lty = c(2, 1))
+Submitted: Thu, November 5 2015 by Chen Huang
```
+
+
+
+
diff --git a/MSM_VaRandES/VaRandES.ipynb b/MSM_VaRandES/VaRandES.ipynb
new file mode 100644
index 0000000..ac04c68
--- /dev/null
+++ b/MSM_VaRandES/VaRandES.ipynb
@@ -0,0 +1,110 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "8610633f-ea63-410d-9ab0-480b425999ac",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "from scipy.stats import lognorm\n",
+ "\n",
+ "# Parameters for lognormal distribution\n",
+ "mu = 0.5\n",
+ "sigma = 0.3\n",
+ "s = sigma\n",
+ "scale = np.exp(mu)\n",
+ "\n",
+ "# Define the PDF and CDF\n",
+ "def dlognormal_loss(x):\n",
+ " return lognorm.pdf(x, s, scale=scale)\n",
+ "\n",
+ "def plognormal_loss(x):\n",
+ " return lognorm.cdf(x, s, scale=scale)\n",
+ "\n",
+ "# Plot the CDF\n",
+ "x_vals = np.linspace(0, 4, 400)\n",
+ "plt.plot(x_vals, plognormal_loss(x_vals), color = 'blue', label='CDF', linewidth=2)\n",
+ "\n",
+ "# Plot the PDF\n",
+ "plt.plot(x_vals, dlognormal_loss(x_vals), label='PDF', color='black', linestyle='--', linewidth=2)\n",
+ "\n",
+ "# Fill area beyond VaR (shadow region)\n",
+ "var_alpha = 2.42\n",
+ "x_fill = np.linspace(var_alpha, 4, 100)\n",
+ "y_fill = dlognormal_loss(x_fill)\n",
+ "plt.fill_between(x_fill, y_fill, color='grey', alpha=0.5)\n",
+ "\n",
+ "# Add arrow and text for P(S > VaR[alpha]) == alpha\n",
+ "plt.text(3.1, 0.2, r'$P(S > VaR_{\\alpha}) = \\alpha$', fontsize=12)\n",
+ "plt.annotate('', xy=(2.7, 0.05), xytext=(3, 0.2),\n",
+ " arrowprops=dict(arrowstyle='->', lw=3))\n",
+ "\n",
+ "# Mark VaR[alpha]\n",
+ "plt.axvline(x=var_alpha, ymin=0, ymax=0.9, color='black', linestyle='-')\n",
+ "plt.axhline(y=0.9, xmin=0, xmax=var_alpha/4, color='black', linestyle='-')\n",
+ "plt.text(var_alpha, -0.02, r'$VaR_{\\alpha}$', ha='center', va='top')\n",
+ "\n",
+ "# Fill for expected shortfall (striped)\n",
+ "x_es = np.linspace(var_alpha, 4, 100)\n",
+ "y_es = plognormal_loss(x_es)\n",
+ "x_poly = np.concatenate(([0], x_es, [0]))\n",
+ "y_poly = np.concatenate(([0.9], y_es, [plognormal_loss(4)]))\n",
+ "plt.fill(x_poly, y_poly, facecolor='grey', edgecolor='black', hatch='/', linewidth=1, alpha=0.6)\n",
+ "\n",
+ "plt.text(0.3, 0.93, r'$1 - \\alpha = 0.9$', fontsize=12)\n",
+ "plt.text(1.6, 0.95, r'$\\alpha \\cdot ES_{\\alpha}(X)$', fontsize=12)\n",
+ "\n",
+ "# Replot curves for clarity\n",
+ "plt.plot(x_vals, plognormal_loss(x_vals), color='blue', linewidth=2)\n",
+ "plt.plot(x_vals, dlognormal_loss(x_vals), color='black', linestyle='--', linewidth=2)\n",
+ "\n",
+ "# Legend\n",
+ "\n",
+ "\n",
+ "# Labels and display\n",
+ "plt.xlabel('Loss')\n",
+ "plt.ylim(-0.05, 1.05)\n",
+ "plt.xlim(0, 4)\n",
+ "plt.grid(True)\n",
+ "plt.title('Lognormal Loss Distribution: PDF and CDF')\n",
+ "plt.legend(loc='upper left')\n",
+ "plt.show()\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python [conda env:base] *",
+ "language": "python",
+ "name": "conda-base-py"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/MSMasprob/MSMasprob.py b/MSMasprob/MSMasprob.py
new file mode 100644
index 0000000..1dad933
--- /dev/null
+++ b/MSMasprob/MSMasprob.py
@@ -0,0 +1,27 @@
+# imports
+import numpy as np
+import matplotlib.pyplot as plt
+
+# plotting settings
+plt.style.use('seaborn')
+plt.rcParams['figure.figsize'] = (16, 8)
+
+# parameters
+n = 1000
+k = np.floor(np.log(n)/np.log(2)) - 1
+x = np.zeros([n, 10])
+x[0] = 1
+z = np.array([0.5, 0.2, 0.4, 0.6, 0.8])
+
+for s in range(2, len(z)+1):
+ for i in range(1, int(k+1)):
+ for j in range(0, 2**i + 1):
+ t = 2**i + j
+ x[t, 1] = (j * 2**(-i) <= 0.5) & (0.5 < (j + 1) * 2**(-i))
+ x[t, s] = (j * 2**(-i) <= z[s-1]) & (z[s-1] < (j + 1) * 2**(-i))
+ x = x * 1
+
+# Plot the time series
+plt.plot(x[1:400, 1], 'o', c = 'b', ms=5)
+plt.plot(x[1:400, 2], 'o', c = 'g', ms=5)
+plt.plot(x[1:400, 5], 'o', c = 'r', ms=5);
diff --git a/MSMasprob/MSMasprob.png b/MSMasprob/MSMasprob_R.png
similarity index 100%
rename from MSMasprob/MSMasprob.png
rename to MSMasprob/MSMasprob_R.png
diff --git a/MSMasprob/MSMasprob_py.png b/MSMasprob/MSMasprob_py.png
new file mode 100644
index 0000000..7cc6ac0
Binary files /dev/null and b/MSMasprob/MSMasprob_py.png differ
diff --git a/MSMasprob/Metainfo.txt b/MSMasprob/Metainfo.txt
index 7140696..798734c 100755
--- a/MSMasprob/Metainfo.txt
+++ b/MSMasprob/Metainfo.txt
@@ -3,10 +3,7 @@ Name of QuantLet : MSMasprob
Published in : MSM
-Description : 'Displays an example of which meets the convergence in
-mean square but not convergence in almost sure series of the example.
-We select n = 400 and plot three cases: the initial value of
-Z = 0.5 (blue), 0.2 (green), and 0.8 (dark red).'
+Description : 'Displays an example of which meets the convergence in mean square but not convergence in almost sure series of the example. We select n = 400 and plot three cases: the initial value of Z = 0.5 (blue), 0.2 (green), and 0.8 (dark red).'
Keywords :
- random-number-generation
@@ -21,9 +18,8 @@ See also :
- MSMpdfasymmetric
- SFSmsr1
-Author : Xiu Xu
+Author: Xiu Xu, Jacek Wiland
-Submitted : Thu, November 5 2015 by Chen Huang
+Submitted : December 15 2020
-Example : 'Plot of the series of a random variable satisfying convergence
-in mean square but not convergence in almost sure.'
+Example : 'Plot of the series of a random variable satisfying convergence in mean square but not convergence in almost sure.'
diff --git a/MSMasprob/README.md b/MSMasprob/README.md
index 0ed993b..f7d88b0 100644
--- a/MSMasprob/README.md
+++ b/MSMasprob/README.md
@@ -1,62 +1,41 @@
+
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMasprob** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMasprob
+```
+Name of QuantLet: MSMasprob
-Published in : MSM
+Published in: MSM
-Description : 'Displays an example of which meets the convergence in mean square but not
-convergence in almost sure series of the example. We select n = 400 and plot three cases: the
-initial value of Z = 0.5 (blue), 0.2 (green), and 0.8 (dark red).'
+Description: Displays an example of which meets the convergence in mean square but not convergence in almost sure series of the example. We select n = 400 and plot three cases: the initial value of Z = 0.5 (blue), 0.2 (green), and 0.8 (dark red).
-Keywords : random-number-generation, process, dynamic, simulation, plot
+Keywords:
+- random-number-generation
+- process
+- dynamic
+- simulation
+- plot
-See also : LAWS, clt, MSMpdfasymmetric, SFSmsr1
+See also:
+- LAWS
+- clt
+- MSMpdfasymmetric
+- SFSmsr1
-Author : Xiu Xu
+Author: Xiu Xu, Jacek Wiland
-Submitted : Thu, November 5 2015 by Chen Huang
+Submitted: December 15 2020
-Example : 'Plot of the series of a random variable satisfying convergence in mean square but not
-convergence in almost sure.'
+Example: Plot of the series of a random variable satisfying convergence in mean square but not convergence in almost sure.
```
+
+
+
-
-
-
-### R Code:
-```r
+
+
+
-# clear history
-rm(list = ls(all = TRUE))
-graphics.off()
-
-n = 1000
-k = floor(log(n)/log(2)) - 1
-x = matrix(0, nrow = n, ncol = 10)
-x[1, ] = 1
-
-z = c(0.5, 0.2, 0.4, 0.6, 0.8)
-for (s in seq(2, length(z))) {
- for (i in seq(1, k)) {
- for (j in seq(0, 2^i)) {
- t = 2^i + j
- x[t, 1] = (j * 2^(-i) <= 0.5) & (0.5 < (j + 1) * 2^(-i))
- x[t, s] = (j * 2^(-i) <= z[s]) & (z[s] < (j + 1) * 2^(-i))
- x = x * 1
- }
- }
-}
-
-# Plot the time series
-plot(x[1:400, 1], col = "blue", type = "p", pch = 20, lwd = 3,
- ylim = c(-0.05, 1.1), ylab = "", xlab = "", cex.lab = 2, cex.axis = 2)
-points(x[1:400, 2], col = "darkolivegreen4", type = "p", pch = 20, lwd = 3)
-points(x[1:400, 5], col = "red3", type = "p", pch = 20, lwd = 3)
-
-```
diff --git a/MSMasymmetricnormal/README.md b/MSMasymmetricnormal/README.md
index ce5ac1e..1814e05 100644
--- a/MSMasymmetricnormal/README.md
+++ b/MSMasymmetricnormal/README.md
@@ -1,63 +1,28 @@
-
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMasymmetricnormal** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMasymmetricnormal
-
-Published in : MSM
-
-Description : Plots the density of right and left skewed asymmetric normal distributions.
-
-Keywords : asymmetric, standard-normal, skewness, pdf, histogram
-
-Author [New] : Luis Alejandro Sarmiento Abogado
-
-Submitted : Mon, February 08 2016 by Chen Huang
+
```
+Name of QuantLet: MSMasymmetricnormal
-
-
-
-
-
-### R Code:
-```r
+Published in: MSM
-## clear history
-rm(list = ls(all = TRUE))
-graphics.off()
+Description: Plots the density of right and left skewed asymmetric normal
-## install and load packages
-libraries = c("fGarch")
-lapply(libraries, function(x) if (!(x %in% installed.packages())) {
- install.packages(x)
-})
-lapply(libraries, library, quietly = TRUE, character.only = TRUE)
+Keywords: asymmetric, standard-normal, skewness, pdf, histogram
-## Generate right skewed random numbers
-r = rsnorm(n = 1e+05, xi = 2)
+Author [New]: Luis Alejandro Sarmiento Abogado
-## Plot the distribution
-hist(r, n = 100, probability = TRUE, xlab = "", border = "white", col = "red", main = "Right Skewed Distribution")
-box()
+Submitted: Mon, February 08 2016 by Chen Huang
-## Compute the density
-d = density(r)
-lines(d, lwd = 2, col = "blue")
-
-# Left Skewed generation of random numbers
-rr = rsnorm(n = 1e+05, xi = -2)
-
-# Plot the given distribution and correspondent histogram
-hist(rr, n = 100, probability = TRUE, border = "white", col = "green", main = "Left Skewed Distribution", xlab = "")
-box()
+```
+
+
+
-## Compute the density
-dr = density(rr)
-lines(dr, lwd = 2)
+
+
+
-```
diff --git a/MSMasymptoticnormality1/README.md b/MSMasymptoticnormality1/README.md
index a820e4e..d26de41 100644
--- a/MSMasymptoticnormality1/README.md
+++ b/MSMasymptoticnormality1/README.md
@@ -1,69 +1,24 @@
-
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMasymptoticnormality1** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMasymptoticnormality1
-
-Published in : MSM
-
-Description : 'Transforms a random variable with a given mean and variance to an asymptotic
-standard normal distribution.'
-
-Keywords : standard-normal, asymptotic, graphical representation, pdf, random
-
-Author [New] : Luis Alejandro Sarmiento Abogado
-
-Submitted : Mon, February 08 2016 by Chen Huang
+
```
+Name of QuantLet: MSMasymptoticnormality1
-
-
+Published in: MSM
-### R Code:
-```r
+Description: Transforms a random variable with a given mean and
-## clear history
-rm(list = ls(all = TRUE))
-graphics.off()
+Keywords: standard-normal, asymptotic, graphical representation, pdf, random
-## Generate a set of random variables following a normal distribution
-m = 2
-s = 0.5
+Author [New]: Luis Alejandro Sarmiento Abogado
-random = rnorm(n = 1e+05, mean = m, sd = s)
-
-## Determine their correspondent means, standard deviations and variances
-mu = mean(random)
-sd = sd(random)
-var = var(random)
-
-## Set the transformation function
-Y = function(mu, sd, random) {
- (random - mu)/sd
-}
-
-## Compute the new set of random variables under standard normal distribution
-X = (random - mu)/sd
-
-## Determine the mean and variance of our transformation
-mean(X)
-var(X)
-
-## Plot the results to show that X is asymptotically normal distributed
-
-## Plot initial distribution
-plot(density(random), col = "red", xlim = c(-m * 2, m * 2), ylim = c(0, 1), lwd = 2,
- main = "Densities comparison", xlab = "")
-
-## Plot Transformation
-lines(density(X), col = "blue", lwd = 2)
-
-## Set the legend
-legend("topleft", legend = c("Standard Normal Distribution", "Initial Distribution"),
- lty = 1, col = c("blue", "red"), cex = 0.9)
+Submitted: Mon, February 08 2016 by Chen Huang
```
+
+
+
+
diff --git a/MSMasymptoticnormality2/README.md b/MSMasymptoticnormality2/README.md
index 0019127..bbf7d91 100644
--- a/MSMasymptoticnormality2/README.md
+++ b/MSMasymptoticnormality2/README.md
@@ -1,76 +1,30 @@
-
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMasymptoticnormality2** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMasymptoticnormality2
-
-Published in : MSM
-
-Description : 'Shows an example of random variables not following asymptotic normality. For this
-specific example a set of Cauchy random variables was selected and its asymptotic distribution was
-compared with binomial and normal distributions.'
-
-Keywords : 'standard-normal, asymptotic, graphical representation, pdf, Cauchy,distribution,
-binomial'
-
-Author [New] : Luis Alejandro Sarmiento Abogado
-
-Submitted : Mon, February 08 2016 by Chen Huang
+
```
+Name of QuantLet: MSMasymptoticnormality2
-
-
-
-### R Code:
-```r
-
-## clear history
-rm(list = ls(all = TRUE))
-graphics.off()
-
-## install and load packages
-libraries = c("MASS", "KernSmooth")
-lapply(libraries, function(x) if (!(x %in% installed.packages())) {
- install.packages(x)
-})
-lapply(libraries, library, quietly = TRUE, character.only = TRUE)
+Published in: MSM
-## Setting parameters
-p = 0.5
-n = 1000
+Description: Shows an example of random variables not following asymptotic
-## Random generation from binomial distribution with parameters 1000*n and p
+Keywords:
+- standard-normal
+- asymptotic
+- graphical representation
+- pdf
+- Cauchy,distribution
+- binomial
-bsample = rbinom(n * 1000, 1, p)
+Author [New]: Luis Alejandro Sarmiento Abogado
-## Create a matrix of binomial random variables
-
-bsamplem = matrix(bsample, n, 1000)
-
-## Estimate kernel density
-
-bden = bkde((colMeans(bsamplem) - p)/sqrt(p * (1 - p)/n))
-
-## Plot the three distributions
-plot(bden, col = "blue3", type = "l", lty = 1, lwd = 1, xlab = "", ylab = "Density",
- main = "Cauchy, Normal and Binomial distributions", cex.lab = 1, cex.axis = 1,
- ylim = c(0, 0.45))
-
-plot(dnorm, -4, 4, n = 1000, col = "Green", add = TRUE)
-
-plot(dcauchy, -4, 4, n = 1000, col = "red", add = TRUE)
-
-## Set the legend
-legend("topleft", c("Binomial Distribution", "Normal Distribution", "Cauchy Distribution"),
- lty = 1, col = c("blue", "green", "red"), cex = 0.9)
-
-
-
-
-
+Submitted: Mon, February 08 2016 by Chen Huang
```
+
+
+
+
diff --git a/MSMcdfnormal/MSMcdfnormal.py b/MSMcdfnormal/MSMcdfnormal.py
new file mode 100644
index 0000000..2eab402
--- /dev/null
+++ b/MSMcdfnormal/MSMcdfnormal.py
@@ -0,0 +1,16 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from scipy.stats import norm
+
+# Simulate data
+x = np.arange(-4, 4.2, 0.2)
+y = norm.cdf(x, loc=0, scale=1)
+
+# Plot the CDF
+plt.plot(x, y, color='blue', linewidth=2.5)
+plt.axvline(x=0, color='black', linestyle='--')
+plt.xlabel("X")
+plt.ylabel("CDF")
+plt.title("CDF of Standard Normal Distribution")
+plt.grid(True)
+plt.show()
diff --git a/MSMcdfnormal/Metainfo.txt b/MSMcdfnormal/Metainfo.txt
index 5e230eb..39c4cf0 100755
--- a/MSMcdfnormal/Metainfo.txt
+++ b/MSMcdfnormal/Metainfo.txt
@@ -15,8 +15,10 @@ Keywords :
See also : MSMpdfnormal
-Author : Xiu Xu, Alla Petukhina, Shi Chen
+Author : Xiu Xu, Alla Petukhina, Shi Chen, Rahul Tak
Submitted : Fri, October 16 2015 by Shi Chen
+updated : Fri, June 13 2015 by Rahul Tak
+
Example : A CDF plot of standard normal distribution.
diff --git a/MSMcdfnormal/README.md b/MSMcdfnormal/README.md
index 61e60b5..8a6772e 100644
--- a/MSMcdfnormal/README.md
+++ b/MSMcdfnormal/README.md
@@ -1,42 +1,33 @@
+
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMcdfnormal** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMcdfnormal
+```
+Name of QuantLet: MSMcdfnormal
-Published in : MSM
+Published in: MSM
-Description : 'Simulates data from normal distribution and plots its cumulative density function
-(cdf).'
+Description: Simulates data from normal distribution
-Keywords : cdf, standard-normal, distribution, random, plot
+Keywords:
+- cdf
+- standard-normal
+- distribution
+- random
+- plot
-See also : MSMpdfnormal
+See also: MSMpdfnormal
-Author : Xiu Xu, Alla Petukhina, Shi Chen
+Author: Xiu Xu, Alla Petukhina, Shi Chen
-Submitted : Fri, October 16 2015 by Shi Chen
+Submitted: Fri, October 16 2015 by Shi Chen
-Example : A CDF plot of standard normal distribution.
+Example: A CDF plot of standard normal distribution.
```
+
+
+
-
-
-
-### R Code:
-```r
-
-# clear history
-rm(list = ls(all = TRUE))
-graphics.off()
-
-# Simulates data and plot the CDF
-plot(seq(-4, 4, 0.2), pnorm(seq(-4, 4, 0.2), 0, 1), col = "blue", type = "l", lwd = 2.5,
- ylab = "CDF", xlab = "X")
-abline(v = 0)
-
-```
diff --git a/MSMedgeworth/MSMedgeworth.py b/MSMedgeworth/MSMedgeworth.py
new file mode 100644
index 0000000..461515d
--- /dev/null
+++ b/MSMedgeworth/MSMedgeworth.py
@@ -0,0 +1,41 @@
+import numpy as np
+import pandas as pd
+from scipy.stats import norm, expon
+from tabulate import tabulate # optional, for xtable-like output
+
+# Data and parameters
+x = np.arange(-2, 2.2, 0.2)
+beta1 = 2
+beta2 = 6
+n = 5
+
+# Standard normal CDF
+phi = norm.cdf(x, loc=0, scale=1)
+
+# First-order Edgeworth expansion
+edge1 = norm.cdf(x) - norm.pdf(x) * (beta1 * (x**2 - 1) / (6 * np.sqrt(n)))
+
+# Second-order Edgeworth expansion
+edge2 = norm.cdf(x) - norm.pdf(x) * (
+ (beta1 * (x**2 - 1) / (6 * np.sqrt(n))) +
+ (beta2 * (x**3 - 3 * x) / (24 * n)) +
+ ((beta1**2) * (x**5 - 10 * x**3 + 15 * x) / (72 * n))
+)
+
+# Exponential CDF (note: this is not really an "exact" equivalent to Edgeworth)
+exact = expon.cdf(x, scale=1)
+
+# Combine results into a DataFrame
+result = pd.DataFrame({
+ "x": x,
+ "phi": phi,
+ "edge1": edge1,
+ "edge2": edge2,
+ "exact": exact
+})
+
+# Round for display
+result_rounded = result.round(4)
+
+# Optional: pretty print like xtable
+print(tabulate(result_rounded, headers='keys', tablefmt='grid', showindex=False))
diff --git a/MSMedgeworth/Metainfo.txt b/MSMedgeworth/Metainfo.txt
index 8e45377..0767c38 100644
--- a/MSMedgeworth/Metainfo.txt
+++ b/MSMedgeworth/Metainfo.txt
@@ -18,7 +18,9 @@ See also :
- MSMpdfasymmetric
- MSMasprob
-Author : Xiu Xu
+Author : Xiu Xu, Rahul Tak
Submitted : Mon, Feb 1 2016 by Xiu Xu
+Updated : Fri, June 13 2025 by Rahul Tak
+
diff --git a/MSMedgeworth/README.md b/MSMedgeworth/README.md
index 0f9408b..2c4e085 100644
--- a/MSMedgeworth/README.md
+++ b/MSMedgeworth/README.md
@@ -1,52 +1,34 @@
+
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMedgeworth** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMedgeworth
+```
+Name of QuantLet: MSMedgeworth
-Published in : MSM
+Published in: MSM
-Description : 'Calculate the normal and edgeworth approximations of the normalized sample of size 5
-from an exponential pdf.'
+Description: Calculate the normal and edgeworth approximations
-Keywords : normal, distribution, normal-distribution, normal approximation, parameter, exponential
+Keywords:
+- normal
+- distribution
+- normal-distribution
+- normal approximation
+- parameter
+- exponential
-See also : MSMpdfasymmetric, MSMasprob
+See also:
+- MSMpdfasymmetric
+- MSMasprob
-Author : Xiu Xu
+Author: Xiu Xu
-Submitted : Mon, Feb 1 2016 by Xiu Xu
+Submitted: Mon, Feb 1 2016 by Xiu Xu
```
+
+
+
-
-
-
-### R Code:
-```r
-# clear history
-rm(list = ls(all = TRUE))
-graphics.off()
-
-# install and load packages
-libraries = c("xtable", "formatR")
-lapply(libraries, function(x) if (!(x %in% installed.packages())) {
- install.packages(x)
-})
-lapply(libraries, library, quietly = TRUE, character.only = TRUE)
-
-x = seq(-2, 2, 0.2)
-beta1 = 2
-beta2 = 6
-n = 5
-phi = pnorm(x, mean = 0, sd = 1)
-edge1 = pnorm(x, mean = 0, sd = 1) - dnorm(x, mean = 0, sd = 1) * (beta1 * (x^2 - 1)/(6 * n^(0.5)))
-edge2 = pnorm(x, mean = 0, sd = 1) - dnorm(x, mean = 0, sd = 1) * (beta1 * (x^2 - 1)/(6 * n^(0.5))
- + beta2 * (x^3 - 3 * x)/(24 * n) + (beta1^2) * (x^5 - 10 * x^3 + 15 * x)/(72 * n))
-exact = pexp(x, rate = 1)
-result = cbind(x, phi, edge1, edge2, exact)
-xtable(result, digits = 4)
-```
diff --git a/MSMpdfasymmetric/MSMpdfasymmetric.py b/MSMpdfasymmetric/MSMpdfasymmetric.py
new file mode 100644
index 0000000..38c2e84
--- /dev/null
+++ b/MSMpdfasymmetric/MSMpdfasymmetric.py
@@ -0,0 +1,49 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from scipy.stats import skewnorm
+
+# Function to convert R's skew-normal parameters to scipy's
+def dsn(x, xi, omega, alpha):
+ a = alpha # shape parameter
+ loc = xi # location
+ scale = omega # scale
+ return skewnorm.pdf(x, a, loc=loc, scale=scale)
+
+def rsn(size, xi, omega, alpha):
+ a = alpha
+ loc = xi
+ scale = omega
+ return skewnorm.rvs(a, loc=loc, scale=scale, size=size)
+
+# Define x-ranges
+x1 = np.arange(-3, 1.001, 0.001)
+x2 = np.arange(-2, 2.001, 0.001)
+x3 = np.arange(-1, 3.001, 0.001)
+
+# Plotting
+fig, axs = plt.subplots(1, 3, figsize=(15, 4))
+
+# First plot: alpha = -5
+axs[0].plot(x1, dsn(x1, xi=0, omega=1, alpha=-5), color='chocolate', linewidth=2.5)
+axs[0].axvline(np.median(rsn(len(x1), xi=0, omega=1, alpha=-5)), color='black', linestyle='--')
+axs[0].set_xlabel("X")
+axs[0].set_ylabel("PDF")
+axs[0].set_ylim([0, 0.9])
+axs[0].set_title("Skew-Normal α = -5")
+
+# Second plot: alpha = 0
+axs[1].plot(x2, dsn(x2, xi=0, omega=0.55, alpha=0), color='green', linewidth=2.5)
+axs[1].axvline(np.median(rsn(len(x2), xi=0, omega=0.55, alpha=0)), color='black', linestyle='--')
+axs[1].set_xlabel("X")
+axs[1].set_ylim([0, 0.9])
+axs[1].set_title("Normal (α = 0)")
+
+# Third plot: alpha = 5
+axs[2].plot(x3, dsn(x3, xi=0, omega=1, alpha=5), color='blue', linewidth=2.5)
+axs[2].axvline(np.median(rsn(len(x3), xi=0, omega=1, alpha=5)), color='black', linestyle='--')
+axs[2].set_xlabel("X")
+axs[2].set_ylim([0, 0.9])
+axs[2].set_title("Skew-Normal α = 5")
+
+plt.tight_layout()
+plt.show()
diff --git a/MSMpdfasymmetric/Metainfo.txt b/MSMpdfasymmetric/Metainfo.txt
index 36b4be6..959c3fe 100755
--- a/MSMpdfasymmetric/Metainfo.txt
+++ b/MSMpdfasymmetric/Metainfo.txt
@@ -20,9 +20,11 @@ See also :
- SFEbinomv
- SFEBinomial
-Author : Xiu Xu, Shi Chen
+Author : Xiu Xu, Shi Chen, Rahul Tak
Submitted : Fri, October 16 2015 by Shi Chen
+updated : Fri, June 13 2025 by Rahul Tak
+
Example : 'Plot of left-skewed normal pdf, standard normal pdf, right-skewed
normal pdf.'
diff --git a/MSMpdfasymmetric/README.md b/MSMpdfasymmetric/README.md
index 4d16279..678195c 100644
--- a/MSMpdfasymmetric/README.md
+++ b/MSMpdfasymmetric/README.md
@@ -1,61 +1,37 @@
-
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMpdfasymmetric** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMpdfasymmetric
-
-Published in : MSM
-
-Description : 'Plots of left-skewed normal distribution (shape parameter alpha = - 5), symmetric
-normal and right-skewed normal distribution (shape parameter alpha = 5).'
-
-Keywords : pdf, standard, normal-distribution, asymmetric, skewness, plot
-
-See also : MSMasprob, SFEbinomv, SFEBinomial
-
-Author : Xiu Xu, Shi Chen
-
-Submitted : Fri, October 16 2015 by Shi Chen
-
-Example : Plot of left-skewed normal pdf, standard normal pdf, right-skewed normal pdf.
+
```
+Name of QuantLet: MSMpdfasymmetric
-
+Published in: MSM
+Description: Plots of left-skewed normal distribution
-### R Code:
-```r
+Keywords:
+- pdf
+- standard
+- normal-distribution
+- asymmetric
+- skewness
+- plot
-# clear history
-rm(list = ls(all = TRUE))
-graphics.off()
+See also:
+- MSMasprob
+- SFEbinomv
+- SFEBinomial
-# install and load packages
-libraries = c("sn")
-lapply(libraries, function(x) if (!(x %in% installed.packages())) {
- install.packages(x)
-})
-lapply(libraries, library, quietly = TRUE, character.only = TRUE)
+Author: Xiu Xu, Shi Chen
-par(mfrow = c(1, 3))
-x1 = seq(-3, 1, 0.001)
-x2 = seq(-2, 2, 0.001)
-x3 = seq(-1, 3, 0.001)
+Submitted: Fri, October 16 2015 by Shi Chen
-plot(x1, dsn(x1, xi = 0, omega = 1, alpha = -5, log = FALSE), type = "l", lwd = 2.5,
- ylab = "PDF", xlab = "X", col = "chocolate3", ylim = c(0, 0.9))
-abline(v = median(rsn(x1, xi = 0, omega = 1, alpha = -5)))
-
-plot(x2, dsn(x2, xi = 0, omega = 0.55, alpha = 0, log = FALSE), type = "l", lwd = 2.5,
- ylab = "", xlab = "X", col = "chartreuse4", ylim = c(0, 0.9))
-abline(v = median(rsn(x2, xi = 0, omega = 0.55, alpha = 0)))
-
-plot(x3, dsn(x3, xi = 0, omega = 1, alpha = 5, log = FALSE), type = "l", lwd = 2.5,
- ylab = "", xlab = "X", col = "blue3", ylim = c(0, 0.9))
-abline(v = median(rsn(x3, xi = 0, omega = 1, alpha = 5)))
+Example: Plot of left-skewed normal pdf, standard normal pdf, right-skewed
```
+
+
+
+
diff --git a/MSMpdfbinomial/README.md b/MSMpdfbinomial/README.md
new file mode 100644
index 0000000..9282f88
--- /dev/null
+++ b/MSMpdfbinomial/README.md
@@ -0,0 +1,38 @@
+
+
+```
+Name of QuantLet: MSMpdfbinomial
+
+Published in: MSM
+
+Description: Plots three PDFs of the Binomial distribution with
+
+Keywords:
+- pdf
+- binomial
+- distribution
+- parameter
+- visualization
+- plot
+- discrete
+
+See also:
+- MSMasprob
+- SFEbinomv
+- SFEBinomial
+
+Author: Xiu Xu
+
+Submitted: Wed, January 16, 2019, Daniel Jacob
+
+Example: Plot of the PDF of binomial distribution.
+
+```
+
+
+
+
diff --git a/MSMpdfmultinormal/MSMpdfmultinormal.R b/MSMpdfmultinormal/MSMpdfmultinormal.R
new file mode 100644
index 0000000..3103631
--- /dev/null
+++ b/MSMpdfmultinormal/MSMpdfmultinormal.R
@@ -0,0 +1,40 @@
+# ------------------------------------------------------------------------------
+# Course: MSM - Selected Topics of Mathematical Statistics
+# ------------------------------------------------------------------------------
+# Quantlet: MSMpdfmultinormal
+# ------------------------------------------------------------------------------
+# Description: plot multimornal density function
+# ------------------------------------------------------------------------------
+# Usage:
+# ------------------------------------------------------------------------------
+# Inputs:
+# ------------------------------------------------------------------------------
+# Output:
+# ------------------------------------------------------------------------------
+# Keywords: multinormal density
+# ------------------------------------------------------------------------------
+# See also:
+# ------------------------------------------------------------------------------
+# Author: Xiu Xu 20150603
+# ------------------------------------------------------------------------------
+
+graphics.off()
+rm(list=ls()) #remove variable definitions
+
+#Load required packages
+library(MASS)
+
+getwd()
+setwd("")
+
+bivn <- mvrnorm(1000, mu = c(0, 0), Sigma = matrix(c(1, .5, .5, 1), 2))
+
+# kernel density estimate
+bivn.kde <- kde2d(bivn[,1], bivn[,2], n = 50)
+
+# plot your results
+name=paste("Fig_MSMpdfmultinormal",".pdf",sep="")
+pdf(name)
+persp(bivn.kde, phi = 45, theta = 30, xlab="X1", ylab="X2", zlab="PDF")
+dev.off()
+
diff --git a/MSMpdfmultinormal/MSMpdfmultinormal.png b/MSMpdfmultinormal/MSMpdfmultinormal.png
new file mode 100644
index 0000000..0bf7fd7
Binary files /dev/null and b/MSMpdfmultinormal/MSMpdfmultinormal.png differ
diff --git a/MSMpdfmultinormal/Metainfo.txt b/MSMpdfmultinormal/Metainfo.txt
new file mode 100644
index 0000000..a953af5
--- /dev/null
+++ b/MSMpdfmultinormal/Metainfo.txt
@@ -0,0 +1,23 @@
+Name of QuantLet : MSMpdfmultinormal
+
+Published in : MSM
+
+Description : "Simulates data from a multivariate normal distribution, estimates the PDF by kernel density estimate and plots the result."
+
+Keywords :
+- pdf
+- normal-distribution
+- normal
+- multivariate normal
+- multinormal
+- Kernel density
+- plot
+
+See also :
+- MSMcdfnormal
+- MSMpdfbinomial
+- MSMpdfnormal
+
+Author : Xiu Xu
+
+Submitted : Monday, November 9 2020 by Lucas Umann
\ No newline at end of file
diff --git a/MSMpdfmultinormal/README.md b/MSMpdfmultinormal/README.md
new file mode 100644
index 0000000..92fb56c
--- /dev/null
+++ b/MSMpdfmultinormal/README.md
@@ -0,0 +1,36 @@
+
+
+```
+Name of QuantLet: MSMpdfmultinormal
+
+Published in: MSM
+
+Description: Simulates data from a multivariate normal distribution, estimates the PDF by kernel density estimate and plots the result.
+
+Keywords:
+- pdf
+- normal-distribution
+- normal
+- multivariate normal
+- multinormal
+- Kernel density
+- plot
+
+See also:
+- MSMcdfnormal
+- MSMpdfbinomial
+- MSMpdfnormal
+
+Author: Xiu Xu
+
+Submitted: Monday, November 9 2020 by Lucas Umann
+
+```
+
+
+
+
diff --git a/MSMpdfnormal/README.md b/MSMpdfnormal/README.md
index 9db3087..4ca6661 100644
--- a/MSMpdfnormal/README.md
+++ b/MSMpdfnormal/README.md
@@ -1,40 +1,33 @@
+
-[ ](http://quantlet.de/)
-
-## [ ](http://quantlet.de/) **MSMpdfnormal** [ ](http://quantlet.de/)
-
-```yaml
-
-Name of QuantLet : MSMpdfnormal
+```
+Name of QuantLet: MSMpdfnormal
-Published in : MSM
+Published in: MSM
-Description : 'Simulates data from the standard normal distribution N(0,1) and then plots the PDF
-function.'
+Description: Simulates data from the standard normal distribution
-Keywords : pdf, normal-distribution, normal, standard, plot
+Keywords:
+- pdf
+- normal-distribution
+- normal
+- standard
+- plot
-See also : MSMcdfnormal, MSMpdfbinomial
+See also:
+- MSMcdfnormal
+- MSMpdfbinomial
-Author : Xiu Xu
+Author: Xiu Xu
-Submitted : Fri, October 16 2015 by Shi Chen
+Submitted: Fri, October 16 2015 by Shi Chen
```
+
+
+
-
-
-
-### R Code:
-```r
-
-# clear history
-rm(list = ls(all = TRUE))
-graphics.off()
-
-# Plot the PDF
-plot(seq(-4, 4, 0.2), dnorm(seq(-4, 4, 0.2), 0, 1), col = "blue", type = "l", lwd = 2.5,
- ylab = "PDF", xlab = "X")
-abline(v = 0)
-
-```