Kleanthis Koupidis, Charalampos Bratsas, Jaroslav Kuchar November 9, 2016
#Cluster.OBeu Εstimate and return the necessary parameters for cluster analysis visualizations, used in OpenBudgets.eu. It involves a set of techniques and algorithms used to find and divide into groups the Budget data of municipalities across Europe, described by the OpenBudgets.eu data model.
The available clustering algorithms are hierarchical, kmeans from R base, pam, clara, fuzzy from cluster package and model based algorithms from mclust package. It can be used to find the appropriate clustering algorithm and/or the appropriate clustering number of the input data according to the internal and stability measures from clValid package.
This package can generally be used to estimate clustering parameters, extract and convert them to JSON format and use them as input in a different graphical interface and also can be used in data that are not described by the OpenBudgets.eu data model.
You can see detailed information here.
# install Cluster.OBeu- cran stable version
install.packages(Cluster.OBeu)
# or
# alternatively install the development version from github
devtools::install_github("okgreece/Cluster.OBeu")
Load library Cluster.OBeu
library(Cluster.OBeu)
#Cluster Analysis in a call
cl.analysis
can be used to estimate clustering model parameters and/or
number of clusters needed for visualization of clusters and other
clustering measures as list object.
cluster_data = cl.analysis( city_data, cl.aggregate = "sum",
cl.meth = "pam", clust.numb = NULL, dist = "euclidean", tojson = T) # json string format
jsonlite::prettify(cluster_data) # use prettify of jsonlite library to add indentation to the returned JSON string
#Cluster Analysis on OpenBudgets.eu platform
open_spending.cl
is designed to estimate and return the clustering
model measures of OpenBudgets.eu datasets.
The input data must be a JSON link according to the OpenBudgets.eu data
model. There are different
parameters that a user could specify, e.g. dimensions
,
measured.dimensions
and amounts
should be defined by the user, to
form the dimensions of the dataset. open_spending.cl
estimates and
returns the json data that are described with the OpenBudgets.eu data
model, using cl.analysis
function.
#Store the link in a variable
json_link='http://ws307.math.auth.gr/rudolf/public/api/3/cubes/budget-athens-revenue-2007__93458/aggregate?drilldown=budgetPhase.prefLabel%7CadministrativeClassification.prefLabel&aggregates=amount.sum'
clustering = open_spending.cl(
json_data = json_link,
dimensions ="administrativeClassification.prefLabel",
measured.dimensions ="budgetPhase.prefLabel",
amounts = "amount.sum",
cl.method = "fanny",
cl.num = 3
)
# Pretty output using prettify of jsonlite library
jsonlite::prettify(clustering,indent = 2)