53
R

R – środowisko do

Embed Size (px)

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 Presentation

Citation preview

Page 1: R – środowisko do

R

Page 2: R – środowisko do

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

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

R pod Linuxem

• $ mkdir mojkatalog

• $ cd mojkatalog

• $ R

• >…

• >q( )

Page 5: R – środowisko do

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

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

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

•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

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

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

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

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

Funkcje statystyczne

mean( x ) daje 3

sum( x ) / length( x ) daje 3

var( x ) daje 1

Page 14: R – środowisko do

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

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

Wybieranie z wektora (1)

a <- ( ”pies”, ”kot”, ”mysz”, ”papuga”)

a[2] kota[4] papugaa[3:4]mysz papuga

Page 17: R – środowisko do

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

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

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

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

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

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

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

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

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

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

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

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

hist( weight )

Page 30: R – środowisko do

Tworzymy empiryczną dystrybuantę czyliempirical cumulative distribution function

library( stats )plot( ecdf( weight ) )

Page 31: R – środowisko do

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
Page 33: R – środowisko do

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

library( stats )shapiro.test( weight )

Shapiro-Wilk normality test

data: weight

W = 0.9767, p-value = 0.2101

Page 35: R – środowisko do

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

table( feed )

feed

casein horsebean linseed

12 10 12

meatmeal soybean sunflower

11 14 12

Page 37: R – środowisko do

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

boxplot( R, Z )

Wykres ramka-wąsy

Page 39: R – środowisko do

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

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

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

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

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

Przykład dla danych symulowanych

A <- rchisq( 100, 1 )hist(A)

B <- rchisq( 100, 5 )hist(B)

Page 45: R – środowisko do

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

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

boxplot( weight ~ feed, data = chickwts )

Page 48: R – środowisko do

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

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

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

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

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

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