Posts tagged ‘Statistik’

Folien für meinen Sweave-Vortrag

Mit Sweave lässt sich R Code direkt in LaTeX Dokumente einbetten und ausführen. Dokumente lassen sich auf diese Weise sehr einfach automatisieren und dynamisieren. Ein weiterer Vorteil ist, dass auch immer die richtigen Grafiken und Tabellen im TeX Dokument landen.

Auf der 42. Dante Tagung in Dortmund habe ich zu dem Thema einen kurzen Vortrag gehalten, hier sind die Folien: uweziegenhagen-dante2010

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Google Flu Trends

Mit Google Flu Trends (http://www.google.org/flutrends/intl/de/de/) gibt es ein schönes Beispiel, zuwas die Auswertung von Suchanfragen nützlich sein kann.

Zitat von der Webseite:

Woche für Woche suchen Millionen von Nutzern auf der ganzen Welt online nach Informationen zum Thema Gesundheit. Erwartungsgemäß gibt es während der Grippezeit häufiger Suchanfragen zur Grippe und während des Pollenflugs mehr allergiebezogene Anfragen sowie im Sommer mehr Anfragen zum Thema Sonnenbrand. Sie können derartige Suchvolumenmuster mit Google Insights for Search genauer analysieren. Aber können Trends bei Suchanfragen tatsächlich als Basis für akkurate und zuverlässige Modelle von Phänomenen, die im echten Leben vorkommen, dienen?

Unsere Beobachtungen haben gezeigt, dass es einen engen Zusammenhang zwischen der Anzahl der Suchanfragen zum Thema Grippe und der Anzahl der Personen mit Grippesymptomen gibt. Natürlich ist nicht jede Person, die nach dem Begriff „Grippe“ sucht, tatsächlich krank, aber wenn man alle grippebezogenen Suchanfragen zusammenfasst, ergibt sich ein Muster. Wir haben die Anzahl der Suchanfragen mit den Ergebnissen traditioneller Grippeüberwachungssystemen verglichen und herausgefunden, dass bestimmte Suchanfragen besonders während der Grippezeit gestellt werden. Durch die Zählung dieser Suchanfragen können wir schätzen, wie häufig die Grippe in bestimmten Ländern und Regionen weltweit auftritt.

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Geniale Visualisierung von Geschichtsdaten

Durch Zufall habe ich eben eine geniale Visualisierung von Geschichtsdaten gefunden, die mit Processing (Arduino lässt grüßen) umgesetzt wurde. Gezeigt wird der Niedergang der Weltreiche Großbritannien, Spanien, Portugal und Frankreich im 19. und 20. Jahrhundert.

Hier der Link: http://vimeo.com/6437816.

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Dynamik von Nachrichten im Internet

Unter http://memetracker.org/quotes-kdd09.pdf gibt es ein interessantes Paper mit dem Titel „Meme-tracking and the Dynamics of the News Cycle“ zum Download, das sich mit der Ausbreitung von Phrasen im Internet beschäftigt. Ein Meme ist dabei laut Wikipedia:


The term Internet meme (pronounced /mi:m/, meem) is a phrase used to describe a catchphrase or concept that spreads quickly from person to person via the Internet, much like an esoteric inside joke.[1] The term is a reference to the concept of memes, although this concept refers to a much broader category of cultural information.

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Levenshtein-Distanz für den SQL-Server

Heute habe ich eine Implementierung der Levenshtein-Distan als Funktion für den SQL Server gefunden: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=51540.

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Über die Ähnlichkeit von Strings

Ein Problem beim Migrieren von Datenbanken ist das Sicherstellen, dass kein Element doppelt vorkommt. Wenn a) verschiedene Datenbank-Systeme beteiligt sind und b) eine Vielzahl von Personen, die die Daten eingeben, verspricht dies, ein interessantes Problem zu werden.

