diff options
| Commit | 8d58ef0b168d6c477c227553a77099d52f878304 (patch) | |
|---|---|---|
| Author | 2024-05-25 19:56:11 +0300 | |
| Committer | 2024-05-25 19:56:11 +0300 | |
| Files | d42d0e37a8779eb1dc94d69551e835f3b66398eb | |
| uni-projects-8d58ef0b168d6c477c227553a77099d52f878304.tar uni-projects-8d58ef0b168d6c477c227553a77099d52f878304.tar.gz uni-projects-8d58ef0b168d6c477c227553a77099d52f878304.zip | ||
| Parent | 67973c031918ac8da62c8e58145876cdfc72cb19 (diff) | |
[S/HW2] Roughly implemented R code
2 files changed, 162 insertions, 0 deletions
| -rw-r--r-- | Year 3/Statistics/hw2.r | 57 | ||||
| -rw-r--r-- | Year 3/Statistics/hw2.tex | 105 |
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 |
