This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

plot(cars)
summary(cars)
summary(cars$speed)

hist(cars$speed);hist(cars$dist)
hist(cars$speed, breaks = 10, xlab="Szybkość", ylab = "Częstość występowania", main="Histogram szybkości", probability=TRUE, col="gray")

plot(density(cars$speed), type="h")
plot(ecdf(cars$speed)) #kumulacja danych

t1 <- table(cars$speed)
t1
barplot(t1)
barplot(t1/length(t1))

plot(cars$speed, cars$dist)
plot(dist~speed, data = cars)
boxplot(dist~speed, data = cars)

l1 <- lm(dist~speed, data = cars)
l1
plot(dist~speed, data = cars); abline(l1); abline(a = -17.579, b = 3.932, untf = FALSE, col = "red")

l2 <- lm(dist~I(speed^2), data = cars)
l2
l2 <- predict(l2)
plot(dist~speed, data = cars); lines(l2~speed, data = cars)

ls <- loess(dist~speed, data = cars, degree = 2)
ls
l3 <- predict(ls)
plot(dist~speed, data = cars); lines(l3~speed, data = cars)
summary(anscombe)
mean(anscombe$y4)
sd(anscombe$y1)
sd(anscombe$y2)
sd(anscombe$y3)
sd(anscombe$y4)
cor(anscombe$x1, anscombe$y1)
cor(anscombe$x2, anscombe$y2)
cor(anscombe$x3, anscombe$y3)
cor(anscombe$x4, anscombe$y4)
l1 <- lm(y1~x1, data = anscombe)
l2 <- lm(y2~x2, data = anscombe)
l3 <- lm(y3~x3, data = anscombe)
l4 <- lm(y4~x4, data = anscombe)
plot(y1~x1, data = anscombe, xlim = c(3,19), ylim = c(3,13)); abline(l1)
plot(y2~x2, data = anscombe, xlim = c(3,19), ylim = c(3,13)); abline(l2)
plot(y3~x3, data = anscombe, xlim = c(3,19), ylim = c(3,13)); abline(l3)
plot(y4~x4, data = anscombe, xlim = c(3,19), ylim = c(3,13)); abline(l4)
zbior1 <- rnorm(1000)
zbior2 <- rnorm(1000)
plot(zbior1, col="red"); points(zbior2, col="green")
plot(zbior1, zbior2)

range(zbior1); mean(zbior1); median(zbior1)
range(zbior2); mean(zbior2); median(zbior2)

szbior1 <- sort(zbior1)
szbior2 <- sort(zbior2)
plot(szbior1, col="red"); points(szbior2, col="green")

rszbior1 <- rev(szbior1)
rszbior2 <- rev(szbior2)
plot(rszbior1, col="red"); points(rszbior2, col="green")

hist(rszbior1, col="red"); hist(rszbior2, col="green")

var(rszbior1)
var(rszbior2)

sd(rszbior1)
sd(rszbior2)

shapiro.test(zbior1)
shapiro.test(zbior2)

t.test(zbior2)
wilcox.test(zbior2)

var.test(zbior1,zbior2)
t.test(zbior1,zbior2)

quantile(zbior1)
quantile(zbior2)

cor(szbior1, szbior2)
cor.test(szbior1, szbior2)

#zbior1[1001] <- 3

model1 <- szbior1~rszbior2
class(model1)
typeof(model1)
str(model1)
lm(model1)

mean(zbior1)
mean(zbior2)
wynik<-aov(model1)
wynik
summary(wynik)
#Funkcje pomocnicze

rm(list = ls())

czy.rozklad.normalny <- function(dane, info = TRUE)
{
  #Test Shapiro-Wilka stosowany zwykle dla N<100, gdy duże grupy, zwykle test Kołmogorowa-Smirnowa
  N <- length(dane)
  #cat(paste("N=",N))
  if(N <= 1000) wynik <- shapiro.test(dane)
  else wynik <- ks.test(dane, "pnorm", mean(dane), sd(dane))
  if(info) print(wynik)
  return(wynik$p.value > 0.05)
}

czy.zblizone.wariancje <- function(dane1,dane2, info = TRUE)
{
  if(info) cat("Porównywanie wariancji\n")
  n1 <- czy.rozklad.normalny(dane1, FALSE)
  n2 <- czy.rozklad.normalny(dane2, FALSE)
  stopifnot(n1 & n2)
  
  wynik <- var.test(dane1, dane2, alternative = "two.sided")
  #F,estimate - stosunek wariancji jednego i drugiego zbioru
  if(info) 
  {
    print(wynik)
    print(wynik$estimate)
  }
  return(wynik$p.value > 0.05)
}

