diff --git a/Dockerfile b/Dockerfile index 9597a93..2def301 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,18 @@ FROM python:3.10-slim -RUN pip install --upgrade pip \ - && pip install jupyter notebook +# Install system dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + r-base && \ + R --quiet -e "install.packages('Sleuth2')" && \ + R --quiet -e "library(Sleuth2); write.csv(ex0221, file = \"data.csv\")" && \ + apt-get purge -y r-base && \ + apt-get autoremove -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* +# Upgrade pip and install Python packages including rpy2 +RUN pip install --upgrade pip && \ + pip install jupyter notebook pandas numpy matplotlib + +# Set CMD to run Jupyter notebook CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--allow-root", "--no-browser"] - diff --git a/ukol.ipynb b/ukol.ipynb index 4844cdf..35de446 100644 --- a/ukol.ipynb +++ b/ukol.ipynb @@ -2,11 +2,116 @@ "cells": [ { "cell_type": "code", - "execution_count": null, - "id": "7c90184c-5f76-4277-b0ad-aeec2ac37d30", + "execution_count": 1, + "id": "d693757b-4f3a-4162-9300-ec96596a26ec", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "#import csv\n", + "#import math\n", + "#import numpy as np\n", + "#import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "#np.set_printoptions(precision=3)\n", + "#from sympy import *\n", + "#from scipy.stats import norm, uniform, expon, t\n", + "#from scipy.optimize import minimize" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "7c90184c-5f76-4277-b0ad-aeec2ac37d30", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10\n" + ] + } + ], + "source": [ + "K = 28\n", + "L = 8\n", + "M = (((K + L) * 47) % 11) + 1\n", + "print(M)" + ] + }, + { + "cell_type": "markdown", + "id": "503f77b6-1c9d-4406-8b30-ec3b792267e7", + "metadata": {}, + "source": [ + "(1b) Načtěte datový soubor a rozdělte sledovanou proměnnou na příslušné dvě pozorované skupiny.\n", + "Stručně popište data a zkoumaný problém. Pro každou skupinu zvlášť odhadněte střední hodnotu, rozptyl a medián příslušného rozdělení." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "b80d5cec-db0c-42e7-a3b9-296803242269", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"/data.csv\", sep = \";\", decimal = \",\")" + ] + }, + { + "cell_type": "markdown", + "id": "29eef015-c103-4e7f-89e8-2b59526f4b1e", + "metadata": {}, + "source": [ + "(1b) Pro každou skupinu zvlášť odhadněte hustotu a distribuční funkci pomocí histogramu a empirické distribuční funkce." + ] + }, + { + "cell_type": "markdown", + "id": "626d8bce-65af-4659-96e9-c1fbe4ccb3cc", + "metadata": {}, + "source": [ + "(3b) Pro každou skupinu zvlášť najděte nejbližší rozdělení: \n", + "Odhadněte parametry normálního, exponenciálního a rovnoměrného rozdělení.\n", + "Zaneste příslušné hustoty s odhadnutými parametry do grafů histogramu. Diskutujte, které z rozdělení odpovídá pozorovaným datům nejlépe." + ] + }, + { + "cell_type": "markdown", + "id": "6226456c-fdf3-4537-830c-05f8ee7022c5", + "metadata": {}, + "source": [ + "(1b) Pro každou skupinu zvlášť vygenerujte náhodný výběr o 100 hodnotách z rozdělení, \n", + "které jste zvolili jako nejbližší, s parametry odhadnutými v předchozím bodě.\n", + "Porovnejte histogram simulovaných hodnot s pozorovanými daty." + ] + }, + { + "cell_type": "markdown", + "id": "1c5f7d31-ca21-42b4-9a23-1111bbf599b9", + "metadata": {}, + "source": [ + "(1b) Pro každou skupinu zvlášť spočítejte oboustranný 95% konfidenční interval pro střední hodnotu." + ] + }, + { + "cell_type": "markdown", + "id": "53a61e4f-fc67-4237-ab38-f5f9fb7767c5", + "metadata": {}, + "source": [ + "(1b) Pro každou skupinu zvlášť otestujte na hladině významnosti 5 % hypotézu,\n", + "zda je střední hodnota rovná hodnotě K (parametr úlohy), proti oboustranné alternativě.\n", + "Můžete použít buď výsledek z předešlého bodu, nebo výstup z příslušné vestavěné funkce vašeho softwaru." + ] + }, + { + "cell_type": "markdown", + "id": "7007c195-97a3-4cd4-8427-dcc8417eedf8", + "metadata": {}, + "source": [ + "(2b) Na hladině významnosti 5 % otestujte, jestli mají pozorované skupiny stejnou střední hodnotu.\n", + "Typ testu a alternativy stanovte tak, aby vaše volba nejlépe korespondovala s povahou zkoumaného problému." + ] } ], "metadata": {