Konkretisieren wir das mal an einem Beispiel: In einer Bibliothek arbeiten Frau A und Herr B. Frau A verwaltet eine Liste von Schallplatten in Excel, Herr B nutzt eine kleine Access Anwendung. Da die beiden Listen auf eine einheitliche Datenbank migriert werden sollen, gilt es jetzt die beiden Listen, die jeweils nur den Namen der Schallplatte als Schlüssel nutzen, abzugleichen. Weder die Liste von Frau A noch die Liste von Herrn B ist vollständig, jede Schallplatte ist jedoch nur einmal vorhanden, rein manuelle Kontrolle scheidet aus da a) zuviele Schallplatten vorhanden sind und b) bei der Kontrolle selbst Fehler gemacht werden können. Ziel ist daher, zusätzlich zur manuellen Kontrolle eine Unterstützung zu suchen, die die wahrscheinlich identischen Einträge hervorhebt.

Mein erster Ansatz war, die beiden Listen zusammen in einem Excel-Sheet zu speichern und jeweils zu speichern, ob der Eintrag aus der Liste von Frau A oder Herrn B stammt. Dann wurde die Liste aufsteigend sortiert, das Ergebnis war, dass von zwei Einträgen, die sich nur am Ende unterscheiden, der kürzere Eintrag vor dem längeren steht.

  • Sinead O’Connor – I Do Not Want What I Haven’t Got
  • Sinead O’Connor – I Do Not Want What I Haven’t Got (Single)

Der nächste Schritt war dann für jede Zelle zu entscheiden, ob der Zellinhalt Teil der darauffolgenden Zelle war. Dazu wurde die Finden() Funktion von Excel genutzt.

  • Sinead O’Connor – I Do Not Want What I Haven’t Got
  • Sinead O’Connor – I Do Not Want What I Haven’t Got (Single)

Einen Großteil der doppelten Einträge kann man auf diese Weise abdecken, doch versagt er bei geringsten Schreibfehlern, wie dem folgenden:

  • Sinead O’Connor – I Do Not Want What I Haven’t Got
  • Sinead OConnor – I Do Not Want What I Haven’t Got (Single)

Diese lassen sich per zeichenweisem Vergleich ermitteln. Sauber wäre eine Lösung die nur die tatsächlichen Längen berücksichtigt, als ersten Wurf habe ich jedoch einfach die Zeichen 1 bis 15 miteinander verglichen (Formel wird nachgeliefert).

Dann zählt man einfach die Anzahl der Zeichen, die unterschiedlich sind, bei geringen Abweichungen ist die Wahrscheinlichkeit hoch, einen identischen Eintrag zu haben. Eine Erweiterung dieses Konzept ist die sogenannte Levenshtein-Distanz, die ich über ein R Skript berechnen lasse.

Der Wert der Levenshtein-Distanz gibt dabei an, wieviele Zeichen man minimal ändern muss, um von String A auf String B zu kommen. Für die beiden Zeichenketten „Hello“ und „Hallo“ ist der Wert daher 1.

Über ein kurzes R-Skript lese ich die Plattennamen ein und mache jeweils einen paarweisen Vergleich, der R-Code für die Levenshtein Distanz entstammt dem R-Wiki http://wiki.r-project.org/rwiki/doku.php?id=tips:data-strings:levenshtein

data<-readLines("c:/music_names.dat")
y<-length(data)
result<-1:y
 
for(i in 2:y){
	result[i]<-levenshtein(data[i],data[i-1],case=FALSE) 
}
write.table(result, "C:/result.dat")

Den result-Vektor können wir dann in das Excel-Sheet einfügen.

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website

Der Rhythmus der Nachrichten

Spiegel Online hat einen interessanten Artikel zum Thema Nachrichten und ihre Ausbreitung. Der Cornell-Wissenschaftler Jon Kleinberg hat anhand von markanten Zitaten untersucht, wie sich Nachrichten im Netz verbreiten.

Spiegel Artikel

Original Paper

Uwe

Uwe Ziegenhagen has been working with LaTeX for more than a decade. Besides TeX/LaTeX he likes to work with Python, Rasberry/Arduino and his digital camera.

More Posts - Website