Une petite boucle for

Petite astuce pour créer des sous-jeux de données en fonction d’une variable de groupe :
Ici, le jeu de données complet est « tbl », notre variable de groupe « acteur ». On commence par créer un tableau récap’ des niveaux de la variable « acteur » :

acteur<-tbl%>%group_by(acteur)%>%
count(acteur)

Ensuite, on utilise une boucle for pour les différents niveaux de la variable, et la fonction « assign(le_nom, les_données) » nous permet de créer les différents jeux de données associés !
for(i in acteur$acteur){
assign(paste0("tbl",i),tbl%>%
filter(acteur==i))
}

Publicités

#Pos : Part of Speech tagging

pos01.pngLe corpus est constitué de phrases où chaque partie (mots) relève de catégories grammaticales différentes : des substantifs, des adjectifs, des verbes, des pronoms, …

Il peut être particulièrement intéressant d’identifier ces catégories. Par exemple, dans une analyse du sentiment, on peut souhaiter de ne s’intéresser qu’aux adjectifs pour ce concentrer sur les éléments expressifs du contenu, ou dans une analyse de topics de ne la réaliser que sur les verbes pour identifier des modalités d’action. Une des applications purement linguistique est d’employer l’étiquetage PoS pour des tâches de désambigüisation.

Dans r plusieurs solutions sont proposées. Une première est proposée par RDRPOSTagger que nous n’avons pas encore testé mais qui semble à première vue d’une grande simplicité d’usage. D’autres sont proposées sur cette page. Un autre exemple est donnée ici. pour aller plus loin lire ceci.

 

#heatmap Bowie and friends

bowie et ses musiciens

L’analyse multidimensionnelle est une vieille affaire des statistiques. Dès les années trente, avec naturellement les analyses typologiques de la biologie, l’analyse factorielle à la Thurstone, l’analyse multidimensionnelle des similarité (mds) à la Kruskall.

Une procédure de r en associe les éléments en produisant une visualisation d’une double typologie faite sur les lignes et les colonnes ( les individus et les variables. La fonction heatmap en donne les ressources.

Dans l’exemple, constitué par Elias Benavent – étudiant en histoire à l’Université de Bordeaux, il s’agit d’un tableau binaire donnant la participation de près de 300 artistes et techniciens aux albums de David Bowie. En voici le code ( détaillé) avec heatmap.2 qui demande le package gplot :

library(gplot)
x<-as.matrix(AlbumStrict)
heatmap.2(x,
notecol="black", # change font color of cell labels to black
density.info="none", # turns off density plot inside color legend
trace="none", # turns off trace lines inside the heat map
margins =c(12,9), # widens margins around plot
col=cm.colors(2), # use on color palette defined earlier
dendrogram="both", # draw a row and column dendrogram
cexRow=0.6,cexCol=0.8,
srtCol=45,
Colv=TRUE,
RowSideColors=cm.colors(48),ColSideColors=cm.colors(27))

Le Le code et les données sont ici.

D’autres représentations sont possibles, l’analyse d’un graphe bipartite avec igraph (et un layout mds) donne le résultat suivant.

library(reshape2)
Edge<-AlbumStrict
Edge$Artiste<-rownames(Edge)
Edge<-melt(Edge,by=c(Artiste)) #construire le fichier des arcs (Edge)
Edge<-subset(Edge, value==1)   #ne garder que ceux qui sont effectifs

library(igraph)

#graphe bipartite
V(g)$type <- bipartite.mapping(g)$type

col <- c("white", "orange")
shape <- c("circle", "square")
plot(g,  layout=layout.mds,  vertex.label.cex=c(0.7), edge.arrow.size=0.2,vertex.size=c(8),
     vertex.color = col[as.numeric(V(g)$type)+1],
     vertex.shape = shape[as.numeric(V(g)$type)+1.5]
)

et le résultat

bipartite rogneNe reste plus qu’à identifier les groupes de musiciens et la logique de participation. Là c’est le travail de l’historien qui reprend la partie, l’analyse de l’outil n’est qu’un outil de clarification. Et pour aller plus loin dans la technique on ira lire le blog Digital History Methods

Et sur David Bowie on ira regarder le beau travail musicologique et quantitatif de Leah Kardos (données accessibles).

 

#Stargazer pour des modèles nickels

stargazer

On a un faible pour stargazer qui permet de présenter les résultats des estimations de plusieurs modèles de régression (de toutes sortes) dans des tableaux rigoureux en txt, latex ou html. La fonction peut se limiter à peu de chose ( mais si on plonge dans la syntaxe de très nombreux contrôles sont possibles).

stargazer(fit1,fit2,fit3,fit3, type = "latex")

suffit à produire le tableau ci-dessus.