{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Statystyka i Analiza danych\n", "# Laboratorium 2 - Statystyka opisowa\n", "\n", "### Powtórka\n", "Stwórz wektor `dane` zawierający następujące liczby\n", "```\n", "1123, 198, 473, 784, 305, 423, 397, 298, 698, 237\n", "```" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dane <- c(1123, 198, 473, 784, 305, 423, 397, 298, 698, 237)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Następnie wypisz liczby z tego wektora przemnożone przez 2" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Przekonwertuj podane temperatury w Fahrenheitach na stopnie Celsjusza\n", "`fahrenheit<-c(32, 59, 86)`. Wzór na konwersję masz podany poniżej.\n", "$$c = \\frac{(f-32)\\cdot 5}{9}$$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wypisz:\n", " - piąty element wektora `dane`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ " - pierwszy i piąty element wektora `dane` (razem!)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ćwiczenie 1\n", "Porównaj medianę i średnią dla liczby punktów zdobytych przez zawodników drużyny A i drużyny B -- jakie wnioski możesz wysnuć na podstawie tych danych?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "team_a <- c(8,5,4,38,10,5,2,0)\n", "names(team_a) <- c('Andrzej U.', 'Artur M.', 'Grzegorz W.', 'Jan W.', 'Marek M.', 'Mikołaj S.', 'Rafal R.', 'Stefan G.')\n", "\n", "team_b <- c(12, 15, 18, 8, 0, 2, 10, 23)\n", "names(team_b) <- c('Andrzej J.', 'Jacek J.', 'Jerzy S.', 'Krzysztof K.', 'Maciej H.', 'Maciej K.', 'Pawel K.', 'Roman S.')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wypisz wartość wektorów `team_a` i `team_b`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Policz średnią i medianę dla `team_a` na kartce, a następnie sprawdź w R " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Policz średnią i medianę dla `team_b` na kartce, a następnie sprawdź w R " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Jakie wnioski możesz wysnuć na podstawie tych danych?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cwiczenie 1b\n", "Do wyników obu drużyn dodaj dodatkowego uczestnika z liczbą punktów 1000. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Jak zmieniła się średnia? Jak zmieniła się mediana?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ćwiczenie 2 (*) \n", "Policzmy średnią i medianę czterech załadowanych do pamięci rozkładów (`dane1`, `dane2`, `dane3`, `dane4`)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dane1 <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n", "dane2 <- c(-2, -2, -2, -2, -2, -1, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2)\n", "dane3 <- c(-2, -2, 1, 1, 1, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, 2, 2)\n", "dane4 <- c(-4, -3, -2, -1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 2, 3, 4)\n", "\n", "zbiory_danych <- list(dane1, dane2, dane3, dane4)\n", "for ( i in 1:length(zbiory_danych) ){\n", " print(paste(\"Srednia i mediana dla zbioru \", i)) \n", " dane <- zbiory_danych[[i]]\n", " # Wypisz średnią i medianę dla zmiennej dane <------------ MIEJSCE NA TWÓJ KOD\n", " \n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wydaje się że są to zbiory bardzo podobne do siebie, skoro średnia i mediana są dla nich takie same. Zwizualizujmy te zbiory na wykresie!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ " par(mfrow=c(2,2)) \n", " barplot(table(dane1), main=\"Dane 1\")\n", " barplot(table(dane2), main=\"Dane 2\")\n", " barplot(table(dane3), main=\"Dane 3\")\n", " barplot(table(dane4), main=\"Dane 4\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rzeczywiście, rozkłady te mają taką samą średnią i medianę, jednak pomimo tego znacząco się od siebie różnią. Jedną z cech, które je różnicują jest ich wariancja.\n", "\n", "Zaimplementuj funkcje `wariancja` i `odchylenie_std`." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "wariancja <- function(dane){\n", " \n", "}\n", "\n", "odchylenie_std <- function(dane){\n", " \n", "}\n", "\n", "#Kodu poniżej nie trzeba modyfikować\n", "\n", "zbiory_danych <- list(dane1, dane2, dane3, dane4)\n", "for ( i in 1:length(zbiory_danych) ){\n", " print(paste(\"Statystyki opisowe dla zbioru \", i)) \n", " dane <- zbiory_danych[[i]]\n", " print(c(Srednia=mean(dane), Mediana=median(dane), Wariancja = wariancja(dane), Odchylenie = odchylenie_std(dane)))\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do przestrzeni załadowano 4 nowe zbiory danych. Uzupełnij kod obliczający ich statystyki opisowe i zinterpretuj wyniki. W R są oczywiście gotowe funkcje na odchylenie standardowe `sd` i wariancje `var`." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dane1 <-c(-4 ,-4 ,-4 ,-4 ,-4 ,-4 ,-3 ,-3 ,-3 ,-3 ,-2 ,-2 ,-2 ,-1 ,-1 ,0 ,1 )\n", "dane2 <- c(4 ,4 ,4 ,4 ,4 ,4 ,3 ,3 ,3 ,3 ,2 ,2 ,2 ,1 ,1 ,0 ,-1 )\n", "dane3 <- c(-4 ,-3 ,-2 ,-1 ,-1 ,-1 ,0 ,0 ,0 ,0 ,0 ,1 ,1 ,1 ,2 ,3 ,4 )\n", "dane4 <- c(-2 ,-2 ,-1 ,-1 ,-1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,1 ,1 ,2 ,2 -1,1,-1,1,2,-2,2,-1,-1,-2,2,-2,2,-3,3,-3,3,-3,3,-3,3,-3,3,-2,2,-3,3)\n", "\n", "\n", "zbiory_danych <- list(dane1, dane2, dane3, dane4)\n", "for ( i in 1:length(zbiory_danych) ){\n", " print(paste(\"Statystyki opisowe dla zbioru \", i)) \n", " dane <- zbiory_danych[[i]]\n", " \n", " # Uzupełnij kod dla wariancji i odchylenia standardowego <--------------------- UZUPEŁNIJ TUTAJ\n", " print(c(Srednia=mean(dane), Mediana=median(dane), Wariancja = ____, Odchylenie = ___))\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Znów spróbujmy zwizualizować zbiory" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ " par(mfrow=c(2,2)) \n", " barplot(table(dane1), main=\"Dane 1\", ylim = c(0,7))\n", " barplot(table(dane2), main=\"Dane 2\", ylim = c(0,7))\n", " barplot(table(dane3), main=\"Dane 3\", ylim = c(0,7))\n", " barplot(table(dane4), main=\"Dane 4\", ylim = c(0,7))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Zaimplementuj funkcję obliczającą asymetrię i kurtozę. Zinterpretuj uzyskane wyniki." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "skewness <- function(dane){\n", " \n", "}\n", "\n", "kurtosis <- function(dane){\n", " \n", "}\n", "\n", "#Nie zmieniaj kodu poniżej\n", "zbiory_danych <- list(dane1, dane2, dane3, dane4)\n", "for ( i in 1:length(zbiory_danych) ){\n", " print(paste(\"Statystyki opisowe dla zbioru \", i)) \n", " dane <- zbiory_danych[[i]]\n", " print(c(Skewness = skewness(dane), Kurtosis = kurtosis(dane)))\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###  Ćwiczenie 3\n", "Przyjmijmy, że zamierzamy prowadzić analizę prowizji płaconej sprzedawcom zatrudnionym w pewnej firmie. W załączeniu zawarte są dane o prowizjach w dwóch grupach po 21 sprzedawców (prowizje za pewien okres wyrażane są w złotych z dokładnością do 1000 zł). Po obliczeniu podstawowych statystyk opisowych porównaj obie grupy sprzedawców i dokonaj interpretacji dokonanych obserwacji. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "grupa1 <- c(13000 ,14000 ,12000 ,15000 ,16000 ,15000 ,17000 ,15000 ,17000 ,15000 ,15000 ,15000 ,16000 ,15000 ,16000 ,14000 ,16000 ,14000 ,16000 ,17000 ,18000)\n", "grupa2 <- c(6000 ,23000 ,13000 ,7000 ,7000 ,20000 ,21000 ,12000 ,11000 ,16000 ,20000 ,21000 ,9000 ,7000 ,15000 ,18000 ,19000 ,22000 ,16000 ,21000 ,17000)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ćwiczenie 4\n", "Pociąg z Moskwy do Paryża przebywa poszczególne odcinki drogi z różną prędkością średnia ze względu na różny stan i typ taboru kolejowego. Odcinki, ich długość i średnia prędkość podana jest w tabeli poniżej. Oblicz średnią prędkość pociągu z jaką przebywa cała drogą z Moskwy do Paryża (dane przykładowe, dalekie od rzeczywistych :)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "dane <- data.frame(Odcinek = 1:9, Odległosc = c(850, 600, 30, 220, 200, 150, 220, 300, 250), Srednia_predkosc = c(80, 75, 40, 120, 125, 140, 160, 150, 160))\n", "dane" ] }, { "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.4.2" } }, "nbformat": 4, "nbformat_minor": 2 }