<jupyter_start><jupyter_text><NAME> INF141278  Analiza i testy statystyczne na przykładzie danych o PKB  Przygotowywanie i sprzątanie danych<jupyter_code>#zaimportowanie niezbędnych bibliotek
library(tidyverse)
library(reshape)
library(ggplot2)
region <- read.csv(file = 'Metadata_Country_API_NY.GDP.PCAP.KD_DS2_en_csv_v2_1068878.csv')
#head(region)
gdp <- read.csv('API_NY.GDP.PCAP.KD_DS2_en_csv_v2_1068878.csv')
#head(gdp)<jupyter_output><empty_output><jupyter_text>Dane pochodzą z obserwacji. są to dane dotyczące produktu krajowego brutto na mieszkańca. Pobrałem je ze strony: https://data.worldbank.org/indicator/NY.GDP.PCAP.KDWartości w danych są przedstawione w dolarach amerykańskich pomniejszone/powiększone o inflacje/deflacje dolara amerykańskiego. Będę badał dane tylko od 1990 roku.<jupyter_code>gdp <- gdp %>% select(Country.Name,X1990:X2018) # wyrzucenie zbędnych kolumn
#head(gdp)
names(gdp) <- c('Country_Name',1990:2018) #zmiana nazw na wygodniejsze
#head(gdp)
gdp <- na.omit(gdp) #usunięcie krajów z wartościami NA
#head(gdp)
gdp <- merge(x = gdp,y = region,by.x = 'Country_Name',by.y = 'TableName') # połączenie dzięki któremu uzyskujemy dostęp do 
                                    #informacji o regionie w którym znajduje się państwo i do której grupy przychodów należy
