Search
TEST 2
airquality
temp
data$Month == 5
Terminologie:
Budeme pracovat s daty iris:
iris
data(iris)
Prohlídka dat: kolik a jakých příznaků obsahují? Kolik porozování máme k dispozici? Obsahují data nějaké chybějící hodnoty?
dim(iris) summary(iris)
Studujte závislost délky korunního lístku (Petal.Length) na délce kališního lístku (Sepal Length) u kosatců “virginica”.
Petal.Length
Sepal Length
Jaký vztah očekáváte?
Závislost vizualizujte.
# vykresleni: with(iris[iris$Species=='virginica', ], plot(Petal.Length ~ Sepal.Length)) # lepsi vykresleni, aby nesplyvaly pozorovani, u nichz byly namereny shodne hodnoty: with(iris[iris$Species=='virginica', ], plot(Petal.Length ~ jitter(Sepal.Length))) # uprava mezi (aby byl videt pocatek souradne soustavy): with(iris[iris$Species=='virginica', ], plot(Petal.Length ~ jitter(Sepal.Length), xlim = c(0, max(Sepal.Length)), ylim = c(0, max(Petal.Length))))
Jak byste intuitivně kvantifikovali studovanou závislost?
Teoretická vsuvka: Formální znázornění závislosti (vzorec). Grafické znázornění závislosti. Míry kvality proložení křivky (přímky). Metoda nejmenších čtverců. Vliv odlehlých pozorování.
Modelujte závislost délky korunního lístku na délce kališního lístku pomocí lineární regrese.
# regresni model: m <- lm(Petal.Length ~ Sepal.Length, iris[iris$Species=='virginica', ]) # alternativne: m <- lm(Petal.Length ~ Sepal.Length, iris, subset = Species=='virginica') # prohlidka modelu: m coef(m) summary(m) # vizualizace modelu: abline(coef(m), col='red')
Jaký je výsledek? Závislost formálně zapište. Je závislost statisticky významná? Interpretujte výsledek.
Výsledek: Petal.Lengthi = 0.61 + 0.75 * Sepal.Lengthi + epsi, přičemž intercept (“průsečík s osou Y”) je nevýznamně odlišný od 0, ale koeficient 0.75 u Sepal.Lengthi je významně nenulový, čímž jsme i) prokázali lineární závislost mezi délkou okvětního a kališního lístku, a ii) tuto závislost kvantifikovali.
Interpretace: S nárůstem délky kališního lístky (Sepal.Length) o 1cm narůstá průměrně délka okvětního lístku (Petal.Length) o 7.5mm. Přitom jsme samozřejmě předpokládali (a přesvědčili se obrázkem), že závislost je skutečně lineární.
Sepal.Length
Modelujte nyní závislost šířky kališního lístku na jeho délce. Jaký výsledek dostáváte?
Nyní modelujte výše sledovanou závislost v případě, že v souboru bude (uměle vytvořené) odlehlé pozorování:
# pouzijeme kosatce virginica d <- iris[iris$Species=='virginica',] # a umele zmenime delku korunniho listku u rostliny s nejdelsim kalistnim listkem: d$Petal.Length [d$Sepal.Length==max(d$Sepal.Length)] <- -5 # data vykreslime: plot(Petal.Length ~ jitter(Sepal.Length), d) # modelujeme: m <- lm(Petal.Length ~ Sepal.Length, d) summary(m) # a vykreslime nalezeny model abline(coef(m),col='red')
Zopakujte výše uvedené kroky. K jakému závěru jste dospěli? Co z toho plyne?
Načtěte CSV soubor tuk.txt.
Prohlídka dat: kolik a jakých atributů obsahují? V jakých jednotkách jsou naměřeny? Kolik porozování máme k dispozici? Obsahují data nějaké chybějící hodnoty? Pokud ano, jak se s nimi vypořádáte? Jsou v datech odlehlé hodnoty? Pokud ano, co s nimi uděláte?
Studujte nejprve závislost procenta tuku na hmotnosti. Jaký vztah očekáváte? Závislost vizualizujte a modelujte pomocí lineární regrese. Jaký dostáváte výsledek? Závislost formálně zapište. Je závislost významná?
Studujte závislost procenta tuku na tělesné výšce. Jaký vztah očekáváte? Závislost opět vizualizujte a modelujte pomocí lineární regrese. Jaký dostáváte výsledek? Závislost formálně zapište. Je závislost významná?
Nyní modelujte závislost procenta tuku zároveň na výšce a hmotnosti. Jaký dostáváte výsledek? Závislost formálně zapište. Jsou závislosti významné? Srovnejte tento výsledek s předchozími dvěma. Co z toho plyne?
Výsledek: fati = 16.5 + 0.49 * weighti - 0.24 * heighti + epsi, přičemž intercept (“průsečík s osou Y”) je nevýznamně odlišný od 0, ale oba zbývající koeficienty (u hmotnosti a výšky) jsou významně nenulové.
Interpretace: S nárůstem hmotnosti o 1kg (při pevné výšce) vzrůstá procento tělesného tuku průměrně o 0.49%. Podobně s nárůstem výšky o 1cm (při pevné hmotnosti) klesá procento tělesného tuku průměrně o 0.24%. Upozorňeme, že při interpretaci některého regresoru je podmínka pevných hodnot ostatních regresorů nutná, bez ní by tvrzení nebylo pravdivé.
Příklad 1 (Předpovídání léčebných výdajů)
Pro tuto analýzu použijeme simulovaný dataset obsahující hypotetické léčebné výdaje pacientů z USA.
.csv
insurance <- read.csv("insurance.csv", stringsAsFactors = TRUE)
str()
summary()
pairs()
age
bmi
children
expenses
psych
pairs.panels()
chilren
Nyní zkusíme předchozí model upravit. Podíváme se na 3 různé závislosti, které nelze postihnout lineárním popisem. Vraťte se k bodu 3 nebo 4 a podívejte se, zdali není možné vysledovat nějaké zajímavé zákonitosti.
ifelse
expenses ~ bmi30*smoker
expenses ~ bmi30 + smokeryes + bmi30:smokeryes
:
Opakování termínů ze statistiky:
Formulace Bayesova naivního klasifikátoru.
Proč se klasifikátoru říká naivní?
Příklad: Hráči chodí hrát tenis, ale hrají pouze za příznivého počasí. Příklady jejich rozhodnutí jsou v následující tabulce. Atributy jsou outlook, temperature, humidity, windy a rozhodnutí je ve sloupečku play. Nalezněte podle čeho se hráči rozhodují, zda půjdou hrát.
Data jsou zde: weather.csv. Aplikací naivního Bayesova klasifikátoru sami vypočtěte, zda je (ne)pravděpodobné, že hráči půjdou hrát, když bude slunečno (sunny), horko (hot), normální vlhkost (normal) a bezvětří (windy=FALSE).
Váš explicitní výpočet můžete ověřit v R:
# nacteni a prohlidka dat d<-read.csv('weather.csv') summary(d) # naivni Bayes library(e1071) # je treba zkonvertovat "logical" priznak na "numeric" d$windy <- as.numeric(d$windy) m <- naiveBayes(play~., d) # vyzkousejme klasifikator predict(m,d) table(predict(m,d),d$play) # a klasifikujme nove pozorovani: d.new<-data.frame(outlook='sunny',temperature='hot',humidity='normal',windy=0) predict(m,d.new)