{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Statystyka i Analiza danych\n", "# Laboratorium 5 - Testy frakcji" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pomocnicze funkcje do rysowania wykresów" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plot_norm <- function(z, z_crit) {\n", " x_max <- max(3, abs(z))\n", " x <- seq(-x_max, x_max, 0.1)\n", " y <- dnorm(x)\n", " plot(x, y, type=\"l\")\n", " abline(v = z, col=\"blue\", lty=2)\n", " for (zc in z_crit) {\n", " if (zc > 0) {\n", " x_c <- c(zc, zc, x[x > zc], max(x))\n", " y_c <- c(0, dnorm(zc), y[x > zc], 0) \n", " } else {\n", " x_c <- c(min(x), x[x < zc], zc, zc)\n", " y_c <- c(0, y[x < zc], dnorm(zc), 0) \n", " }\n", " polygon(x_c, y_c, border=NA, col=\"firebrick1\")\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plot_norm(0.3, c(-1.96, 1.96))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plot_norm(0.3, 1.64)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ćwiczenie 1: Losowanie \"sprawiedliwe\"\n", "\n", "Symulujemy losowanie kart lub piłeczek generując liczby z rozkładu dwupunktowego (Bernoulliego). Zakładamy odpowiednio dużą próbę oraz losowanie, w którym prawdopodobieństwa sukcesu i porażki są takie same (0.5)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# rozmiar próby\n", "n <- 50\n", "# prawdopodobieństwo sukcesu podczas losowania \n", "p <- 0.5\n", "# wylosowana próba\n", "sample <- rbinom(n = n, p = p, size = 1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "sample" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wykonamy teraz test dwustronny, aby przekonać się, czy losowanie było rzeczywiście sprawiedliwe. Rozważamy zatem następujący układ hipotez, gdzie $p_0=0.5$:\n", "* $H_0: \\hat{P} = p_0$\n", "* $H_1: \\hat{P} \\neq p_0$ " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "p0 <- # ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sprawdzamy, czy możemy przybliżyć rozkład dwupunktowy rozkładem normalnym (CTG), tzn. czy spełnione są wymagania:\n", "* $n*p_0 \\ge 5$\n", "* $n*q_0 = n*(1-p_0) \\ge 5$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przyjmujemy typowy poziom istotności $\\alpha$." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "alpha <- # ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wyznaczamy frakcję z próby ($\\hat{p}$):" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "p_hat <- # ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wyznaczamy też wartość statystyki testowej $Z=\\frac{\\hat{p}-p_{o}}{\\sqrt{p_{0}(1-p_{o})}}\\sqrt{n}$." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z <- # ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wyznaczamy teraz wartość krytyczną na podstawie przyjętego poziomu istotności:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z_crit <- # ?\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przedstawiamy wartość statystyki oraz wartość krytyczną na wykresie." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plot_norm(z, c(-z_crit, z_crit))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Czy udało się nam zaobserować błąd **I rodzaju**?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ćwiczenie 2: Losowanie \"niesprawiedliwe\"\n", "\n", "Powtarzamy losowanie, jednak teraz zakładamy, że maszyna losująca oszukuje (na naszą korzyść lub niekorzyść) i prawdopodobieństwo sukcesu jest inne niż porażki." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "alpha <- 0.05" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# p inne niż 0.5 (większe lub mniejsze)\n", "p <- # ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n <- 50" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "sample <- rbinom(n=n, p=p, size=1)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Układ hipotez pozostawiamy bez zmiany -- $H_0$ nadal zakłada, że losowanie jest sprawiedliwe.\n", "\n", "Znów wyznaczamy wartość statystystyki zakładając prawdziwość $H_0$." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "p_hat <- # ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z <- # ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "z_crit <- # ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plot_norm(z, c(-z_crit, z_crit))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Jaki teraz jest wynik wnioskowania? Czy popełniliśmy błąd **II rodzaju**?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.6.3" } }, "nbformat": 4, "nbformat_minor": 4 }