Wybór zbioru danych


Do zaliczenia przedmiotu wybrałam zbiór danych R “crabs”. Można go znaleźć w pakiecie “MASS”.

# zainstalować pakiet "MASS"
library(MASS)
data("crabs")
head(crabs)
##   sp sex index   FL  RW   CL   CW  BD
## 1  B   M     1  8.1 6.7 16.1 19.0 7.0
## 2  B   M     2  8.8 7.7 18.1 20.8 7.4
## 3  B   M     3  9.2 7.8 19.0 22.4 7.7
## 4  B   M     4  9.6 7.9 20.1 23.1 8.2
## 5  B   M     5  9.8 8.0 20.3 23.0 8.2
## 6  B   M     6 10.8 9.0 23.0 26.5 9.8

Jakie dane przedstawia ten zbiór danych


Zbiór “crabs” z pakietu “MASS” przedstawia pomiary morfologiczne 200 krabów Leptografsus.

Co oznaczają dane w tym zbiorze

  • sp - przedstawia gatunek kraba
    • ‘B’ - niebieski
    • ‘0’ - pomarańczowy
  • sex - przedstawia płeć kraba
    • ‘M’ - mężczyzna
    • ‘F’ - kobieta
  • index - kraby zostały podzielone na 4 grupy: BM, BF, OM, OF
  • FL - wielkość płata czołowego w mm
  • RW - szerokość tylna w mm
  • CL - długość pancerza w mm
  • CW - szerokość pancerza w mm
  • BD - głębokość korpusu w mm
# dzięki temu można znaleźć szczegółowe informacje na temat tego zbioru zadań
??crabs
## uruchamianie serwera httpd dla pomocy ... wykonano

Co możemy wyczytać z tego zbioru

# dzięki temu możemy zobaczyć podsumowanie danych zawartych w zbiorze
summary(crabs)
##  sp      sex         index            FL              RW              CL       
##  B:100   F:100   Min.   : 1.0   Min.   : 7.20   Min.   : 6.50   Min.   :14.70  
##  O:100   M:100   1st Qu.:13.0   1st Qu.:12.90   1st Qu.:11.00   1st Qu.:27.27  
##                  Median :25.5   Median :15.55   Median :12.80   Median :32.10  
##                  Mean   :25.5   Mean   :15.58   Mean   :12.74   Mean   :32.11  
##                  3rd Qu.:38.0   3rd Qu.:18.05   3rd Qu.:14.30   3rd Qu.:37.23  
##                  Max.   :50.0   Max.   :23.10   Max.   :20.20   Max.   :47.60  
##        CW              BD       
##  Min.   :17.10   Min.   : 6.10  
##  1st Qu.:31.50   1st Qu.:11.40  
##  Median :36.80   Median :13.90  
##  Mean   :36.41   Mean   :14.03  
##  3rd Qu.:42.00   3rd Qu.:16.60  
##  Max.   :54.60   Max.   :21.60

Za pomocą tej komendy możemy podsumować dane dotyczące każdej kolumny. W pierwszej zostały zliczone kraby ze względu na gatunek, w drugiej ze względu na płeć. Z pozostałych kolumn dane zostały podsumowane i wyliczone wyszczególniając:

  • Min. - minimalna wartość
  • 1st Qu. - pierwszy kwartyl
  • Median - mediana
  • Mean - wartość średnia
  • 3rd Qu. - trzeci kwartyl
  • Max - maksymalna wartość

Porównanie krabów


Za pomocą programu R możemy wykonać różne wykresy, które pomogą nam przedstawić i porównać dane zawarte w wybranym zbiorze.

Ilość krabów ze względu na gatunek i płeć

# tworzymy macierz z danymi podzielonymi na gatunek i płeć
gatunek_i_plec=table(crabs$sp, crabs$sex)
# tworzymy wykres słupkowy z różnymi kolorami dla każdej płci
barplot(gatunek_i_plec, main="Liczba krabów ze względu na gatunek i płeć", col=c("deepskyblue1", "darkorange1"), border="black", beside=TRUE, legend=TRUE)

Na podstawie tego wykresu można stwierdzić, że ilość krabów płci męskiej i żeńskiej jest równa i wynosi po 50. Możemy także powiedzieć, że liczba krabów ze względu na gatunek również jest równa.

Rozkład długości płatów czołowych krabów ze względu na gatunek

# dzięki temu mamy obszar na dwa wykresy w jednym rzędzie
par(mfrow=c(2,1))
# tworzymy wykres dla gatunku "O"
gatunek_o=table(crabs$FL[crabs$sp=='O'])
barplot(gatunek_o, main="Rozkład długości płata czołowego krabów z gatunku O", xlab="Długość płata czołowego", ylab="Liczba krabów", col="darkorange1")
# tworzymy wykres dla gatunku "B"
gatunek_b=table(crabs$FL[crabs$sp=='B'])
barplot(gatunek_b, main="Rozkład długości płata czołowego krabów z gatunku B", xlab="Długość płata czołowego", ylab="Liczba krabów", col="deepskyblue1")

Obliczenia z wykorzystaniem zbioru


Porównanie średnich długości płatu czołowego pomiędzy różnymi krabami

ze względu na gatunek
tapply(crabs$FL, crabs$sp, mean)
##      B      O 
## 14.056 17.110

Możemy stwierdzić, że średnia długość płatu czołowego wśród krabów z gatunku “O” jest większa niż “B”.

ze względu na płeć
tapply(crabs$FL, crabs$sex, mean)
##      F      M 
## 15.432 15.734