czy.dwa.zbiory.rozne <- function(dane1, dane2, zalezne = FALSE, info = TRUE)
{
  n1 <- czy.rozklad.normalny(dane1, FALSE)
  n2 <- czy.rozklad.normalny(dane2, FALSE)
  if(n1) cat("Zbiór pierwszy ma rozkład normalny\n") else cat("Zbiór pierwszy nie ma rozkładu normalnego\n")
  if(n2) cat("Zbiór drugi ma rozkład normalny\n") else cat("Zbiór drugi nie ma rozkładu normalnego\n")
  if(zalezne)
  {
    cat("Próby zależne\n")
    if(n1 & n2)
    {
      cat("Test t-Studenta dla dwóch prób zależnych\n")
      wynik <- t.test(dane1, dane2, paired = TRUE)
    }
    else
    {
      cat("Test Wilcoxona dla dwóch prób\n")
      wynik <- wilcox.test(dane1, dane2, paired = TRUE)
    }  
  }
  else
  {
    cat("Próby niezależne\n")
    if(n1 & n2)
    {
      ve <- czy.zblizone.wariancje(dane1, dane2, info)
      if(ve) cat("Test t-Studenta dla dwóch prób niezależnych\n")
      else cat("Test Walsha dla dwóch prób niezależnych\n")
      wynik <- t.test(dane1, dane2, var.equal = ve)
    }
    else
    {
      cat("Test Manna-Whitneya\n")
      wynik <- wilcox.test(dane1, dane2, exact = FALSE)
    }  
  }
  if(info) print(wynik)
  return(wynik$p.value < 0.05)
}

