Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit8d58ef0b168d6c477c227553a77099d52f878304 (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-05-25 19:56:11 +0300
Committer
 Syndamia <kamen@syndamia.com>
2024-05-25 19:56:11 +0300
Filesd42d0e37a8779eb1dc94d69551e835f3b66398eb
uni-projects-8d58ef0b168d6c477c227553a77099d52f878304.tar
uni-projects-8d58ef0b168d6c477c227553a77099d52f878304.tar.gz
uni-projects-8d58ef0b168d6c477c227553a77099d52f878304.zip
Parent67973c031918ac8da62c8e58145876cdfc72cb19 (diff)
[S/HW2] Roughly implemented R code
2 files changed, 162 insertions, 0 deletions
-rw-r--r--Year 3/Statistics/hw2.r57
-rw-r--r--Year 3/Statistics/hw2.tex105
diff --git a/Year 3/Statistics/hw2.r b/Year 3/Statistics/hw2.r
new file mode 100644
index 0000000..bc207bf
--- /dev/null
+++ b/Year 3/Statistics/hw2.r
@@ -0,0 +1,57 @@
+alpha <- 0.9 # TODO, каква стойност трябва да е
+
+ex1 <- function() {
+ check_null_hyp <- function(n, iters = 10000) {
+ accepts <- 0
+ for (i in 1:iters) {
+ W1 <- rexp(n, 1)
+ W2 <- rexp(n, 1)
+ X <- rowSums(expand.grid(W1, W2))
+ if (shapiro.test(X)$statistic >= alpha) { # TODO, провери дали е >
+ accepts <- accepts + 1
+ }
+ }
+ cat("Заключението е вярно през", (accepts / ex1_iters) * 100, "процента от времето\n")
+ return (rep(n, each=((accepts / ex1_iters) * 100)))
+ }
+
+ all <- c()
+ for (n in 1:6 * 10) {
+ all <- append(all, check_null_hyp(n))
+ }
+ hist(all, breaks=(0:6 * 10))
+}
+
+ex1()
+
+ex2 <- function(greens = 2, whites = 3, yellows = 5) {
+ balls <- append(append(rep("green", greens), rep("white", whites)), rep("yellow", yellows))
+
+ check_hyp <- function(n, iters=10000) {
+ true_hyp <- 0
+ for (i in 1:iters) {
+ sampled_greens <- 0
+
+ for (s in 1:n) {
+ if (sample(balls, 1, replace=TRUE) == "green") {
+ sampled_greens <- sampled_greens + 1
+ }
+ }
+
+ if (sampled_greens / n == 1/5) {
+ true_hyp <- true_hyp + 1
+ }
+ }
+
+ return (rep(n, each=(true_hyp / iters * 100)))
+ }
+
+ all <- c()
+ for (n in c(50, 100, 200, 500)) {
+ all <- append(all, check_hyp(n))
+ }
+ print(all)
+ hist(all, breaks=c(0, 50, 100, 200, 500))
+}
+
+ex2() \ No newline at end of file
diff --git a/Year 3/Statistics/hw2.tex b/Year 3/Statistics/hw2.tex
new file mode 100644
index 0000000..5d0c0c3
--- /dev/null
+++ b/Year 3/Statistics/hw2.tex
@@ -0,0 +1,105 @@
+% Document MUST be built with XeLaTeX!
+\documentclass[11pt,a4paper]{article}
+
+\usepackage[margin=1.5cm]{geometry}
+
+% Поддръжка на български език
+% Thanks to https://tex.stackexchange.com/a/136926
+\usepackage{fontspec}
+\defaultfontfeatures{Ligatures=TeX}\setmainfont{CMU Serif}
+\setsansfont{CMU Sans Serif}
+
+\usepackage[bulgarian,english]{babel}
+
+\usepackage{amsmath} % Математически символи
+\usepackage{extarrows}
+\usepackage{amsfonts} % Още математически символи
+\usepackage{cancel} % Зачертаване
+\usepackage[dvipsnames]{xcolor} % Цветни кутийки + допълнителни цветове
+\usepackage{graphicx} % Изображения
+
+\usepackage{textcomp}
+\usepackage{listings}
+\newfontfamily{\lstsansserif}[Scale=1]{DejaVuSansMono}
+\lstset{
+ basicstyle=\lstsansserif\footnotesize, % the size of the fonts that are used for the code
+ breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
+ breaklines=true, % sets automatic line breaking
+ frame=single, % adds a frame around the code
+ keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
+ numbers=none, % where to put the line-numbers; possible values are (none, left, right)
+ showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
+ showstringspaces=false, % underline spaces within strings only
+ showtabs=false, % show tabs within strings adding particular underscores
+ literate = {-}{-}1{"}{\textquotedbl}1{*}{\normalfont{*}}1,
+}
+
+\usepackage{enumitem}
+\setlist[enumerate]{label=\arabic*.}
+
+\usepackage[pdfauthor={Камен Димитров Младенов, },
+ pdftitle={Решения на задачи от Домашно 1 по ВИС практикум},
+ pdfsubject={},
+ pdfkeywords={},
+ colorlinks=true,
+ urlcolor=blue]{hyperref}
+
+\title{\vspace{-1.5cm}Решения на задачи от Домашно 1 по ВИС практикум}
+\author{Камен Димитров Младенов, FN}
+\date{16.04.2024}
+
+\begin{document}
+
+\maketitle
+
+\paragraph{Задача 1.}
+
+Имаме $24$ ябълки, от които $4$ са червиви. Разпределяме ябълките в $4$ кутии, така че да са с равен брой ябълки. С помощта на симулации намерете приближение на вероятността във всяка кутия да има по една червива ябълка.
+
+\subparagraph{Решение} \hfill
+
+\lstinputlisting[language=R, firstline=1, lastline=19, caption=Сорс-код]{hw1.r}
+
+\begin{lstlisting}[language=R, caption=Получен резултат]
+[1] 0.12
+\end{lstlisting}
+
+Вероятността във всяка кутия да има по една червива ябълка е приблизително 12\%.
+
+\vfill
+
+\paragraph{Задача 2.}
+
+За $\,n=30, 120, 200\,$ генерирайте случайни числа $\,x_1, \ldots, x_n\,$ от експоненциално разпределение с параметър $\,\lambda=1/5\,$ и пресметнете $\,\overline{x} = (x_1 + \ldots + x_n)/n$.
+Повторете $\,N=10000\,$ пъти и ще получите $\,\overline{x}_1, \ldots, \overline{x}_{10000}$. Нека
+
+$$ \widehat{F}(t) = \frac{1}{N} \sum_{i=1}^{N} \mathbb{I}(\overline{x}_i \leq t) ,$$
+където $\,\mathbb{I}(a)\,$ е единица, ако $\,a\,$ е вярно и нула, в противен случай.
+
+\begin{itemize}
+\item Направете графика на $\,\widehat{F}(t)$.
+Може да използвате функцията `plot(x, y, type="l")`.
+
+\item На същата картинка добавете графика на функцията на разпределение на $\,\mathcal{N}(\mu=5, \, \sigma=5/\sqrt{n})$. Двете графики трябва да са с различен цвят или едната да е с пунктирана линия.
+
+\item Трябва да получите три картинки -- по една за всяка стойност на $\,n$.
+\end{itemize}
+
+
+\subparagraph{Решение} \hfill
+
+\lstinputlisting[language=R, firstline=21, caption=Сорс-код]{hw1.r}
+
+Получен резултат при $n = 30$: \newline
+\includegraphics[scale=0.5]{hw1-ex2-plot30.png}
+
+Получен резултат при $n = 120$: \newline
+\includegraphics[scale=0.5]{hw1-ex2-plot120.png}
+
+\newpage
+
+Получен резултат при $n = 200$: \newline
+\includegraphics[scale=0.5]{hw1-ex2-plot200.png}
+
+
+\end{document} \ No newline at end of file