Dzięki użyciu tej funkcji możemy obliczyć także wartości dla innych podziałów. Teraz możemy stwierdzić, że średnia długość płatu czołowego dla męskich i żeńskich krabów jest zbliżona, jednkaże u męskich jest minimalnie większa.

Czy średnie głębokości korpusu wśród różnych gatunków krabów są istotnie różne

t.test(crabs$BD ~ crabs$sp)
## 
##  Welch Two Sample t-test
## 
## data:  crabs$BD by crabs$sp
## t = -6.5823, df = 197.86, p-value = 4.065e-10
## alternative hypothesis: true difference in means between group B and group O is not equal to 0
## 95 percent confidence interval:
##  -3.762328 -2.027672
## sample estimates:
## mean in group B mean in group O 
##          12.583          15.478

p-value=4.065e-10 > 0.05

Przyjmując poziom istotności 0.05, nie mamy wystarczających dowodów, aby odrzucić hipotezę zerową, mówiącą, że średnie głębokości korpusu wśród róznych gatunków krabów są istotnie różne.

Sprawdzanie korelacji między długością i szerokością pancerza

cor(crabs$CL, crabs$CW)
## [1] 0.9950225

Korelacja jest bliska 1 zatem oznacza to, że długość i szerokość pancerza rosną razem, co sugeruje dodatnią korelację.

Obliczanie średnich dla różnych zmiennych

ze względu na gatunek
srednie_sp=aggregate(cbind(FL, RW, CL, CW, BD)~sp, data=crabs, mean)
srednie_sp
##   sp     FL     RW     CL     CW     BD
## 1  B 14.056 11.928 30.058 34.717 12.583
## 2  O 17.110 13.549 34.153 38.112 15.478

Na podstawie danych z tych tabel mamy możliwość porównywania średnich dla różnych zmiennych w zależności od gatunku krabów.

gatunki=srednie_sp$sp
wielkosc_plata_czolowego=srednie_sp$FL
szerokosc_tylna=srednie_sp$RW
dlugosc_pancerza=srednie_sp$CL
szerokosc_pancerza=srednie_sp$CW
glebokosc_korpusu=srednie_sp$BD
# ustalamy obszaru wykresów
par(mfrow=c(2,3))
barplot(wielkosc_plata_czolowego, names.arg=gatunki, main="Średnia wielkość płata czołowego", col="dodgerblue", border="black")
barplot(szerokosc_tylna, names.arg=gatunki, main="Średnia szerokość tylna", col="dodgerblue1", border="black")
barplot(dlugosc_pancerza, names.arg=gatunki, main="Średnia długość pancerza", col="dodgerblue2", border="black")
barplot(szerokosc_pancerza, names.arg=gatunki, main="Średnia szerokość pancerza", col="dodgerblue3", border="black")
barplot(glebokosc_korpusu, names.arg=gatunki, main="Średnia głębokość korpusu", col="dodgerblue4", border="black")

ze względu na płeć
srednie_sex=aggregate(cbind(FL, RW, CL, CW, BD)~sex, data=crabs, mean)
srednie_sex
##   sex     FL     RW     CL     CW     BD
## 1   F 15.432 13.487 31.360 35.830 13.724
## 2   M 15.734 11.990 32.851 36.999 14.337

Na podstawie danych z tych tabel mamy możliwość porównywania średnich dla różnych zmiennych w zależności od płci krabów.

gatunkis=srednie_sp$sp
wielkosc_plata_czolowegos=srednie_sex$FL
szerokosc_tylnas=srednie_sex$RW
dlugosc_pancerzas=srednie_sex$CL
szerokosc_pancerzas=srednie_sex$CW
glebokosc_korpusus=srednie_sex$BD
# ustalamy obszaru wykresów
par(mfrow=c(2,3))
barplot(wielkosc_plata_czolowegos, names.arg=gatunki, main="Średnia wielkość płata czołowego", col="dodgerblue", border="black")
barplot(szerokosc_tylnas, names.arg=gatunki, main="Średnia szerokość tylna", col="dodgerblue1", border="black")
barplot(dlugosc_pancerzas, names.arg=gatunki, main="Średnia długość pancerza", col="dodgerblue2", border="black")
barplot(szerokosc_pancerzas, names.arg=gatunki, main="Średnia szerokość pancerza", col="dodgerblue3", border="black")
barplot(glebokosc_korpusus, names.arg=gatunki, main="Średnia głębokość korpusu", col="dodgerblue4", border="black")

Przeprowadzamy analizę regresji, aby sprawdzić, czy można przewidzieć jedną zmienną na podstawie innych

lm_model=lm(FL~CW+sex, data = crabs)
summary(lm_model)
## 
## Call:
## lm(formula = FL ~ CW + sex, data = crabs)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.08735 -0.73501  0.01997  0.76249  1.76792 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.046241   0.310331   0.149    0.882    
## CW           0.429410   0.008275  51.892   <2e-16 ***
## sexM        -0.199980   0.129955  -1.539    0.125    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9164 on 197 degrees of freedom
## Multiple R-squared:  0.932,  Adjusted R-squared:  0.9313 
## F-statistic:  1349 on 2 and 197 DF,  p-value: < 2.2e-16

p-values=2.2e-16 > 0.05

Przyjmując poziom istotności na poziomie 0.05 nie możemy stwierdzić, czy można przewidzieć jedną zmienną na podstawie innych przy wykorzystaniu wielkości płata czołowego, szerokości pancerza oraz płci krabów.