sebastianbarfort / sds

Social Data Science, course at University of Copenhagen
http://sebastianbarfort.github.io/sds/
12 stars 17 forks source link

Assignment 2: Gruppe 11 #35

Closed jobrunjohansen closed 8 years ago

jobrunjohansen commented 8 years ago

title: "Assignment 2" author: 'Gruppe 11: Jakup, Trine, Samira og Jo' date: "8. nov. 2015"

output: html_document

library("rvest")

datalist = list()

for (i in 1:100) 
{
  link= ifelse(i==1, "http://www.ipaidabribe.com/reports/paid#gsc.tab=0", paste("http://www.ipaidabribe.com/reports/paid","?page=",i-1,0,"#gsc.tab=0",sep=""))
  print(link)

  title = read_html(link, encoding = "UTF-8") %>% html_nodes(".heading-3 a")%>%html_text()
  amount = read_html(link, encoding = "UTF-8") %>%html_nodes(".paid-amount span") %>%html_text()
  namedep = read_html(link, encoding = "UTF-8") %>%html_nodes(".name a") %>%html_text()
  transaction = read_html(link, encoding = "UTF-8")%>%html_nodes(".transaction a") %>%html_text()
  view = read_html(link, encoding = "UTF-8") %>%html_nodes(".overview .views") %>%html_text()
  city = read_html(link, encoding = "UTF-8") %>%html_nodes(".location") %>%html_text()
  date = read_html(link, encoding = "UTF-8") %>%html_nodes(".date") %>%html_text()

  df <- data.frame(title=title,amount=amount,namedep=namedep,transaction=transaction,view=view,city=city,date=date)
  df$page <- i                      
  datalist[[i]] <- df        
}

big_data = do.call(rbind, datalist)

write.csv(big_data, file = "C:/Users/Jo/Documents/KU/Kandidat/Social Data Science/df.csv")

Introduktion

Data er hentet fra http://www.ipaidabribe.com/reports/paid#gsc.tab=0, hvor der er indgivet information om bestikkelse i Indien. Der er indhentet de seneste 1.000 indberetninger d. 5. november 2015 kl. 20. Bemærk at nogle af beløbene fra bestikkelserne kan være misvisende, eftersom flere indere har indsat tusindseparator i beløbet forkert, og beløbene er analyseret ved at fjerne tusindeseparatorerne.

library("readr")
big_data = read_csv("https://raw.githubusercontent.com/rjc482/test/master/df.csv")

library("stringr")

big_data$amount2 =  as.numeric(str_extract(str_replace(big_data$amount,",",""), "[[:digit:]]+"))
big_data$view2 = as.numeric(str_extract(big_data$view, "[[:digit:]]+"))
Sys.setlocale("LC_TIME", "C")
big_data$date2 = as.Date(big_data$date, "%B %d, %Y")

library("dplyr")
big_data_2 = big_data %>%
  group_by(date2) %>%
  mutate(SumAmount = sum(amount2)) %>%
  distinct(date2) %>%
  select(date2, SumAmount) 

library("ggplot2")
p = ggplot(data = big_data_2, aes(x = date2, y = SumAmount)) 
p = p + geom_bar(stat = "identity")
p = p + labs(title = "Total amount paid per day", x = "Time", y = "Total amount paid") 
p

Det samlede beløb fra bestikkelser pr. day

Jf. plottet ses det, at det samlede beløb fra bestikkelser d. 12. oktober 2015 er væsentlig større end i de øvrige dage. For at undersøge om dette skyldes nogle ekstra høje beløb, findes antal bestikkelser pr. dag i stedet.

library("dplyr")
big_data_3 = big_data %>%
  group_by(date2) %>% 
  summarise(Number = n()) %>%
  distinct(date2) %>%
  select(date2, Number) 

library("ggplot2")
p = ggplot(data = big_data_3, aes(x = date2, y = Number)) 
p = p + geom_bar(stat = "identity")
p = p + labs(title = "Number of bribes per day", x = "Time", y = "Number of bribes") 
p

Antal bestikkelser pr. dag

Jf. plottet ses det, at indberetningerne d. 12. oktober 2015 ligeledes er væsentlig større end de andre dage. Årsagen til dette kan være, hvis flere har fået kendskab til hjemmesiden netop denne dag. Det kan også være af politiske årsager, f.eks. hvis en politiker lover at afskaffe korruption, som derved har medført en stor stigning i indberetninger. Vi har søgt på nettet om særlige begivenheder d. 12. oktober 2015 i Indien, men har ikke kunnet finde en forklaring.

library("dplyr")
big_data_4 = big_data %>%
  group_by(city) %>% 
  mutate(SumAmount = sum(amount2)) %>%
  distinct(city) %>%
  select(city, SumAmount)

library("stringr")
big_data_4$city = word(big_data_4$city,1, sep = fixed(","))

big_data_5 = big_data_4[order(big_data_4$SumAmount,decreasing=TRUE)[1:10],] 

library("ggplot2")
p = ggplot(data = big_data_5, aes(x = city, y = SumAmount)) 
p = p + geom_bar(stat = "identity")
p = p + labs(title = "Total amount paid per city", x = "City", y = "Total amount paid") 
p

Det samlede beløb fra bestikkelser pr. by

Bemærk at kun de ti største samlede beløb fra bestikkelser pr. by er medtaget for at give et bedre overblik. Jf. plottet skiller Bangalore sig ud fra de øvrige byer, da denne bys samlede beløb fra bestikkelser er væsentlig højere - Bangalores samlede beløb i perioden er over 1,1 mio. INR, mens de øvrige byer i top 10 er mellem ca. 70.000 og 218.000 INR. Dette indikerer altså store beløb under bordet i specielt Bangalore. For at undersøge, om der er en sammenhæng mellem de ti største samlede beløb fra bestikkelser og antallet af bestikkelser, findes antal bestikkelser pr. by.

