r – środowisko do
DESCRIPTION
R. R – środowisko do. manipulowania danymi obliczeń na macierzach analizy statystycznej tworzenia wykresów tworzenia własnych programów, także statystycznych. http://cran.R-project.org. Standardowa instalacja Środowisko + 8 ‘standardowych’ pakietów statystycznych - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/1.jpg)
R
![Page 2: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/2.jpg)
R – środowisko do
• manipulowania danymi• obliczeń na macierzach• analizy statystycznej• tworzenia wykresów• tworzenia własnych programów,
także statystycznych
![Page 3: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/3.jpg)
http://cran.R-project.org
• Standardowa instalacja Środowisko + 8 ‘standardowych’
pakietów statystycznych
• Inne pakiety można instalować później
![Page 4: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/4.jpg)
R pod Linuxem
• $ mkdir mojkatalog
• $ cd mojkatalog
• $ R
• >…
• >q( )
![Page 5: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/5.jpg)
R w Windows
• Utwórz „mojkatalog”
• W skrócie do R ustaw właściwość „Rozpocznij w” (np. c:\mojkatalog)
![Page 6: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/6.jpg)
Pomoc w R
• help( table ) lub ?table• help.start( ) – odpala przeglądarkę i
wyświetla pomoc w postaci strony html
• help.search – poszukiwanie pomocy na różne sposoby
• example( temat ) – wyświetla przykład dla danego tematu
![Page 7: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/7.jpg)
Jêzyk R
A i a to dwie ró¿ne rzeczy
Polecenia R
; oddziela kolejne komendy w tym samej linii
# ta linia jest niewa¿na
ª� strzałka przywraca poprzednie komendy
![Page 8: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/8.jpg)
•Linux source(„mojekomendy.R”)
•Windows menu File->Source
Zapamiętanie wyników w pliku
sink(„mojewyniki.txt”)
sink( ) – wyniki z powrotem na ekran
Uruchamianie komend przygotowanych w pliku
tekstowym
![Page 9: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/9.jpg)
Obiekty czyli liczby, znaki, tabele, funkcje …
objects( ) - wyświetla wszystkie bieżące obiekty
rm( x, y ) – usuwa obiekty x i y
Wszyskie obiekty razem tworzą workspace. Może być zapamiętany w twoim katalogu jeśli zechcesz.
![Page 10: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/10.jpg)
Tworzymy wektor liczb (obiekt)
assign( x, c( 2.0, 3.0, 4.0 ) )
lub krócej
x <- c( 2.0, 3.0, 4.0 )
albo
c( 2.0, 3.0, 4.0 ) -> x
i dalej
Y <- c( x, 0, x ) – razem 7 liczb
concatenate = powiązać
![Page 11: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/11.jpg)
v <- 2 * x + y + 1
2 3 4 2 3 4 2 (x, x, 2)
2 3 4 2 3 4 2 (x, x, 2)
2 3 4 0 2 3 4 ( y=[x,0,x] )
1 1 1 1 1 1 1
----------------------------
7 10 13 5 9 12 9 (v)
aRytmetyka
![Page 12: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/12.jpg)
aRytmetyka
+ - * / ^ log exp sin cos tan sqrt
sqrt( 3^2 ) daje 3
x daje 2 3 4
max( x ) daje 4
min( x ) daje 2
length( x ) daje 3
sum( x ) daje 9
![Page 13: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/13.jpg)
Funkcje statystyczne
mean( x ) daje 3
sum( x ) / length( x ) daje 3
var( x ) daje 1
![Page 14: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/14.jpg)
Sekwencje regularne
z <- 1:7 daje 1 2 3 4 5 6 7
z <- seq( -1.5, 1.0, by=0.5 )
daje -1.50 -1.0 -0.5 0.0 0.5 1.0
z <- seq( length=4, from=10, by=2 )
daje 10 12 14 16
![Page 15: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/15.jpg)
Wektory znakowe
pakiet <- c( „SAS”, „R” )
jaki <- c( „płatny”, „darmowy” )
A <- paste( pakiet, jaki, sep=„ jest ” )
daje„SAS jest płatny”„R jest darmowy”
![Page 16: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/16.jpg)
Wybieranie z wektora (1)
a <- ( ”pies”, ”kot”, ”mysz”, ”papuga”)
a[2] kota[4] papugaa[3:4]mysz papuga
![Page 17: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/17.jpg)
Wybieranie z wektora (2)
a <- c( 6, 7, 8, 9 )
a[ -(2:3) ] daje 6 i 9a[ a >= 8 ] daje 8 i 9a[ a != 7 ] daje 6, 8 i 9a[ a>6 & a!=8 ] daje 7 i 9a[ a<7 | a>8 ] -> b teraz b
zawiera 6 i 9
![Page 18: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/18.jpg)
Zmienna grupująca (1)
styl <- c(”jazz”, ”folk”, ”hh”, ”hh”, ”folk” ) grupa <- factor( styl ) ;grupa[1] jazz folk hh hh folk
Levels: folk hh jazz
table( grupa )folk hh jazz
2 2 1
![Page 19: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/19.jpg)
Obliczamy średnie w grupach
styl<- c( ”jazz”, ”folk”, ”hh”, ”hh”, ”folk” ) cena <- c( 40 , 30 , 61 , 63 , 40 ) grupa <- factor( styl ) ;
tapply ( cena, grupa, mean )daje
folk hh jazz 35 62 40
![Page 20: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/20.jpg)
Macierze (1)
a <- 1:61 2 3 4 5 6
dim( a ) <- c( 2, 3 )1 3 52 4 6
a[ 2, 1 ] <- 01 3 50 4 6
![Page 21: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/21.jpg)
Macierze (2)a1 3 2 4
b5 6
X<- cbind( a, b ) daje X=1 3 52 4 6
X<- rbind( a, a ) daje X=
1 3
2 4
1 3
2 4
![Page 22: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/22.jpg)
Lista
rodzina <- list( tata=Jan, mama=Maria, l.dzieci=3, wiek.dzieci = c(5, 2, 1) )
rodzina[ [2] ] to Mariarodzina[ [4] ] [3] to 1alborodzina$tata daje Jan
![Page 23: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/23.jpg)
Rama danychSpecjalna lista do składowania danych
Psy <-read.table( „mojplik.txt” , header=TRUE )attach( Psy ) # udostępnia daneNowePsy <- edit( Psy ) #edycja danych
ID IMIE RASA wagaP wagaK
1049 Aniel jamnik 18 16
1219 Rabuś spaniel 26 24.5
1246 Lotna jamnik 19 18.5
1078 Docent spaniel 26 22.7
Gdy pierwszy wiersz danych
stanowią nazwy (header) kolumn
![Page 24: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/24.jpg)
Dane przykładowedata( ) wypisuje wszystkie bazy danychdata( nazwa_danych ) udostępnia dane
Jeżeli przykładowe dane są poza pakietem baselibrary( nls ) udostępnia pakiet nlsdata( )data( Puromycin ) udostępnia dane
![Page 25: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/25.jpg)
data( )
data( chickwts )
attach( chickwts )
chickwts weight feed1 179 horsebean
2 160 horsebean
3 136 horsebean
4 227 horsebean
5 217 horsebean
6 168 horsebean …………………
Wczytujemy przykładowe dane
![Page 26: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/26.jpg)
Podstawowa analiza danych
• podstawowe statystyki• wykres ‘łodyga-liście’• histogram• zgodność z rozkładem normalnym
– dystrybuanta emp. i teoretyczna– wykres kwantyl-kwantyl– test Shapiro-Wilka
![Page 27: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/27.jpg)
summary( weight )
Min. 1st Qu. Median Mean 3rd Qu. Max.
108.0 204.5 258.0 261.3 323.5 423.0
![Page 28: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/28.jpg)
stem( weight )
The decimal point is 2 digit(s) to the right of the |
1 | 124444
1 | 5566777889
2 | 00112223333444
2 | 5556666667778
3 | 0001222222333334444
3 | 5678899
4 | 02
dwie obserwacje:
40… i 42…
![Page 29: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/29.jpg)
hist( weight )
![Page 30: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/30.jpg)
Tworzymy empiryczną dystrybuantę czyliempirical cumulative distribution function
library( stats )plot( ecdf( weight ) )
![Page 31: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/31.jpg)
Nakładamy dystrybuantę teoretyczną rozkładu normalnego
srednia <- mean( weight ) odch.std <- sqrt( var( weight ) )x <- seq( 100, 450, 1 )gestosc <- pnorm( x, srednia, odch.std
)lines( x, gestosc, col = "red„ )
![Page 32: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/32.jpg)
![Page 33: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/33.jpg)
qqnorm( weight )
dodajemy linięprostąqqline( weight )
Porównujemy kwantyle empiryczne i teoretyczne prawa strona jest trochę
za ‘krótka’
![Page 34: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/34.jpg)
library( stats )shapiro.test( weight )
Shapiro-Wilk normality test
data: weight
W = 0.9767, p-value = 0.2101
![Page 35: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/35.jpg)
Porównanie dwóch populacji
• O rozkładzie normalnym – test t
• O dowolnym rozkładzie ciągłym – test nieparametryczny Wilcoxona
![Page 36: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/36.jpg)
table( feed )
feed
casein horsebean linseed
12 10 12
meatmeal soybean sunflower
11 14 12
![Page 37: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/37.jpg)
Karma roślinna( bób + soja + siemię lniane + słonecznik )
R <- weight[ feed == 'horsebean' | feed == 'soybean' | feed == 'linseed' | feed == 'sunflower' ]
Karma pochodzenia zwierzęcego ( kazeina + mięso )
Z <- weight[ feed == 'casein' | feed == 'meatmeal' ]
![Page 38: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/38.jpg)
boxplot( R, Z )
Wykres ramka-wąsy
![Page 39: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/39.jpg)
Porównanie dwóch populacji - test t
t.test( R, Z )
t = -3.3096
df = 48.512
p-value = 0.001767
![Page 40: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/40.jpg)
Testujemy jednorodność wariancji
var.test( R, Z )
F test to compare two variances
data: R and Z F = 1.2699num df = 47denom df = 22 p-value = 0.5519
![Page 41: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/41.jpg)
Test t gdy wariancje są równe
t.test( R, Z, var.equal=TRUE )
t = -3.172,
df = 69,
p-value = 0.002260
![Page 42: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/42.jpg)
Porównanie dwóch populacji o dowolnych rozkładach ciągłych
– test nieparametryczny Wilcoxona
• H0: populacje mają ten sam rozkład ciągły (medianę)
• H1: mediany rozkładów są różne• Brak założeń o normalności rozkładu!
Wygodne!• Mniejsza moc! Jeśli można lepiej
‘unormować’ dane.
![Page 43: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/43.jpg)
Testy nieparametryczne analizują rangi
Obserwacje w populacjach A i B
12, 13, 15, 16, 17, 17.5, 19, 28
Rangi A : 1 3 4 5
Rangi B: 2 6 7 8
![Page 44: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/44.jpg)
Przykład dla danych symulowanych
A <- rchisq( 100, 1 )hist(A)
B <- rchisq( 100, 5 )hist(B)
![Page 45: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/45.jpg)
Test Wilcoxona
wilcox.test( A, B )
Wilcoxon rank sum test with continuity correction
data: A and B W = 736p-value < 2.2e-16alternative hypothesis: true mu is not equal to 0
Przy obserwacjach nie sparowanych Wilcoxon = Mann-Whitney
![Page 46: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/46.jpg)
Porównanie wielu populacji
• O rozkładzie normalnym – analiza wariancji (ANOVA)
• O dowolnym rozkładzie ciągłym – test nieparametryczny Kruskal-Wallis
![Page 47: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/47.jpg)
boxplot( weight ~ feed, data = chickwts )
![Page 48: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/48.jpg)
ANOVA
Porównanie dwóch modeli liniowych
waga = μ + karma + błądmodel1 <- lm( weight ~ 1 + feed,
data=chickwts)
waga = μ + błądmodel2 <- lm( weight ~ 1 ,
data=chickwts)
![Page 49: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/49.jpg)
ANOVA
anova( model1, model2 )
Analysis of Variance Table
Model 1: weight ~ 1Model 2: weight ~ 1 + feed Res.Df RSS Df Sum of Sq F Pr(>F) 1 70 426685 2 65 195556 5 231129 15.365 5.936e-10 ***---Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.'
0.1 ' ' 1
![Page 50: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/50.jpg)
summary( model1 )
Call:
lm(formula = weight ~ 1 + feed, data = chickwts)
Residuals:
Min 1Q Median 3Q Max
-123.909 -34.413 1.571 38.170 103.091
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 323.583 15.834 20.436 < 2e-16 ***
feedhorsebean -163.383 23.485 -6.957 2.07e-09 ***
feedlinseed -104.833 22.393 -4.682 1.49e-05 ***
feedmeatmeal -46.674 22.896 -2.039 0.045567 *
feedsoybean -77.155 21.578 -3.576 0.000665 ***
feedsunflower 5.333 22.393 0.238 0.812495
![Page 51: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/51.jpg)
ANOVA - Sprawdzamy założenie
bartlett.test( weight ~ feed, data = chickwts )
Bartlett test for homogeneity of variances
data: weight by feed Bartlett's K-squared = 3.2597df = 5p-value = 0.66
![Page 52: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/52.jpg)
Kruskal-Wallis
kruskal.test( weight ~ feed, data = chickwts )
Kruskal-Wallis rank sum test
Kruskal-Wallis chi-squared = 37.3427 df = 5 p-value = 5.113e-07
![Page 53: R – środowisko do](https://reader035.vdocuments.pub/reader035/viewer/2022062221/56812b3a550346895d8f4a7d/html5/thumbnails/53.jpg)
Zadanie dla chętnychAnalizowano wpływ mutacji w genie leptyny (CC, CG, GG) na ekspresję tego genu (poziom mRNA). Zbadano 14 świń i dla każdej wykonano 3 pomiary ekspresji genu. Zbadaj wpływ genu na średni (z trzech pomiarów) poziom leptyny. Wykorzystaj test nieparametryczny.
dane22.txtkol 1: genotyp Leptynykol 2: pomiar 1kol 3: pomiar 2kol 4: pomiar 3
http://jay.au.poznan.pl/~mcszyd/dyda/pakiety/index.html