dane_test1 <- runif(3000, min = 0, max = 2)
dane_test2 <- rnorm(3000, sd = 2, mean = 1)
#czy.rozklad.normalny(dane_test1)
#czy.rozklad.normalny(dane_test2)
#czy.zblizone.wariancje(dane_test1, dane_test2)
czy.dwa.zbiory.rozne(dane_test1, dane_test2, zalezne = TRUE)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KYGBge3J9DQpwbG90KGNhcnMpDQpzdW1tYXJ5KGNhcnMpDQpzdW1tYXJ5KGNhcnMkc3BlZWQpDQoNCmhpc3QoY2FycyRzcGVlZCk7aGlzdChjYXJzJGRpc3QpDQpoaXN0KGNhcnMkc3BlZWQsIGJyZWFrcyA9IDEwLCB4bGFiPSJTenlia2/Fm8SHIiwgeWxhYiA9ICJDesSZc3RvxZvEhyB3eXN0xJlwb3dhbmlhIiwgbWFpbj0iSGlzdG9ncmFtIHN6eWJrb8WbY2kiLCBwcm9iYWJpbGl0eT1UUlVFLCBjb2w9ImdyYXkiKQ0KDQpwbG90KGRlbnNpdHkoY2FycyRzcGVlZCksIHR5cGU9ImgiKQ0KcGxvdChlY2RmKGNhcnMkc3BlZWQpKSAja3VtdWxhY2phIGRhbnljaA0KDQp0MSA8LSB0YWJsZShjYXJzJHNwZWVkKQ0KdDENCmJhcnBsb3QodDEpDQpiYXJwbG90KHQxL2xlbmd0aCh0MSkpDQoNCnBsb3QoY2FycyRzcGVlZCwgY2FycyRkaXN0KQ0KcGxvdChkaXN0fnNwZWVkLCBkYXRhID0gY2FycykNCmJveHBsb3QoZGlzdH5zcGVlZCwgZGF0YSA9IGNhcnMpDQoNCmwxIDwtIGxtKGRpc3R+c3BlZWQsIGRhdGEgPSBjYXJzKQ0KbDENCnBsb3QoZGlzdH5zcGVlZCwgZGF0YSA9IGNhcnMpOyBhYmxpbmUobDEpOyBhYmxpbmUoYSA9IC0xNy41NzksIGIgPSAzLjkzMiwgdW50ZiA9IEZBTFNFLCBjb2wgPSAicmVkIikNCg0KbDIgPC0gbG0oZGlzdH5JKHNwZWVkXjIpLCBkYXRhID0gY2FycykNCmwyDQpsMiA8LSBwcmVkaWN0KGwyKQ0KcGxvdChkaXN0fnNwZWVkLCBkYXRhID0gY2Fycyk7IGxpbmVzKGwyfnNwZWVkLCBkYXRhID0gY2FycykNCg0KbHMgPC0gbG9lc3MoZGlzdH5zcGVlZCwgZGF0YSA9IGNhcnMsIGRlZ3JlZSA9IDIpDQpscw0KbDMgPC0gcHJlZGljdChscykNCnBsb3QoZGlzdH5zcGVlZCwgZGF0YSA9IGNhcnMpOyBsaW5lcyhsM35zcGVlZCwgZGF0YSA9IGNhcnMpDQpgYGANCg0KYGBge3J9DQpzdW1tYXJ5KGFuc2NvbWJlKQ0KbWVhbihhbnNjb21iZSR5NCkNCnNkKGFuc2NvbWJlJHkxKQ0Kc2QoYW5zY29tYmUkeTIpDQpzZChhbnNjb21iZSR5MykNCnNkKGFuc2NvbWJlJHk0KQ0KY29yKGFuc2NvbWJlJHgxLCBhbnNjb21iZSR5MSkNCmNvcihhbnNjb21iZSR4MiwgYW5zY29tYmUkeTIpDQpjb3IoYW5zY29tYmUkeDMsIGFuc2NvbWJlJHkzKQ0KY29yKGFuc2NvbWJlJHg0LCBhbnNjb21iZSR5NCkNCmwxIDwtIGxtKHkxfngxLCBkYXRhID0gYW5zY29tYmUpDQpsMiA8LSBsbSh5Mn54MiwgZGF0YSA9IGFuc2NvbWJlKQ0KbDMgPC0gbG0oeTN+eDMsIGRhdGEgPSBhbnNjb21iZSkNCmw0IDwtIGxtKHk0fng0LCBkYXRhID0gYW5zY29tYmUpDQpwbG90KHkxfngxLCBkYXRhID0gYW5zY29tYmUsIHhsaW0gPSBjKDMsMTkpLCB5bGltID0gYygzLDEzKSk7IGFibGluZShsMSkNCnBsb3QoeTJ+eDIsIGRhdGEgPSBhbnNjb21iZSwgeGxpbSA9IGMoMywxOSksIHlsaW0gPSBjKDMsMTMpKTsgYWJsaW5lKGwyKQ0KcGxvdCh5M354MywgZGF0YSA9IGFuc2NvbWJlLCB4bGltID0gYygzLDE5KSwgeWxpbSA9IGMoMywxMykpOyBhYmxpbmUobDMpDQpwbG90KHk0fng0LCBkYXRhID0gYW5zY29tYmUsIHhsaW0gPSBjKDMsMTkpLCB5bGltID0gYygzLDEzKSk7IGFibGluZShsNCkNCmBgYA0KDQoNCg0KYGBge3J9DQp6YmlvcjEgPC0gcm5vcm0oMTAwMCkNCnpiaW9yMiA8LSBybm9ybSgxMDAwKQ0KcGxvdCh6YmlvcjEsIGNvbD0icmVkIik7IHBvaW50cyh6YmlvcjIsIGNvbD0iZ3JlZW4iKQ0KcGxvdCh6YmlvcjEsIHpiaW9yMikNCg0KcmFuZ2UoemJpb3IxKTsgbWVhbih6YmlvcjEpOyBtZWRpYW4oemJpb3IxKQ0KcmFuZ2UoemJpb3IyKTsgbWVhbih6YmlvcjIpOyBtZWRpYW4oemJpb3IyKQ0KDQpzemJpb3IxIDwtIHNvcnQoemJpb3IxKQ0Kc3piaW9yMiA8LSBzb3J0KHpiaW9yMikNCnBsb3Qoc3piaW9yMSwgY29sPSJyZWQiKTsgcG9pbnRzKHN6YmlvcjIsIGNvbD0iZ3JlZW4iKQ0KDQpyc3piaW9yMSA8LSByZXYoc3piaW9yMSkNCnJzemJpb3IyIDwtIHJldihzemJpb3IyKQ0KcGxvdChyc3piaW9yMSwgY29sPSJyZWQiKTsgcG9pbnRzKHJzemJpb3IyLCBjb2w9ImdyZWVuIikNCg0KaGlzdChyc3piaW9yMSwgY29sPSJyZWQiKTsgaGlzdChyc3piaW9yMiwgY29sPSJncmVlbiIpDQoNCnZhcihyc3piaW9yMSkNCnZhcihyc3piaW9yMikNCg0Kc2QocnN6YmlvcjEpDQpzZChyc3piaW9yMikNCg0Kc2hhcGlyby50ZXN0KHpiaW9yMSkNCnNoYXBpcm8udGVzdCh6YmlvcjIpDQoNCnQudGVzdCh6YmlvcjIpDQp3aWxjb3gudGVzdCh6YmlvcjIpDQoNCnZhci50ZXN0KHpiaW9yMSx6YmlvcjIpDQp0LnRlc3QoemJpb3IxLHpiaW9yMikNCg0KcXVhbnRpbGUoemJpb3IxKQ0KcXVhbnRpbGUoemJpb3IyKQ0KDQpjb3Ioc3piaW9yMSwgc3piaW9yMikNCmNvci50ZXN0KHN6YmlvcjEsIHN6YmlvcjIpDQoNCiN6YmlvcjFbMTAwMV0gPC0gMw0KDQptb2RlbDEgPC0gc3piaW9yMX5yc3piaW9yMg0KY2xhc3MobW9kZWwxKQ0KdHlwZW9mKG1vZGVsMSkNCnN0cihtb2RlbDEpDQpsbShtb2RlbDEpDQoNCm1lYW4oemJpb3IxKQ0KbWVhbih6YmlvcjIpDQp3eW5pazwtYW92KG1vZGVsMSkNCnd5bmlrDQpzdW1tYXJ5KHd5bmlrKQ0KYGBgDQpgYGB7ciBTVEFUWVNUWUtBfQ0KI0Z1bmtjamUgcG9tb2NuaWN6ZQ0KDQpybShsaXN0ID0gbHMoKSkNCg0KY3p5LnJvemtsYWQubm9ybWFsbnkgPC0gZnVuY3Rpb24oZGFuZSwgaW5mbyA9IFRSVUUpDQp7DQogICNUZXN0IFNoYXBpcm8tV2lsa2Egc3Rvc293YW55IHp3eWtsZSBkbGEgTjwxMDAsIGdkeSBkdcW8ZSBncnVweSwgend5a2xlIHRlc3QgS2/Fgm1vZ29yb3dhLVNtaXJub3dhDQogIE4gPC0gbGVuZ3RoKGRhbmUpDQogICNjYXQocGFzdGUoIk49IixOKSkNCiAgaWYoTiA8PSAxMDAwKSB3eW5payA8LSBzaGFwaXJvLnRlc3QoZGFuZSkNCiAgZWxzZSB3eW5payA8LSBrcy50ZXN0KGRhbmUsICJwbm9ybSIsIG1lYW4oZGFuZSksIHNkKGRhbmUpKQ0KICBpZihpbmZvKSBwcmludCh3eW5paykNCiAgcmV0dXJuKHd5bmlrJHAudmFsdWUgPiAwLjA1KQ0KfQ0KDQpjenkuemJsaXpvbmUud2FyaWFuY2plIDwtIGZ1bmN0aW9uKGRhbmUxLGRhbmUyLCBpbmZvID0gVFJVRSkNCnsNCiAgaWYoaW5mbykgY2F0KCJQb3LDs3dueXdhbmllIHdhcmlhbmNqaVxuIikNCiAgbjEgPC0gY3p5LnJvemtsYWQubm9ybWFsbnkoZGFuZTEsIEZBTFNFKQ0KICBuMiA8LSBjenkucm96a2xhZC5ub3JtYWxueShkYW5lMiwgRkFMU0UpDQogIHN0b3BpZm5vdChuMSAmIG4yKQ0KICANCiAgd3luaWsgPC0gdmFyLnRlc3QoZGFuZTEsIGRhbmUyLCBhbHRlcm5hdGl2ZSA9ICJ0d28uc2lkZWQiKQ0KICAjRixlc3RpbWF0ZSAtIHN0b3N1bmVrIHdhcmlhbmNqaSBqZWRuZWdvIGkgZHJ1Z2llZ28gemJpb3J1DQogIGlmKGluZm8pIA0KICB7DQogICAgcHJpbnQod3luaWspDQogICAgcHJpbnQod3luaWskZXN0aW1hdGUpDQogIH0NCiAgcmV0dXJuKHd5bmlrJHAudmFsdWUgPiAwLjA1KQ0KfQ0KDQpjenkuZHdhLnpiaW9yeS5yb3puZSA8LSBmdW5jdGlvbihkYW5lMSwgZGFuZTIsIHphbGV6bmUgPSBGQUxTRSwgaW5mbyA9IFRSVUUpDQp7DQogIG4xIDwtIGN6eS5yb3prbGFkLm5vcm1hbG55KGRhbmUxLCBGQUxTRSkNCiAgbjIgPC0gY3p5LnJvemtsYWQubm9ybWFsbnkoZGFuZTIsIEZBTFNFKQ0KICBpZihuMSkgY2F0KCJaYmnDs3IgcGllcndzenkgbWEgcm96a8WCYWQgbm9ybWFsbnlcbiIpIGVsc2UgY2F0KCJaYmnDs3IgcGllcndzenkgbmllIG1hIHJvemvFgmFkdSBub3JtYWxuZWdvXG4iKQ0KICBpZihuMikgY2F0KCJaYmnDs3IgZHJ1Z2kgbWEgcm96a8WCYWQgbm9ybWFsbnlcbiIpIGVsc2UgY2F0KCJaYmnDs3IgZHJ1Z2kgbmllIG1hIHJvemvFgmFkdSBub3JtYWxuZWdvXG4iKQ0KICBpZih6YWxlem5lKQ0KICB7DQogICAgY2F0KCJQcsOzYnkgemFsZcW8bmVcbiIpDQogICAgaWYobjEgJiBuMikNCiAgICB7DQogICAgICBjYXQoIlRlc3QgdC1TdHVkZW50YSBkbGEgZHfDs2NoIHByw7NiIHphbGXFvG55Y2hcbiIpDQogICAgICB3eW5payA8LSB0LnRlc3QoZGFuZTEsIGRhbmUyLCBwYWlyZWQgPSBUUlVFKQ0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgY2F0KCJUZXN0IFdpbGNveG9uYSBkbGEgZHfDs2NoIHByw7NiXG4iKQ0KICAgICAgd3luaWsgPC0gd2lsY294LnRlc3QoZGFuZTEsIGRhbmUyLCBwYWlyZWQgPSBUUlVFKQ0KICAgIH0gIA0KICB9DQogIGVsc2UNCiAgew0KICAgIGNhdCgiUHLDs2J5IG5pZXphbGXFvG5lXG4iKQ0KICAgIGlmKG4xICYgbjIpDQogICAgew0KICAgICAgdmUgPC0gY3p5LnpibGl6b25lLndhcmlhbmNqZShkYW5lMSwgZGFuZTIsIGluZm8pDQogICAgICBpZih2ZSkgY2F0KCJUZXN0IHQtU3R1ZGVudGEgZGxhIGR3w7NjaCBwcsOzYiBuaWV6YWxlxbxueWNoXG4iKQ0KICAgICAgZWxzZSBjYXQoIlRlc3QgV2Fsc2hhIGRsYSBkd8OzY2ggcHLDs2IgbmllemFsZcW8bnljaFxuIikNCiAgICAgIHd5bmlrIDwtIHQudGVzdChkYW5lMSwgZGFuZTIsIHZhci5lcXVhbCA9IHZlKQ0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAgY2F0KCJUZXN0IE1hbm5hLVdoaXRuZXlhXG4iKQ0KICAgICAgd3luaWsgPC0gd2lsY294LnRlc3QoZGFuZTEsIGRhbmUyLCBleGFjdCA9IEZBTFNFKQ0KICAgIH0gIA0KICB9DQogIGlmKGluZm8pIHByaW50KHd5bmlrKQ0KICByZXR1cm4od3luaWskcC52YWx1ZSA8IDAuMDUpDQp9DQoNCmRhbmVfdGVzdDEgPC0gcnVuaWYoMzAwMCwgbWluID0gMCwgbWF4ID0gMikNCmRhbmVfdGVzdDIgPC0gcm5vcm0oMzAwMCwgc2QgPSAyLCBtZWFuID0gMSkNCiNjenkucm96a2xhZC5ub3JtYWxueShkYW5lX3Rlc3QxKQ0KI2N6eS5yb3prbGFkLm5vcm1hbG55KGRhbmVfdGVzdDIpDQojY3p5LnpibGl6b25lLndhcmlhbmNqZShkYW5lX3Rlc3QxLCBkYW5lX3Rlc3QyKQ0KY3p5LmR3YS56Ymlvcnkucm96bmUoZGFuZV90ZXN0MSwgZGFuZV90ZXN0MiwgemFsZXpuZSA9IFRSVUUpDQpgYGANCg0K