######################################## Zpracování dat fyzikálních měření - 2. díl ######################################## # Tento skript bude rozdělen do dvou částí. # 1. část se bude zabývat ilustrací problémů popisovaných v seriálu. # 2. část bude sloužit jako návod k řešení seriálových úloh ############################################## 1. část ############################################## ########## Vykreslení hustoty Studentova rozdělení ########## # Pro představu, jak vypadá hustota Studentova rozdělení. # definice početu stupňů volnosti n <- 5 # příprava hodnot hustoty pravděpodobnosti studentova rozdělení v mnoha bodech x <- seq(-8, 8, by = 0.05) fx <- dt(x, df = n) # vykreslení grafu plot(x, fx, type = "l", ylim = c(0,0.4)) # pro srovnání hustota N(0, 1) rozdělení (červeně). Pro velký počet stupňů volnosti by měly být tyto dvě hustoty téměř identické. fx <- dnorm(x, mean = 0, sd = 1) lines(x, fx, col = "red") ########## Simulace měření fyzikální veličiny ########## # Zde uvedeme zjednodušeně ilustraci toho, jak vypadá měření fyzikální veličiny a následný proces statistického zpracování dat # Definice skutečné hodnoty měřené fyzikální veličiny a rozptylu měřených hodnot způsobených nedokonalým měřením (aparatura, vnější vlivy prostředí atd.) # Uvědomte si, že tyto hodnoty v praxi nikdy znát nebudeme! mu <- 9.81 sigma2 <- 2 # rozptyl sd <- sqrt(sigma2) # směrodatná odchylka je odmocnina z rozptylu # definice počtu měření, které chceme provést (čím více, tím lépe, v praxi ale můžeme provést jen omezený počet měření) n <- 25 # fyzikální měření (to v našem modelu simulujeme realizacemi náhodné veličiny s rozdělením N(mu, sigma2)) data <- rnorm(n, mean = mu, sd = sd) data # výpočet výběrové střední hodnoty (někdy se také říká výběrového průměru) x_n <- mean(data) x_n # Hodnota x_n by měla být blízká skutečné hodnotě střední hodnoty mu (tedy skutečné hodnotě měřené fyzikální veličiny), # ale nikdy se nebudou přesně shodovat. Čím více bude měření, tím pravděpodobněji bude výběrová střední hodnota velmi # blízko skutečné hodnotě měřené fyzikální veličiny. # výpočet výběrové směrodatné odchylky S_n <- sd(data) S_n # Hodnota S_n by měla být blízká skutečné hodnotě směrodatné odchylky sd, # ale nikdy se nebudou přesně shodovat. Čím více bude měření, tím pravděpodobněji bude výběrová směrodatná odchylka velmi # blízko skutečné hodnotě směrodatné odchylky. # pro zajímavost ještě hodnota výběrového rozptylu S_n*S_n # Hodnota výběrového průměru by měla být blízká skutečné hodnotě rozptylu, # ale nikdy se nebudou přesně shodovat. Čím více bude měření, tím pravděpodobněji bude hodnota výběrového rozptylu velmi # blízko skutečné hodnotě rozptylu. # výpočet výběrové směrodatné odchylky průměru ( = nejistota typu A) s_n <- S_n / sqrt(n) s_n # hodnota nejistoty typu B (nepřesnost použitého měřidla atd.) s_B <- 0 # výpočet kombinované nejistoty měření s_K <- sqrt(s_n*s_n + s_B*s_B) s_K # pro ilustraci výpočet chyby měření (tu ale nikdy v praxi znát nebudeme, neboť neznáme skutečnou hodnotu měřené fyzikální veličiny) e <- abs(mu - x_n) e #### konstrukce intevalového odhadu pro střední hodnotu # určení konstanty alpha (hodnota (1 - alpha) bude udávat spolehlivost našeho intervalového odhadu) alpha <- 0.32 # určení příslušného kvantilu Studentova rozdělení t <- qt(p = 1 - (alpha / 2), df = (n - 1)) t # výpočet horní a dolní meze intervalu spolehlivosti h <- x_n + t * s_K d <- x_n - t * s_K I <- c(d, h) # toto je náš interval spolehlivosti I # Čím nižší je hodnota skutečného rozptylu sigma2 (přesnější měřící přístroje, odstranění vnějších vlivů prostředí atd.), # tím je tento interval spolehlivosti menší (tj. fyzikální veličina je naměřena přesněji). # Čím je větší počet měření n, tím je tento interval spolehlivosti menší (tj. fyzikální veličina je naměřena přesněji). # Interval má následující vlastnost: P( interval I pokrývá hodnotu mu ) = 1 - alpha, # můžete vyzkoušet opakovaným spuštěním této části kódu (cca v (1 - alpha) procentech případů, # by měl tento interval pokrývat hodnotu mu, v ostatních nikoliv). ########## Vybrané hodnoty kvanitů Studentova rozdělení ########## # počet stupňů volnosti N <- c(1:10, 12, 14, 16, 18, 20, 25, 30, 35, 40, 50, 60, 70, 80, 100, 150, 200, 300, 500, 1000) # uvažovaná hladiny alpha, vyzkoušejte zejména hladiny 0.32, 0.05 a 0.003 alpha <- 0.32 # hodnoty kvantilů (v prvním sloupci je počet stupňů volnosti a ve druhém sloupci je hodnota příslušného kvantilu) matrix(c(N, qt(p = 1 - (alpha / 2), df = N)), nrow = 29) ############################################## 2. část ############################################## ########## Načítání vstupních dat ########## # Načtení vstupních dat ze souboru formátu csv a úprava, aby byly všechna data chápána jako čísla (typ numeric). # Místo ... doplňte cestu k souboru. Pro načítání vstupních dat vždy používejte tuto dvojici příkazů data <- read.csv("...", sep = ",") data <- data.frame(lapply(data, as.numeric)) data # Pro různé úlohy se používají různé vstupní soubory a různá jména proměnných # (soubory mereni1.csv a mereni2.csv, jména proměnných mereni1, metoda1 a metoda2), což vyžaduje jen drobnou úpravu kódu níže. ########## Výpočet odhadů parametrů normálního rozdělení ########## # počet měření (dávejte si pozor, ať zde nastavíte správnou hodnotu!) n <- 100 # výběrový průměr x_n <- mean(data$metoda1, na.rm = TRUE) x_n # výběrová směrodatná odchylka S_n <- sd(data$metoda1, na.rm = TRUE) S_n # výběrový rozptyl S_n * S_n # výběrová směrodatná odchylka průměru ( = nejistota měření typu A) s_n <- S_n / sqrt(n) s_n # výpočet kombinované nejistoty měření s_B <- 0 # hodnota nejistoty typu B s_K <- sqrt(s_n*s_n + s_B*s_B) # interval spolehlivosti o spolehlivosti 0.68 d <- x_n - s_K * qt(p = 1 - (0.32 / 2), df = (n - 1)) h <- x_n + s_K * qt(p = 1 - (0.32 / 2), df = (n - 1)) I <- c(d, h) I