Advertisement
Guest User

Untitled

a guest
May 20th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 4.70 KB | None | 0 0
  1. #ZADANIE 1
  2.  
  3. kwartyl <- function(dane, q)
  4. {
  5.   pozycjaKwartyla = sum(dane$counts) * q
  6.   nIsk <- dane$counts   #liczebnosc skumulowana
  7.  
  8.   for(i in 1:length(dane$counts))
  9.   {
  10.     nIsk[i] = sum(dane$counts[1:i])
  11.   }
  12.  
  13.   znaleziona = 0
  14.   pozycja = 1
  15.   while (znaleziona == 0)
  16.   {
  17.     if (pozycjaKwartyla < nIsk[pozycja] )
  18.       znaleziona = 1
  19.     else
  20.       pozycja = pozycja + 1
  21.   }
  22.  
  23.   xI0 = dane$breaks[pozycja]       #dolna wartosc przedzialu z kwantylem
  24.   nIskminus1 = nIsk[pozycja-1]    #liczebnosc skumulowana przedzialu poprzedzajacego kwantyl
  25.   nI0 = dane$counts[pozycja]       #liczebnosc przedzialu z kwantylem
  26.   rozpietoscPrzedzialu = dane$breaks[pozycja+1] - dane$breaks[pozycja]
  27.   wynik = xI0 + ((pozycjaKwartyla - nIskminus1) * (rozpietoscPrzedzialu / nI0))
  28.   return (wynik)
  29. }
  30.  
  31.  
  32. zad1a <- function(wektor)
  33. {
  34.   sorted = sort(wektor)  #szereg szczegolowy
  35.  
  36.   sredniaArytmetyczna = mean(sorted)
  37.   sredniaHarmoniczna = 1 / mean(1 / sorted)
  38.   sredniaGeometryczna = prod(sorted) ^ (1 / length(sorted))
  39.   mediana = median(sorted)
  40.   wariancja = var(sorted)
  41.  
  42.   odchylenieStandardowe = sqrt(wariancja)
  43.   odchyleniePrzecietneOdMediany = sum(abs(sorted - mediana)) / length(sorted)
  44.   kwartylQ1 = quantile(sorted, 0.25)
  45.   kwartylQ3 = quantile(sorted, 0.75)
  46.   odchylenieCwiartkowe = (quantile(sorted, 0.75) - quantile(sorted, 0.25)) / 2  
  47.   wspolczynnikZmiennosci =  odchylenieStandardowe / sredniaArytmetyczna * 100
  48.   wspolczynnikAsymetrii = (sum((sorted - sredniaArytmetyczna) ^ 3) / length(sorted)) / (odchylenieStandardowe ^ 3)
  49.   wspolczynnikSkosnosci = 3*(sredniaArytmetyczna - mediana) / odchylenieStandardowe
  50.   kurtoza = (sum((sorted - sredniaArytmetyczna) ^ 4) / length(sorted)) / (odchylenieStandardowe ^ 4)
  51.   exces = kurtoza - 3
  52.   wynik <- c(sredniaArytmetyczna, sredniaHarmoniczna, sredniaGeometryczna, wariancja, odchylenieStandardowe, mediana, odchyleniePrzecietneOdMediany, kwartylQ1, kwartylQ3, odchylenieCwiartkowe, wspolczynnikZmiennosci, wspolczynnikAsymetrii, wspolczynnikSkosnosci, kurtoza,exces)
  53.   return (wynik)
  54. }
  55.  
  56. zad1b <- function(wektor)
  57. {
  58.   sr1 = hist(wektor)   #szereg rozdzielczy
  59.  
  60.   sredniaArytmetyczna = sum(sr1$counts * sr1$mids) / sum(sr1$counts)
  61.   sredniaHarmoniczna = sum(sr1$counts) / sum(sr1$counts / sr1$mids)
  62.   sredniaGeometryczna = (prod(sr1$mids ^ sr1$counts)) ^ (1 / sum(sr1$counts))
  63.   wariancja = sum(((sr1$mids-sredniaArytmetyczna) ^ 2) * sr1$counts) / sum(sr1$counts)
  64.   odchylenieStandardowe = sqrt(wariancja)
  65.   mediana = kwartyl(sr1,0.5)
  66.   odchyleniePrzecietneOdMediany = sum(abs(sr1$mids - mediana) * sr1$counts) / sum(sr1$counts)
  67.   kwartylQ1 = kwartyl(sr1, 0.25)
  68.   kwartylQ3 = kwartyl(sr1, 0.75)
  69.   odchylenieCwiartkowe = (kwartyl(sr1, 0.75) - kwartyl(sr1, 0.25)) / 2
  70.   wspolczynnikZmiennosci = odchylenieStandardowe / sredniaArytmetyczna * 100
  71.   wspolczynnikAsymetrii = (sum((sr1$mids - sredniaArytmetyczna) ^ 3 * sr1$counts) / sum(sr1$counts)) / (odchylenieStandardowe ^ 3)
  72.   wspolczynnikSkosnosci = 3*(sredniaArytmetyczna - mediana) / odchylenieStandardowe
  73.   kurtoza = (sum((sr1$mids - sredniaArytmetyczna) ^ 4 * sr1$counts) / sum(sr1$counts)) / (odchylenieStandardowe ^ 4)
  74.   exces = kurtoza - 3
  75.   wynik <- c(sredniaArytmetyczna, sredniaHarmoniczna, sredniaGeometryczna, wariancja, odchylenieStandardowe, mediana, odchyleniePrzecietneOdMediany, kwartylQ1, kwartylQ3, odchylenieCwiartkowe, wspolczynnikZmiennosci, wspolczynnikAsymetrii, wspolczynnikSkosnosci, kurtoza,exces)
  76.   return (wynik)
  77. }
  78.  
  79. zadanie1 = function(wektor1, wektor2)
  80. {
  81.   wynik1a = zad1a(wektor1)
  82.   wynik1b = zad1b(wektor1)
  83.  
  84.   table1 = data.frame(szczegołowy=wynik1a, rozdzielczy=wynik1b)
  85.   row.names(table1) = c("Srednia arytmetyczna:", "Srednia harmoniczna:", "Srednia geometryczna:", "Wariancja nieobciazona:", "Odchylenie standardowe:", "Mediana:", "Odchylenie przecietne od mediany:","Kwartyl Q1:", "Kwartyl Q3:", "Odchylenie cwiartkowe:", "Wspolczynnik zmiennosci:", "Wspolczynnik asymetrii:", "Wspolczynnik skosnosci:", "Kurtoza:","Exces:")
  86.   print(table1)
  87.  
  88.   histogram1 = hist(wektor1, labels = TRUE, plot = TRUE, main="Województwo dolnośląskie")
  89.  
  90.  
  91.   wynik1a = zad1a(wektor2)
  92.   wynik1b = zad1b(wektor2)
  93.  
  94.   table2 = data.frame(szczegółowy=wynik1a, rozdzielczy=wynik1b)
  95.   row.names(table2) = c("Srednia arytmetyczna:", "Srednia harmoniczna:", "Srednia geometryczna:", "Wariancja nieobciazona:", "Odchylenie standardowe:", "Mediana:", "Odchylenie przecietne od miediany:", "Kwartyl Q1:", "Kwartyl Q3:", "Odchylenie cwiartkowe:", "Wspolczynnik zmiennosci:", "Wspolczynnik asymetrii:", "Wspolczynnik skosnosci:", "Kurtoza:", "Exces:")
  96.   print(table2)
  97.  
  98.   histogram2 = hist(wektor2, labels = TRUE, plot = TRUE, main="Województwo lubuskie")
  99.  
  100. }
  101.  
  102. zadanie1(dane1[, 1], dane2[, 1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement