Open M4rble opened 4 years ago
Če delaš napovedi na deležih, si lahko pomagaš z logistično funkcijo 1/(1+e-x) in njenim inverzom (logit) log(y / (1-y)) - glede na to, da imaš procente, bo potrebno ustrezno skalirati, npr.
library(scales)
logisticna <- function(x) { 100 / (1 + exp(-x)) }
logisticna_inv <- function(y) { log(y / (100 - y)) }
logisticna_breaks <- . %>% logisticna() %>% extended_breaks()() %>% logisticna_inv()
logisticna_trans <- trans_new("logistična funkcija", logisticna, logisticna_inv)
primerjava_rasti_log <- primerjava_rasti %>% mutate(delez=logisticna_inv(delez))
graf7 <- ggplot(primerjava_rasti_log %>% filter(drzava %in% c("Islandija", "Turčija")),
aes(x=leto, y=delez, col=drzava)) +
geom_point() + ggtitle("Primerjava rasti držav z največjo in najmanjšo rastjo") +
xlab("leto") + ylab("delež v %") + facet_grid(. ~ drzava) + stat_smooth(method="lm") +
coord_trans(y=logisticna_trans) + scale_y_continuous(breaks=logisticna_breaks,
labels=logisticna)
Mimogrede: opažam, da imaš v mapi slike
datoteko Europe.rar
z zemljevidom. Ta ne sodi na repozitorij, tako da jo pobriši. Lahko tudi dodaš vrstico *.rar
v .gitignore
, da ti git takih datotek več ne bo ponujal pri vključevanju v commit.
Svetujem še, da v svojih programih izven poročila ne uporabljaš ukaza source
- tako se ti trenutno uvoz izvede dvakrat (seveda poskrbi za ustrezen vrstni red klicanja).
Hvala za odgovor in nasvete, sem popravil. Sem na gitu posodobil zadnjo verzijo projekta, če se pojavijo še kakšni komentarji ali nasveti za popravljanje, drugače pa mislim da je projekt končan in da sem pripravljen na zagovor.
Poročila ti trenutno ne prevede - treba bo zamenjati vrstni red klicanja uvoza in vizualizacije. Poleg tega svetujem, da slovar premakneš v uvoz, saj ga že tam potrebuješ.
Sem popravil, zdaj bi moralo prevesti poročilo brez težav.
V redu, zdaj poročilo deluje, tako da bom dodal povezavo na repozitorij za zagovore. Če se še nisi, se lahko z @alenFMF domeniš za termin zagovora. Če boš do takrat še kaj spreminjal, mi javi, da posodobim povezavo.
Imam še dve pripombi:
Hvala za pripombe, sem popravil še par stvari, tako da prosim za posodobitev povezave.
V redu, bom posodobil.
Opažam še, da imaš pri graf3b
nelinearno lestvico, kar kaže na neustrezno zabeležena števila. Glavni problem se zgodi tukaj:
https://github.com/M4rble/APPR-2019-20/blob/d683613a1bd029d00384651a88ec31d846657d55/vizualizacija/vizualizacija.r#L108
Ker podatke nadomeščaš z nizom, se celoten stolpec pretvori v nize. Tudi sicer nadomeščanje manjkajočih vrednosti (tukaj kot NaN
, ker se izračunajo kot 0/0
) z 0 ni ustrezna rešitev. Namesto tega lahko celotno razpredelnico aktivnosti_po_letih
pripraviš tako:
aktivnosti_po_letih <- internetne_aktivnosti %>% mutate(leto=factor(leto)) %>%
filter(uporaba %in% c("branje novic", "posiljanje/prejemanje e-poste",
"poslusanje glasbe",
"pridobivanje informacij o proizvodih in storitvah",
"uporaba aplikacij za izmenjavo sporocil (npr Messenger)",
"uporaba socialnih omrezij")) %>%
group_by(leto, uporaba) %>% summarise(delez=mean(delez, na.rm=TRUE))
Graf, dobljen iz take razpredelnice, bo tako imel linearno lestvico z ustreznimi oznakami.
Hvala za popravek, sem popravil, tako da prosim za ponovno posodobitev povezave.
Posodobljeno.
Pri napredni analizi se mi pojavlja težava, saj pri napovedovanju podatkov za prihodnost (npr
primerjava_rasti_tur
) linearen model funkcije ni čisto ustrezen - čeprav je graf po podatkih do sedaj res linearen, v prihodnosti skoraj gotovo ne bo, saj kaže % dostopanja do interneta, torej se bo v prihodnosti postopoma zmanjševal, hkrati pa konvergiral k 100%. Zanima me, če obstaja kakšna funkcija, ki bi pokazala tak napredek, hkrati pa tudi kako model omejiti da vrednosti ne bodo presegle 100? Poizkusil sem z logaritemsko in korensko funkcijo vendar vrneta popolnoma napačne vrednosti.