diff --git a/podsumowanie/README.md b/podsumowanie/README.md new file mode 100644 index 0000000..19e8b5e --- /dev/null +++ b/podsumowanie/README.md @@ -0,0 +1,140 @@ +# Podsumowanie +Podsumowanie zajęć + +--- +## LAB 1 +Zakres: +- wstęp do języka R + +- wykład 1 na stronie + + + +### R +Lista: +```r +# wektory +rep(TRUE, 3) +seq(1, 20, by=1) +order(zad6, decreasing = TRUE)] + +# pętle +for(i in 1:length(zad5)){} +while (licznik <= length(x)){} +repeat { + if (licznik > length(x)) { + break + } +} + +# funkcja, pakiety +minmax <- function(x){} +install.packages("schoolmath") +library(schoolmath) +``` + +### Zagadnienia +![operatory](lab1/operatory.png) + +![logiczne](lab1/logiczne.png) + + +--- +## LAB 2 +Zagadnienia: +- ciąg dalszy wprowadzenie do R + +- wykład 1 na stronie + + + +### R +Lista: +```r +# ładowanie danych +dane <- read.table("dane1.csv", header = TRUE, sep = ";") +ankieta <- read.table("http://ls.home.amu.edu.pl/data_sets/ankieta.txt", header = TRUE) +computers <- read.csv("http://pp98647.home.amu.edu.pl/wp-content/uploads/2021/06/computers.csv") +``` + + +### Zagadnienia +Lista: +- **Wektor** musi zawierać takie same typy, **lista** może różne. + +- **Macierze**, ogólniej to są **tablice** reprezentowane przez wektor atomowy + +- **Czynniki**: dla ("f", "p", "f") zwraca "f", "p" + +- **Ramki danych** to jak w excelu arkusze + + +--- +## LAB 3 +Zagadnienia: +- **Statystka opisowa** - zaprezentowanie cechy X na próbce za pomocą tabeli, wykresu + +- Wykład 2 na stronie + + +### R +```r +# rozkład empiryczny +ankieta <- read.table("http://ls.home.amu.edu.pl/data_sets/ankieta.txt", header = TRUE) +empiryczny <- data.frame(cbind(liczebnosc = table(ankieta$wynik), + procent = prop.table(table(ankieta$wynik)))) + +# wykres ramkowy +barplot(table(ankieta$wynik), + xlab = "Odpowiedzi", ylab = "Odpowiedzi", + main = "Rozkład empiryczny zmiennej wynik") + +# inne +install.packages("e1071") +library(e1071) +skewness(x) +kurtosis(x) +``` + + +### Zagadnienia +Lista: +- **Miara asymetrii rozkładu** - w którą stronę - prawo/lewo, zmienna się rozkłada. + - zero to symetryczny + - dodatnie to prawostronnie asymetryczny - lewa część jest większa + - ujemna to lewostronnie asymetryczna - prawa część jest większa +![asymetria](lab3/asymetria.png) + +- **Kurtoza** - miara skupienia wartości wokół średniej. Porównuje rozkład empiryczny z rozkładem normalnym. + - Większa niż 0, im większa wartość tym bardziej wartości skupione wokół średniej + - Dla rozkładu normalnego = 0 + - Dla ujemnych (min -2) wykres jest bardziej spłaszczony niż rozkłąd normalny +![kurtoza](lab3/kurtoza.png) + +- **Rozkład empiryczny** - za pomocą szeregu rozdzielczego to np podanie liczebności i udziału procentowego danej zmiennej. + +- **Odchylenie standardowe** - intuicyjnie rzecz ujmując, odchylenie standardowe mówi, jak szeroko wartości jakiejś wielkości (na przykład wieku, inflacji, kursu walutowego) są rozrzucone wokół jej średniej. +Im mniejsza wartość odchylenia tym obserwacje są bardziej skupione wokół średniej. + +- **Współczynnik zmienności** - podaje się w procentach, jest to relacja odchylenia standardowego ze średnią. Mówi nam jak bardzo wartości odbiegają od siebie. Dzięki temu ze jest w procentach mozemy porównywać rózne rozkłady. + - [Przykład](https://pl.wikipedia.org/wiki/Współczynnik_zmienności) + +- **Funkcja gęstości** - nieujemna funkcja rzeczywista, określona dla rozkładu prawdopodobieństwa, taka że całka z tej funkcji, obliczona w odpowiednich granicach, jest równa prawdopodobieństwu wystąpienia danego zdarzenia losowego. + +- **Histogram** – składa się z szeregu prostokątów umieszczonych na osi współrzędnych. Prostokąty te są z jednej strony wyznaczone przez przedziały klasowe wartości cechy, natomiast ich wysokość jest określona przez liczebności (lub częstości, ewentualnie gęstość prawdopodobieństwa) elementów wpadających do określonego przedziału klasowego. + +- **Kwantyl** rzędu p to taka zmienna dla której prawdopodobieństwo wystąpienia od 0 do tej zmiennej jest równe p. +Kwantyl rzędu 1/2 to inaczej mediana. Kwantyle rzędu 1/4, 2/4, 3/4 są inaczej nazywane kwartylami. + - pierwszy kwartyl (notacja: Q1) = dolny kwartyl = kwantyl rzędu 1/4 = 25% obserwacji jest położonych poniżej + - drugi kwartyl (notacja: Q2) = mediana = kwantyl rzędu 1/2 = dzieli zbiór obserwacji na połowę + - trzeci kwartyl (notacja: Q3) = górny kwartyl = kwantyl rzędu 3/4 = dzieli zbiór obserwacji na dwie części odpowiednio po 75% położonych poniżej tego kwartyla i 25% położonych powyżej +![kwanty](lab3/kwantyl.png) + +- **Wykres ramkowy** +![ramkowy1](lab3/ramkowy1.png) +![ramkowy2](lab3/ramkowy2.png) + +- **Rozkład empiryczny** – uzyskany na podstawie badania statystycznego opis wartości przyjmowanych przez cechę statystyczną w próbie przy pomocy częstości ich występowania. + +- Statystki opisowe: +![dodatek](lab3/dodatek.png) \ No newline at end of file diff --git a/podsumowanie/lab1/logiczne.png b/podsumowanie/lab1/logiczne.png new file mode 100644 index 0000000..0105d90 Binary files /dev/null and b/podsumowanie/lab1/logiczne.png differ diff --git a/podsumowanie/lab1/operatory.png b/podsumowanie/lab1/operatory.png new file mode 100644 index 0000000..d4716e3 Binary files /dev/null and b/podsumowanie/lab1/operatory.png differ diff --git a/podsumowanie/lab3/asymetria.png b/podsumowanie/lab3/asymetria.png new file mode 100644 index 0000000..13a5f1b Binary files /dev/null and b/podsumowanie/lab3/asymetria.png differ diff --git a/podsumowanie/lab3/dodatek.png b/podsumowanie/lab3/dodatek.png new file mode 100644 index 0000000..e254d3d Binary files /dev/null and b/podsumowanie/lab3/dodatek.png differ diff --git a/podsumowanie/lab3/kurtoza.png b/podsumowanie/lab3/kurtoza.png new file mode 100644 index 0000000..8be2d34 Binary files /dev/null and b/podsumowanie/lab3/kurtoza.png differ diff --git a/podsumowanie/lab3/kwantyl.png b/podsumowanie/lab3/kwantyl.png new file mode 100644 index 0000000..efd8d0c Binary files /dev/null and b/podsumowanie/lab3/kwantyl.png differ diff --git a/podsumowanie/lab3/ramkowy1.png b/podsumowanie/lab3/ramkowy1.png new file mode 100644 index 0000000..a547855 Binary files /dev/null and b/podsumowanie/lab3/ramkowy1.png differ diff --git a/podsumowanie/lab3/ramkowy2.png b/podsumowanie/lab3/ramkowy2.png new file mode 100644 index 0000000..991a22e Binary files /dev/null and b/podsumowanie/lab3/ramkowy2.png differ diff --git a/testowe/.RData b/testowe/.RData new file mode 100644 index 0000000..923116b Binary files /dev/null and b/testowe/.RData differ diff --git a/testowe/.Rhistory b/testowe/.Rhistory new file mode 100644 index 0000000..429c996 --- /dev/null +++ b/testowe/.Rhistory @@ -0,0 +1,138 @@ +computers <- read.table("http://pp98647.home.amu.edu.pl/wp-content/uploads/2021/06/computers.csv") +View(computers) +computers <- read.csv("http://pp98647.home.amu.edu.pl/wp-content/uploads/2021/06/computers.csv") +View(computers) +spotify <- read.csv("http://pp98647.home.amu.edu.pl/wp-content/uploads/2021/06/spotify.csv") +View(spotify) +weight_height <- read.csv("http://pp98647.home.amu.edu.pl/wp-content/uploads/2021/06/weight-height.csv") +View(weight_height) +model_1 <- lm(valence ~ acusticness + danceability + energy + instrumentalness + +liveness, data = spotify) +model_1 <- lm(valence ~ acousticness + danceability + energy + instrumentalness + +liveness, data = spotify) +model_1 <- lm(valence ~ acousticness + danceability + energy + instrumentalness + +liveness + loudness + speechiness + tempo + song_title, data = spotify) +model_1 +summary(model_1) +model_1 <- lm(valence ~ acousticness + danceability + energy + instrumentalness + +liveness + loudness + speechiness + tempo, data = spotify) +summary(model_1) +step(model_1) +step(model_1) +step(model_1) +summary(model_1) +model_2 <- lm(valence ~ acousticness + danceability + energy + instrumentalness + +liveness + loudness + speechiness, data = spotify) +new_data <- data.frame(acousticness=2.84e-06, danceability=0.305, energy=0.827, +instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, speechiness=0.1470) +View(new_data) +stats::predict(model_2, new_data, interval = "prediction") +summary(model_2)$adj.r.squared +new_data <- data.frame(acousticness=2.84e-06, danceability=0.305, energy=0.827, +instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, +speechiness=0.1470, tempo=159.882) +stats::predict(model_2, new_data, interval = "prediction") +new_data <- data.frame(acousticness=2.84e-06, danceability=1.305, energy=0.827, +instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, +speechiness=0.1470, tempo=159.882) +stats::predict(model_2, new_data, interval = "prediction") +new_data <- data.frame(acousticness=2.84e-06, danceability=0.305, energy=0.827, +instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, +speechiness=0.1470, tempo=159.882) +stats::predict(model_2, new_data, interval = "prediction") +new_data <- data.frame(acousticness=2.84e-06, danceability=0.405, energy=0.827, +instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, +speechiness=0.1470, tempo=159.882) +stats::predict(model_2, new_data, interval = "prediction") +new_data <- data.frame(acousticness=2.84e-06, danceability=0.305, energy=0.827, +instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, +speechiness=0.1470, tempo=159.882) +stats::predict(model_2, new_data, interval = "prediction") +new_data <- data.frame(acousticness=2.84e-06, danceability=0.405, energy=0.827, +instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, +speechiness=0.1470, tempo=159.882) +stats::predict(model_2, new_data, interval = "prediction") +0.3918359 - 0.3918359 +0.3918359 - 0.3229826 +male <- ifelse(weight_height$Gender == "Male") +male <- weight_height$Gender == "Male" +male <- ifelse(weight_height$Gender == "Male", weight_height$Height) +male <- ifelse(weight_height$Gender == "Male", weight_height$Height, 0) +male <- weight_height[weight_height$Gender == "Male"] +male <- weight_height[weight_height$Gender == "Male", ] +View(male) +shapiro.test(male$Height) +qqnorm(male$Height) +shapiro.test(male$Weight) +qqnorm(male$Weight) +shapiro.test(male$Height) +qqnorm(male$Height) +mean(male$Height) +par(mfrow = c(1, 2)) +female <- weight_height[weight_height$Gender == "Female", ] +shapiro.test(female$Height) +qqnorm(female$Height) +mean(female$Height) +par(mfrow = c(1, 2)) +male <- weight_height[weight_height$Gender == "Male", ] +shapiro.test(male$Height) +qqnorm(male$Height) +mean(male$Height) +female <- weight_height[weight_height$Gender == "Female", ] +shapiro.test(female$Height) +qqnorm(female$Height) +mean(female$Height) +par(mfrow = c(1, 2)) +male <- weight_height[weight_height$Gender == "Male", ] +shapiro.test(male$Height) +qqnorm(male$Height) +mean(male$Height) +var(male$Height) +female <- weight_height[weight_height$Gender == "Female", ] +shapiro.test(female$Height) +qqnorm(female$Height) +mean(female$Height) +var(female$Height) +t.test(male$Height, female$Height, var.equal = TRUE, alternative = 'greater')$p.value +t.test(male$Height, female$Height, var.equal = TRUE, alternative = 'greater') +t.test(male$Height, female$Height, paired = TRUE, alternative = 'less')$p.value +t.test(male$Height, female$Height, paired = TRUE, alternative = 'greater')$p.value +t.test(male$Height, female$Height, alternative = 'greater')$p.value +t.test(male$Height, female$Height, alternative = 'greater') +t.test(male$Height, female$Height, alternative = 'greater', conf.level = 0.05)$p.value +selected <- computers[computers$screen == 14, ] +View(selected) +ram_procent <- data.frame(cbind(liczebnosc = table(selected$ram), +procent = prop.table(selected$ram))) +table(selected$ram) +prop.table(selected$ram) +table(selected$ram) +liczebnosc <- table(selected$ram) +prop.table(liczebnosc) +prop.table(liczebnosc)*100 +# ZAD 2 - tego trochę nie rozumiem +w_test <- function(x, istotnosc, delta_zero, alternative = c('two.sided', 'less', 'greater')) { +# statystyka testowa +ss <- (1 / length(x)) * (var(x) - mean(x)) +statistic <- length(x) * ss / delta_zero * delta_zero +# parametr w obszarach krytycznych +d <- length(x) - 1 +# poziom istotności +alternative <- match.arg(alternative) +p_value <- istotnosc +p_value <- switch(alternative, +'two.sided' = 2 * min(p_value, 1 - p_value), +'greater' = p_value, +'less' = 1 - p_value) +# rezultat +names(statistic) <- 'T' +names(d) <- 'num df' +result <- list(statistic = statistic, +parameter = d, +p.value = p_value, +alternative = alternative, +method = 'Test istotności dla wariancji w modelu normalnym', +data.name = deparse(substitute(x))) +class(result) <- 'htest' +return(result) +} diff --git a/testowe/testowe.Rproj b/testowe/testowe.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/testowe/testowe.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX diff --git a/testowe/zadania.R b/testowe/zadania.R new file mode 100644 index 0000000..5dcb6ad --- /dev/null +++ b/testowe/zadania.R @@ -0,0 +1,89 @@ +# testowy egzamin + +# ładowanie danych csv +computers <- read.csv("http://pp98647.home.amu.edu.pl/wp-content/uploads/2021/06/computers.csv") +spotify <- read.csv("http://pp98647.home.amu.edu.pl/wp-content/uploads/2021/06/spotify.csv") +weight_height <- read.csv("http://pp98647.home.amu.edu.pl/wp-content/uploads/2021/06/weight-height.csv") + + +# ZAD 2 - tego trochę nie rozumiem +w_test <- function(x, istotnosc, delta_zero, alternative = c('two.sided', 'less', 'greater')) { + + # statystyka testowa + ss <- (1 / length(x)) * (var(x) - mean(x)) + statistic <- length(x) * ss / delta_zero * delta_zero + + # parametr w obszarach krytycznych + d <- length(x) - 1 + + # poziom istotności + alternative <- match.arg(alternative) + p_value <- istotnosc + p_value <- switch(alternative, + 'two.sided' = 2 * min(p_value, 1 - p_value), + 'greater' = p_value, + 'less' = 1 - p_value) + + # rezultat + names(statistic) <- 'T' + names(d) <- 'num df' + result <- list(statistic = statistic, + parameter = d, + p.value = p_value, + alternative = alternative, + method = 'Test istotności dla wariancji w modelu normalnym', + data.name = deparse(substitute(x))) + class(result) <- 'htest' + return(result) +} + + +# ZAD 5 +model_1 <- lm(valence ~ acousticness + danceability + energy + instrumentalness + + liveness + loudness + speechiness + tempo, data = spotify) + +summary(model_1) + +step(model_1) + +model_2 <- lm(valence ~ acousticness + danceability + energy + instrumentalness + + liveness + loudness + speechiness, data = spotify) + +new_data <- data.frame(acousticness=2.84e-06, danceability=0.305, energy=0.827, + instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, + speechiness=0.1470, tempo=159.882) + +stats::predict(model_2, new_data, interval = "prediction") + +new_data <- data.frame(acousticness=2.84e-06, danceability=0.405, energy=0.827, + instrumentalness=2.45e-03, liveness=0.3350, loudness=-5.789, + speechiness=0.1470, tempo=159.882) + +stats::predict(model_2, new_data, interval = "prediction") + + +# ZAD 6 +par(mfrow = c(1, 2)) + +male <- weight_height[weight_height$Gender == "Male", ] +shapiro.test(male$Height) +qqnorm(male$Height) +mean(male$Height) +var(male$Height) + +female <- weight_height[weight_height$Gender == "Female", ] +shapiro.test(female$Height) +qqnorm(female$Height) +mean(female$Height) +var(female$Height) + +t.test(male$Height, female$Height, alternative = 'greater')$p.value +#bardzo mała wartość, czyli hipoteza że kobiety są jest większe niż mężczyźni jest mało prawdopodobne + + +# ZAD 7 +selected <- computers[computers$screen == 14, ] +liczebnosc <- table(selected$ram) +prop.table(liczebnosc)*100 +ram_procent <- data.frame(cbind(liczebnosc = table(selected$ram), + procent = prop.table(selected$ram))) diff --git a/zajecia3/README.md b/zajecia3/README.md index ef96bb9..6e3b71e 100644 --- a/zajecia3/README.md +++ b/zajecia3/README.md @@ -10,9 +10,9 @@ W którą stronę - prawo/lewo, zmienna się rozkłada. ## Kurtoza Miara skupienia wartości wokół średniej. Porównuje rozkład empiryczny z rozkładem normalnym. -- Dodatnia, im większa wartość tym bardziej wartości skupione wokół średniej -- Dla rozkłądu normalnego = 0 -- Dla ujemnych (min -2) wykres jest bardziej spłaszczony ni rozkłąd normalny +- Większa niż 0, im większa wartość tym bardziej wartości skupione wokół średniej +- Dla rozkładu normalnego = 0 +- Dla ujemnych (min -2) wykres jest bardziej spłaszczony niż rozkłąd normalny ## Rozkład empiryczny Za pomocą szeregu rozdzielczego to np podanie liczebności i udziału procentowego danej zmiennej