library("dplyr")
big_data_6 = big_data %>%
  group_by(city) %>% 
  summarise(Number =n()) %>%
  distinct(city) %>%
  select(city, Number)

library("stringr")
big_data_6$city = word(big_data_6$city,1, sep = fixed(","))

big_data_7 = big_data_6[order(big_data_6$Number,decreasing=TRUE)[1:10],] 

library("ggplot2")
p = ggplot(data = big_data_7, aes(x = city, y = Number)) 
p = p + geom_bar(stat = "identity")
p = p + labs(title = "Number of bribes per city", x = "City", y = "Number of bribes") 
p

Antal bestikkelser pr. by

Bemærk at kun de ti byer med det største antal bestikkelser medtages i plottet, hvormed det ikke nødvendigvis er de ti samme byer, der medtages som i det forrige plot med det samlede antal bestikkelser pr. by. Jf. plottet skiller Bangalore sig igen ud fra de øvrige byer, da der indberettes væsentlig flere bestikkelser i forhold til de andre byer - Bangalore har indberettet 412 bestikkelser i perioden, mens de øvrige byer har indberettet mellem 16 og 92 bestikkelser. Dvs. det høje samlede beløb fra bestikkelser i Bangalore bunder i det høje antal bestikkelser i Bangalore. En relevant problemstilling er derfor at undersøge årsagen til dette - det kan skyldes, at der er væsentlig mere korruption i Bangalore end i de andre byer, eller at inderne i Bangalore er bedre til at indberette korruption end i de andre byer, eller nogen indgiver falske korruptionsindberetninger i Bangalore for at få mere fokus på problemet osv. Sådan en problemstilling ligger dog uden for denne opgave.

Jf. plottet ses det ligeledes, at eksempelvis New Delhi er i top ti over byer med det største antal bestikkelser, men ikke i top ti over byer med det største samlede beløb fra bestikkelser. Dvs. der er mange indberetninger om bestikkelser, men beløbene er forholdsvis små i forhold til de andre byer. Omvendt er eksempelvis Pune i top ti over byer med det største samlede beløb fra bestikkelser, men ikke i top ti over byer med det største antal bestikkelser. Dvs. der er få indberetninger om bestikkelser, men til gengæld er beløbene forholdsvis store i forhold til de andre byer.

library("dplyr")
big_data_8 = big_data %>%
  group_by(namedep) %>% 
  mutate(SumAmount = sum(amount2)) %>%
  distinct(namedep) %>%
  select(namedep, SumAmount) 

big_data_9=big_data_8[order(big_data_8$SumAmount, decreasing=TRUE) [1:8],]

library("dplyr")
big_data_10 = big_data %>%
  group_by(namedep) %>% 
  mutate(Number = n()) %>%
  distinct(namedep) %>%
  select(namedep, Number)

big_data_11=big_data_10[order(big_data_10$Number, decreasing=TRUE) [1:8],]

#library("gridExtra")
#grid.table(big_data_11)

#library("gridExtra")
#grid.table(big_data_9)
library("knitr")
kable(big_data_9)
kable(big_data_11)

Bestikkelser i de forskellige afdelinger

Vi har kun valgt at medtage de 8 mest korrupte afdelinger i Indien i vores tabeller, da disse afdelingers samlede beløb for bestikkelser overstiger 100.000 indiske ruppes (INR).

Vi kan se af tabel X, at "kommunal service" topper med 731.169 indiske rupee over hele perioden 12. oktober til 4. november 2015, hvilket er en periode på under en måned. I danske kroner svarer dette beløb til omtrent 77.000 kroner. Tager vi et kig på tabel Y kan vi se, at "kommunal service" også ligger i top her. Tager man et simpelt gennemsnit af det samlede beløb fordelt på antallet af sager i perioden, vil vi få en indikation af størrelsen på bestikkelse i kommunal regi i Indien. Det giver os 3.125 indiske rupee i gennemsnit per sag, svarende til omtrent 329 danske kroner. Vi vurderer, at både antallet af sager og det samlede beløb, der bliver givet under bordet i "kommunal service" er højt, og derudover indikerer dette, at beløbbet der bliver givet pr. sag er ret høj.

Et andet interessant department er "Stamps and registration", som har et relativt højt samlet beløb på 568.537 indiske rupee, men som kun er fordelt på 94 sager. I gennemsnit er bestikkelsesbeløbet per sag på 6.048 indiske rupee, svarende til omtrent 636 danske kroner. Dette indikerer, at det er de relativt høje bestikkelsesbeløb i "Stamps and registration", der påvirker det høje samlede beløb fremfor antallet af sager.

Hos politiet i Indien er korruptionen også relativt høj. I gennemsnit er bestikkelsesbeløbet 3.841 indiske rupee per sag, svarende til 404 danske kroner. Dette er højere end indenfor "kommunal service", hvilket kan indikere, at der er relavtivt højere bestikkelsesbeløb indenfor politiet end indenfor f.eks. kommunalt regi i Indien. Det samlede bestikkelsesbeløb indenfor politiet tænkes altså hovedsageligt at være forklaret ved høje bestikkelsesbeløb i de enkelte sager.

sebastianbarfort commented 8 years ago

Udmærket opgave!

Jeres kode er fin og I analyserer data udmærket. I kunne måske godt have tænkt lidt over den geografiske fordeling af bestikkelser og måske have diskuteret self selection en smule.

GODKENDT