#head(gdp)
gdp <- gdp %>% select('Country_Name':'2018',IncomeGroup,Region) #wyrzucenie zbędnych kolumn
#head(gdp)
gdp <- filter(gdp,Region != '')#wyrzucenie danych dla regionów (ponieważ w zbiorze danych znajdowały się informacje o PKB poszczególnych regionów)<jupyter_output><empty_output><jupyter_text>Analiza eksploracyjna<jupyter_code>od1990do2018 <- gdp[c(1:30)] # wybór tylko nazwy kraju i wartości PKB
od1990do2018 <- melt(od1990do2018,id = c('Country_Name'))#przerzucenie kolumn z rokiem do wierszy (wygodniejsza praca ze zbiorem)
plot(od1990do2018$variable,od1990do2018$value,xlab = 'rok',ylab = 'PKB per capita',main = 'Wykres PKB dla wszystkicj państw w latach 1990-2018')<jupyter_output><empty_output><jupyter_text>Na wykresie widać nieznaczą zmianę mediany w latach 1990-2018, natomiast zmienia się rozstęp międzykwartylowy (największy w latach 2008-2010), oraz liczba outlierów (największa w roku 2018), co pozwala nam sądzić, że coraz więcej narodów jest bogatych, a kraje biedne nie zmieniają swojego statusu materialnego.<jupyter_code>od1990do2018$variable <- as.integer(as.character(od1990do2018$variable)) #zmiana typu danych na całkowitoliczbowe
oddoregion <- merge(x = od1990do2018,y = region,by.x = 'Country_Name',by.y = 'TableName')
oddoregion <- oddoregion %>% select('Country_Name':'value','Region','IncomeGroup')
ggplot(oddoregion,aes(x = reorder(IncomeGroup,value, FUN = median), y = value,color = IncomeGroup),las = 3) + geom_boxplot()+ labs(x = 'grupa przychodowa',y ='PKB w $',title = 'Wykres różnic w PKB w zależności od przynależenia do grupy przychodowej')<jupyter_output><empty_output><jupyter_text>Z wykresu można zauważyć, że im wyższe PKB tym w lepszej grupie dochodowej jest państwo.<jupyter_code>ggplot(oddoregion,aes(x = reorder(Region,value, FUN = median), y = value,color = Region),las = 3) + geom_boxplot()+ labs(x = 'Region',y ='PKB w $',title = 'PKB w zależności od regionu')+theme(axis.text.x = element_text(angle = 90))<jupyter_output><empty_output><jupyter_text>Na wykresie widać, że najwyższa mediana jest w Północnej Ameryce, natomiast najbogatsze kraje znajdują się w Europie i centralnej Azji. Najbiedniejszym regionem jest południowa Afryka (na południe od Sahary), natomiast w południowej Azji nie ma żadnego bogatego państwa  Test statystyczny Test F-SnedecoraH0: czas nie ma wpływu na PKB (PKB nie jest zależne od czasu) B1 = 0H1: istnieje zależność między czasem a PKB B1 =/= 0<jupyter_code>set.seed(5)
proba <- od1990do2018[sample(c(1:length(od1990do2018$value)),100),]
model <- lm(value ~ variable, proba)
model
plot(model)<jupyter_output><empty_output><jupyter_text>dane nie są liniowe, kwantyle nie mają rozkładu normalnego, odchylenie standardowe jest zależne od roku.<jupyter_code>Yp <- model$fitted.values
#Yp
srednia <- mean(proba$value)
sst <- sum((proba$value - srednia)^2)
sse <- sum((proba$value - Yp)^2)
ssr <- sum((Yp - srednia)^2)
ssr
test_f <- (ssr/sse)*(length(proba)-2)
test_f<jupyter_output><empty_output><jupyter_text>Dla poziomu istotności alfa = 0.05, wartość krytyczna testu F(1;98) wynosi około 3,94, czyli przedział krytyczny to: (3,94;inf). Nie możemy odrzucić H0, co oznacza, że zmienne mogą być niezależne.<jupyter_code>ggplot(proba,aes(x=variable,y=value),las = 1)+geom_point()+geom_smooth(method = 'lm')+ labs(x = 'rok',y ='PKB w $',title = 'Wykres PKB próby 1')
cor(proba$variable,proba$value)
set.seed(50)
proba <- od1990do2018[sample(c(1:length(od1990do2018$value)),100),]
ggplot(proba,aes(x=variable,y=value),las = 1)+geom_point()+geom_smooth(method = 'lm')+ labs(x = 'rok',y ='PKB w $',title = 'Wykres próby losowej 2')
cor(proba$variable,proba$value)<jupyter_output><empty_output><jupyter_text>Zarówno próba pierwsza jak i druga nie nadają się do tworzenia regresji liniowej, ponieważ różnice pomiędzy państwami są zbyt duże i w nie wszystkich państwach PKB rośnie liniowo.   Regresje  Widać, że w przypadku obu prób losowych współczynnik korelacji jest niewielki. Jest to efekt, tego że różne państwa w znaczącym stopniu różnią się od siebie i w jednej próbce nie powinny się znaleźć państwa z Afryki i Europy zachodniej, ponieważ PKB na przykład Niemiec znacznie zawyża wszystkie statystyki. Dlatego warto się przyjrzeć PKB każdego państwa z osobna.<jupyter_code>wyciaganie_danych <- function(country){
    kraj <- od1990do2018[od1990do2018$Country_Name == country,]
    ggplot(kraj,aes(x = variable, y= value),xlab = 'rok',ylab = 'PKB per capita')+geom_point()+geom_smooth(method = 'lm')
    return (kraj)
}
niemcy <- wyciaganie_danych('Germany')
ggplot(niemcy,aes(x = variable, y= value),xlab = 'rok',ylab = 'PKB per capita')+geom_point()+geom_smooth(method = 'lm')+ labs(x = 'rok',y ='PKB w $',title = 'Wykres PKB w Niemczech')
cor(niemcy$variable,niemcy$value)
polska <- wyciaganie_danych('Poland')
ggplot(polska,aes(x = variable, y= value),xlab = 'rok',ylab = 'PKB per capita')+geom_point()+geom_smooth(method = 'lm') + labs(x = 'rok',y ='PKB w $',title = 'Wykres PKB w Polsce')
cor(polska$variable,niemcy$value)<jupyter_output><empty_output><jupyter_text>Widzimy, że zarówno Niemcy jak i Polska mają prawie liniowy wzrost PKB.<jupyter_code>zimbabwe <- wyciaganie_danych('Zimbabwe')
ggplot(zimbabwe,aes(x = variable, y= value),xlab = 'rok',ylab = 'PKB per capita')+geom_point()+geom_smooth(method = 'lm')+ labs(x = 'rok',y ='PKB w $',title = 'Wykres PKB w Zimbabwe')
cor(zimbabwe$value,zimbabwe$variable)<jupyter_output><empty_output><jupyter_text>Natomiast kształt wykresu Zimbabwe bardziej przypomina sinusoidę, więc można stwierdzić, że są państwa, które mają silnie skorelowany wzrost PKB z czasem, ale są też państwa w których nie można stosować regresji do predykcji przyszłego PKB.<jupyter_code>polska_niemcy  <- od1990do2018[od1990do2018$Country_Name == 'Poland' | od1990do2018$Country_Name == 'Germany' ,]
ggplot(polska_niemcy,aes(x = variable, y= value,color = Country_Name))+geom_point()+geom_smooth(method = 'lm') + labs(x = 'rok',y ='PKB w $',title = 'Wykres porównujący Niemcy i Polskę')
ggplot(polska_niemcy,aes(x = variable, y= value,color = Country_Name))+geom_point()+geom_smooth(method = 'lm',se=FALSE,fullrange = TRUE)+xlim(1990,2080) + labs(x = 'rok',y ='PKB per capita',title = 'Wykres porównujący Niemcy i Polskę')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12088348102102897, 'fraction_numerical': 0.03518053167570427, 'mean_word_length': 6.918324607329843, 'pattern_counts': {'":': 0, '<': 74, '<?xml version=': 0, '>': 49, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '11', 'dir': 'jupyter-structured-clean-dedup', 'id': '90836', 'license': 'MIT', 'n_tokens_mistral': 3376, 'n_tokens_neox': 3234, 'n_words': 687, 'path': 'Inf141278.ipynb', 'repo_name': 'JoachimMakowski/Projekt_SiAD', 'size': '7571'}