UNIVERSITÄT DORTMUND LEHRSTUHL MARKETING
|
|
- Gerrit Bauer
- vor 8 Jahren
- Abrufe
Transkript
1 UNIVERSITÄT DORTMUND LEHRSTUHL MARKETING Marc Seitz, Jörg Rüppel, Christian Blichmann Projekt Allenby et al. Seminarbericht Oktober 2005 Wirtschafts- und Sozialwissenschaftliche Fakultät Betreuer: Prof. Dr. Florian von Wangenheim GERMANY D DORTMUND
2 Inhaltsverzeichnis Vorwort Aufgabenstellung iii v 1 Vorarbeiten Java, C/C++, R? Datenimport und -aufbereitung R RODBC Weitere R-Pakete bayesm MCMCpack A Dynamic Model of Purchase Timing Modellauswahl Entwicklung eines R-Skriptes Probleme Fazit 10 A R-Skripte 11 B MySQL-Datenbanken 16 Literaturverzeichnis 19
3 Vorwort Diese Seminarausarbeitung beschäftigt sich mit der Analyse von Geschäftsvorfällen und den daraus resultierden Maÿnahmen für das Marketing eines Unternehmens. Es soll ermittelt werden, wann ein Kunde in einen inaktiven Zustand fällt, so dass das Marketing oder der Vertrieb frühzeitig entsprechende Maÿnahmen zur Kundenbindung ergreifen kann. Als Grundlage zu diesem Seminar dient das Paper von Allenby, Leone und Jen [ALJ99]. In diesem Paper stellen die Autoren eine neue Analysemethode für Kundenaktivitäten vor, die nicht dem klassischen Schema entspricht. Bisher ergreifen die meisten Unternehmen nach einer bestimmten Zeit der Konsum-Inaktivität Marketing-Maÿnahmen mit dem erhoten Eekt, den Kunden wieder reaktiveren zu können. Dabei wird jedoch nicht berücksichtigt, dass Kunden verschiedene Aktivitätsphasen haben. So ist es z.b. für längerfristige Wertpapieranlagen nicht unüblich, nur einmal im Jahr akiv zu werden, während es im gleichen Marktsegment Kunden gibt, die jeden Tag Geschäftvorfälle veranlassen. Mit dem neuen Analyseverfahren von Allenby, Leone und Jen werden diese Gegebenheiten besser berücksichtigt, und im Idealfall nur die Kunden kontaktiert, die wirklich inaktiv sind in Bezug auf das jeweilige Konsumverhalten gegenüber dem Unternehmen. Es wurden zwei Datensätze benutzt, mit denen das obige Modell nachgestellt werden sollte: ein Retail-Datensatz mit Verkaufsdaten eines Kaufhauses, sowie ein Airline- Datensatz, der Daten zu Flugbuchungen enthält. Das Analyseverfahren basiert auf einem hierarchischen Bayes-Modell mit nach Generalized-Gamma verteilten, so genannten Interpurchase-Times Zeiten, die zwischen zwei Geschäftsvorfällen liegen. Das im Paper entwickelte Component-Mixture- Modell erlaubt dabei sowohl sektionale als auch temporale Heterogenität, was durch die Verwendung von multiplikativen Kovariaten erreicht wird. Die eigentliche Analyse eines Datensatzes wird mittels Markov-Chain-Monte-Carlo-Methoden durchgeführt. Im Groÿen und Ganzen werden für die Berechnung vier Formeln benötigt, die im weiteren Verlauf dieser Ausarbeitung vorgestellt werden. Schwierigkeiten bereitet jedoch genau die Umsetzung dieser Formeln die während des Seminarzeitraumes erarbeitete Implementierung lieferte leider keine sinnvollen Ergebnisse. Aus diesem
4 Vorwort iv Grund werden in der Ausarbeitung detailliert die Probleme bei der Anwendung des Modells geschildert. Ebenso ist keine Angabe zur Ezienz des neues Verfahrens aus eigenen Versuchen möglich. Dortmund, Oktober 2005
5 Aufgabenstellung Projektgruppe Allenby et al. Als wissenschaftsorientierte Unternehmensberatung haben Sie in der Branche einen exzellenten Ruf im Bereich Analytical CRM aufgebaut. Die Fluggesellschaft Germanisches Flugkartell hat von Ihren Fähigkeiten gehört. Der GA sind in letzter Zeit einige Kunden verloren gegangen. Auÿerdem hat man den Eindruck, dass bei vielen ehemaligen Kunden die Aktivitätsrate in den Keller gegangen ist die interpurchase time (IT) ist also gestiegen. Konkret verabreden Sie im ersten Schritt mit der Fluggesellschaft, die Inaktivitätszeiten (interpurchase times) der Kunden zu modellieren und prognostizieren. Der Leiter der Abteilung Kundenanalyse hat vor kurzem einen Vortrag von Prof. Allenby gehört, der hier auf leicht verständliche Weise sein Modell zur Prognose von ITs vorgestellt hat. Sie vereinbaren, dass Sie in einem ersten Schritt das Modell auf einen Teil der Airline-Kunden anwenden und mit Hilfe einer zweiten Stichprobe testen. Im Vergleich zu dem Aufsatz von Allenby werden Sie auch noch gebeten, eine Reihe von Kovarianten auf ihren Einuss auf die IT zu testen: Alter, Geschlecht, Cross-Buying Aktivitäten, genutzter Transaktionskanal, genutzte Direktkommunikation (wird noch speziziert). Ihre Aufgabe lautet, dem Unternehmen Hinweise dahingehend zu geben, welche Kunden reaktiviert werden müssen, weil sich ihr Aktivitätsniveau verringert hat. Sie selbst sind so überzeugt von dem Projekt, dass Sie darüber hinaus den Datensatz eines zweiten Unternehmens, aus dem Einzelhandelsbereich, heranziehen. Sicherlich wird sich der Kunde über eine Auswertung und entsprechende Handlungsempfehlungen freuen. Vorgeschlagene Projektschritte: 1. Stellen Sie das Allenby-Modell anhand eines selbsterstellten Test-Datensatz nach. 2. Transformieren Sie die beiden Datensätze in auswertbare Formate. 3. Vollziehen Sie, anhand einer ersten Teilstichprobe, die Rechenschritte des Modells von Allenby et al. (1999) schrittweise nach. 4. Variieren Sie die Modellkonguration um unterschiedliche Verteilungsannahmen und Anzahl von states zu überprüfen.
6 Aufgabenstellung vi 5. Untersuchen Sie die Güte des Modells anhand von Fit-Kriterien und interpretieren Sie die Parameter für die eingeschlossenen Kovariaten. 6. Untersuchen Sie die Güte Ihrer Vorhersage mit Hilfe des hold-out samples. 7. Wiederholen Sie das Ganze für den Einzelhandelsdatensatz. 8. Geben Sie, aufbauend auf Ihren Ergebnissen, der Airline und dem Einzelhändler Empfehlungen zum weiteren Vorgehen. 9. Reektieren Sie kritisch Ihre Erfahrungen mit dem Modell von Allenby et al. (1999). Rechtfertigt die Qualität der Ergebnisse den Aufwand der Analyse? Ist das Verfahren im Hinblick auf die daraus ableitbaren Konsequenzen einer einfachen Entscheidungsregel (z.b.: alle Kunden, die vier Quartale nicht gekauft haben, sind inactive) überlegen?
7 1 Vorarbeiten Zu den Vorarbeiten dieser Seminararbeit gehörte die Auswahl einer geeigneten Arbeitsumgebung. Es gab mehrere Möglichkeiten, die Vorgaben aus dem Paper von Allenby et al. [ALJ99] umzusetzten. Zum einen bot sich eine objektorientierte Programmiersprache an, zum anderen die für statistische Zwecke entwickelte Programmiersprache und Umgebung R. 1.1 Java, C/C++, R? Zur Auswahl bei der Arbeitsumgebung standen Java, C++ und R. Die Wahl el auf R, da diese eine speziell für statistische Zwecke entwickelte Programmiersprache und Umgebung ist. Ebenso sind in R diverse Tools/Pakete enthalten bzw. installierbar, die sowohl grundlegende als auch komplexe statistische Rechnungen durchführen können. Damit entfällt bei R die Implementierung vieler Funktionen, die in Java oder C++ aufwändig durch extern eingebundene oder selbstprogrammierte Bibliotheken hätten nachgebildet werden müssen. Ein Nachteil bei der Verwendung von R sollte jedoch nicht verschwiegen werden: Der im Informatik-Umfeld recht geringe Verbreitungsgrad und die komplexe Syntax führen zu einer als deutlich steiler empfundenen Lernkurve, als dies bei anderen Programmiersprachen der Fall ist. So stellte die Einarbeitung in R einen nicht unerheblichen Zeitaufwand dar. 1.2 Datenimport und -aufbereitung Die Datensätze lagen in einer reinen Textdatei vor. Um diese in R verfügbar zu machen, wurden diese in eine MySQL-Datenbank eingepegt (siehe Abschnitt 1.3.1). Des Weiteren sind beim Datenimport nicht benötigte Spalten, wie z.b. die Art der gekauften Artikel, entfernt worden, um die Dateigrösse zu verringern. Über das R- Paket RODBC wird die Datenbank angesprochen und die Daten ausgelesen.
8 1 Vorarbeiten R R kann kostenlos über die Homepage des R-Projektes 1 bezogen werden. Eine Anleitung zur Installation ndet sich dort ebenfalls. Weitere Informationen zu R können dem Handbuch [R D05] entnommen werden. Zusätzlich zur Standardinstallation von R wird das Paket RODBC [Ori05] verwendet. Allgemein werden Pakete in R über den Menüpunkt Packages Install Package(s)... installiert, wobei eventuelle Abhängigkeiten automatisch aufgelöst werden. Die einzelnen Funktionen der Pakete können in den jeweiligen Anleitungen nachgelesen werden. Im weiteren Verlauf werden nur die benötigten Funktionen vorgestellt RODBC Dieses Paket dient zur Anbindung an ODBC-Datenbanken 2, wie sie z.b. unter Windows üblich sind. Im vorliegenden Fall wurden MySQL 3 sowie der MySQL ODBC- Treiber [MyS05] eingesetzt. Das ODBC-Konzept von Datenquellen erlaubt es jedoch leicht, andere Datenbanken wie Access oder MS-SQL zu verwenden. Im Listing 1.1 sind die Befehle aufgelistet, um die Datenbank zu kontaktieren und Daten auszulesen. Die Struktur der Datenbank-Tabellen kann im Anhang B nachgelesen werden. Listing 1.1: Anwendung des Pakets RODBC 1 # ODBC - Paket laden 2 library (" RODBC ") 3 4 # String Konkatenation, hängt zwei Zeichenketten aneinander. 5 "~" <- function (x, y) paste (x, y, sep = "") 6 7 # Datenbankverbindung herstellen. 8 channel <- odbcconnect (" allenby ") 9 10 # Beispiel : Die ersten 10 unterschiedlichen Kundennummern sortiert 11 # und in aufsteigender Reihenfolge holen 12 query <- " SELECT DISTINCT KundeNr FROM retail ORDER BY KundeNr " ~ 13 " ASC LIMIT 10" 14 list <- sqlquery ( channel, query )[,] Open DataBase Connectivity, siehe auch htm/dasdkodbcoverview.asp 3
9 1 Vorarbeiten 3 16 # Kundennummern ausgeben 17 list # Datenbankverbindung schlieÿen 20 odbcclose ( channel ) 1.4 Weitere R-Pakete Im Verlauf der Seminararbeit wurde von Rossi, Allenby und McCulloch das Buch Bayesian Statistics and Marketing [RAM05] vorgestellt/veröentlicht. Dieses behandelt unter anderem Teilaspekte der Aufgabenstellung. Parallel zur Buchveröentlichung wurde auch das R-Paket bayesm [RM05] zur Verfügung gestellt bayesm Das Paket bayesm ist Begleitmaterial zum bereits in Abschnitt 1.4 erwähnten Buch. Neben Beispieldatensätzen enthält es R-Funktionen für die meisten im Buch beschriebenen Algorithmen und Modelle. Obwohl von den gleichen Autoren, wird das dem Paket zugrunde liegende Paper der Aufgabenstellung in der Dokumentation nicht erwähnt oder referenziert. Des Weiteren lassen die Datensätze und zugehörigen Beispielskripte in der Dokumentation keine unmittelbaren Parallelen erkennen, die eine Verwendung der angebotenen Funktionalität ohne gröÿeren Aufwand gestatten. Um das Verarbeiten gröÿerer Datensätze ezient zu ermöglichen, sind die Berechnungsfunktionen in einer C++-Bibliothek implementiert, die von den einzelnen R- Routinen aufgerufen werden MCMCpack Ein Weiteres untersuchtes Paket ist MCMCpack [MQ05], ein Paket für Bayesian inference. Es bietet ähnliche bzw. überlappende Funktionalität wie bayesm, ist jedoch zur Auswertung auf das coda-paket angewiesen [PBCV05]. Auch hier stützen sich die Berechnungsfunktionen auf eine externe C++-Bibliothek, in diesem Fall auf die recht weit verbreitete Bibliothek Scythe
10 1 Vorarbeiten 4 Die Funktion MCMCmixfactanal() implementiert die im Vorwort erwähnten MCMC- Methoden aus dem Paper, jedoch ist die Adaption auf die Aufgabenstellung alles Andere als trivial (siehe Abschnitt 2.2).
11 2 A Dynamic Model of Purchase Timing Um das Modell aus [ALJ99] nachzustellen, wurden die folgenden Schritte identiziert: 1. Auswahl einer der vier Modellvarianten: Gamma-Dichtefunktion und Inverse-Gamma verteilte Heterogenität für Interpurchase-Times (mit temporal dynamics, λ = 1) Obiges Modell ohne temporal dynamics Generalized-Gamma-Dichtefunktion für Interpurchase-Times mit temporal dynamics Generalized-Gamma-Dichtefunktion ohne temporal dynamics 2. Formulierung der Modellgleichungen in R 3. Ausarbeitung eines R-Skripts zur MCMC-Inferenz des Modells unter Benutzung von bayesm oder MCMCpack 4. Ausführen des Skripts und Auswertung der Ergebnisse Temporal dynamics bezeichnet hierbei die individuelle zeitliche Dynamik der einzelnen Kunden. So bendet sich zum Beispiel ein Kunde in einem aktiven Zustand, wenn dieser einmal im Monat kauft, während ein anderer Kunde als noch aktiv gilt, wenn nur einmal im Jahr gekauft wird. Übertragen auf Aktienkäufe würde dies den Unterschied zwischen kurz- und langfristigem Anleger bedeuten. 2.1 Modellauswahl Bei der Auswahl eines nachzustellenden Modells war es Ziel möglichst wenig eigenen Quellcode zu schreiben, um mögliche Fehlerquellen von vornherein auszuschlieÿen. So el die Wahl auf das Component-Mixture-Model mit Generalized-Gamma
12 2 A Dynamic Model of Purchase Timing 6 verteilten Interpurchase-Times und Inverse-Generalized-Gama verteiler Heterogenität. Dieses Modell erlaubt temporal dynamics und verwendet nachgelagerte Log- Interpurchase-Times und drei Kovariaten. Dieses Modell ist von den vorstehend vorgestellten zwar das Aufwändigste, jedoch sind alle benötigten Gleichungen und Variablen beschrieben. 2.2 Entwicklung eines R-Skriptes Der Anhang des Papers von Allenby et al. beschreibt sehr knapp die Vorgehensweise. Zunächst werden alle benötigten Variablen mit den vorgegebenen Werten initialisiert: 1 # Werte für Theta - Verteilung initialisieren 2 cust $ a0 < cust $ b0 < # Weitere Modellparameter initialisieren 6 cust $ lambda <- array () 7 cust $ alpha <- 1 8 cust $ nu <- 1 9 cust $ gamma < cust$theta <- dinvgamma ( cust$a0, cust$b0, cust$gamma ) Es folgen die einzelnen Modellgleichungen, angefangen mit λ i [ALJ99, A.1], einem individuellen Skalierungsparameter für jeden Kunden. Aus π(λ i {t ij, j = 1,... n i }, n i, α, ν, γ) = IGG(n i α + ν, [ t γ ij + θ γ ] 1/γ, γ) (2.1) wird 1 cust. genlambda <- function () { 2 custcount <- length ( cust $ iptimes ) 3 for ( i in 1: custcount ) { 4 iptcount <- length ( cust $ iptimes [[ i]]) 5 cust $ lambda [ i] <- dinvgamma ( 6 iptcount * cust $ alpha + cust $nu, 7 sum( cust$iptimes [[i]] ^ cust$ gamma + 8 cust$theta ^(- cust$ gamma ) ) ^ (-1 / cust$gamma ), 9 cust $ gamma 10 ) 11 } 12 }
13 2 A Dynamic Model of Purchase Timing 7 Als nächstes wird der α-parameter [ALJ99, A.2] der Generalized-Gamma-Verteilung bestimmt: N n i γ π(α {λ i }, {t ij }, γ) Γ(α)λ αγ t αγ 1 ij e (t ij/λ i ) γ (2.2) i Dies wird in R-Code übersetzt zu i=1 j=1 1 cust. genalpha <- function () { 2 value <- 1 3 custcount <- length ( cust $ iptimes ) 4 for ( i in 1: custcount ) { 5 ipt <- cust$iptimes [[i]] 6 iptcount <- length ( ipt) 7 for ( j in 1: iptcount ) { 8 value <- value * ( 9 ( 10 cust $ gamma / 11 ( gamma ( cust$alpha ) * cust$lambda [i] ^ 12 ( cust$alpha * cust$gamma ) ) 13 )* 14 ipt[j] ^ ( cust$ alpha * cust$gamma - 1) * 15 exp( -(ipt[j] / cust$lambda [i]) ^ cust$ gamma ) 16 ) 17 } 18 } 19 cust $ alpha <- value 20 } Das heiÿt, es wird über alle Beobachtungen iteriert. Der ν-parameter [ALJ99, A.3] der IGG-verteilten Heterogenität wird ebenfalls iterativ über alle Kunden bestimmt: In R-Code: π(ν {λ i }, θ, γ) N i=1 γ λ νγ 1 Γ(ν)θνγ i e (1/θλ i) γ (2.3) 1 cust. gennu <- function () { 2 value <- 1 3 custcount <- length ( cust $ iptimes ) 4 for ( i in 1: custcount ) { 5 value <- value * 6 cust $ gamma / 7 ( gamma ( cust$nu) * cust$theta ^ ( cust$nu * cust$gamma ) ) * 8 9 cust$lambda [i] ^ (- cust$nu * cust$gamma - 1) *
14 2 A Dynamic Model of Purchase Timing 8 10 exp( -(1 / ( cust$theta * cust$lambda [i])) ^ cust$ gamma ) 11 } 12 cust $ nu <- value 13 } θ-parameter [ALJ99, A.4] für die Heterogenität: Nach R übersetzt: π(θ {λ i }, ν, γ) = IGG(Nν + a 0, [ λ γ i 1 cust. gentheta <- function () { 2 custcount <- length ( cust $ iptimes ) 3 cust $ theta <- dinvgamma ( 4 custcount * cust $ nu + cust $a0, 5 sum( ( cust$lambda + cust$b0) ^ -cust$ gamma ) ^ 6 (1 / cust$gamma ), 7 cust $ gamma 8 ) 9 } + b γ 0 ] 1/γ, γ) (2.4) Mit den oben dargestellten Gleichungen endet im Paper von Allenby et al. der für das Component-Mixture-Model direkt nachvollziehbare und in R-Code übersetzbare Teil. Die eigentlichen Analyseschritte, die Durchführung der MCMC-Algorithmen sind nur sehr knapp erläutert. In der für ein Seminar zur Verfügung stehenden Zeit war es nicht möglich, die oben genannten Methoden zur Anwendung zu bringen. Um mit den bereits zum groÿen Teil erläuterten R-Skript (das vollständige Skript ndet sich im Anhang A.1) eine weitergehende Analyse der Datensätze durchzuführen, ist eine noch intensivere Beschäftigung mit MCMC-Methoden erfoderlich. Es wird vorgeschlagen, für die MCMC-Analyse eine latente Zufallsvariable s ijk zu denieren, die die Beobachtung eines Geschäftsvorfalls des Kunden i zur j-ten Interpurchase-Time indiziert und damit die Einordnung der Beobachtung in einen der k Zustände ermöglicht (hier wie im erwähnten Paper gilt: k = 3). In jeder Iteration der MCMC-Analyse werden dann die bereits einer Komponente (=Zustand) zugeordneten Beobachtungen die berechneten Werte {λ ik }, a k, ν k und θ k erreichen. Für die Wahrscheinlichkeitsverteilung von s ijk ergibt sich somit: P r(s ijk = k ) φ k f(t ij α k, λ ik, γ k ) (2.5) Zusammen mit f(t ij α k, λ ik, γ k ) = φ k ( k φ ijk GG(α k, λ ik, γ k ) ) (2.6)
15 2 A Dynamic Model of Purchase Timing 9 ist eine Einordnung in einen Zustand möglich, da φ k durch φ ij = 1 Φ(β 01i ) (2.7) bestimmt ist. Als Nächstes sind in jeder Iteration des Algorithmus Ziehungen aus der im Paper denierten Random-Eects-Specication durchzuführen. Dies wird durch die Verwendung eines Metropolis-Hastings-Algorithmus mit einer Random-Walk-Chain erreicht. Die Funktionen aus dem Paket MCMCpack, insbesondere MCMCmixfactanal() sind einer genaueren Untersuchung in Hinblick auf den Einsatz bei der Nachstellung des Modells wert. 2.3 Probleme Bei der Ausführung des R-Skriptes (Formel ) stellte sich heraus, dass dieses keine verwertbaren Ergebnisse liefern. Zu Beginn der Berechnungen lieferte R als Ergebnisse NaN's (Not a number). Nach Korrektur einiger programmiertechnischer Fehler des Algorithmus hat veränderte sich das Ergebnis dahingehend, dass statt NaN nun 0 als Ausgabewerte geliefert wurden. In beiden Fällen brachte die Veränderung der Startparamenter keine besseren Werte. Diverse Startparameter wurden getestet, in vielen der möglichen Variationen. Auch eine Erhöhung der Durchlaufzahl des Skriptes brachte keine Besserung, die Ergebnisse veränderten sich weder bei einem Durchlauf noch bei mehreren hundert Durchläufen. Die Startparameter für α, ν und γ sind im Bereich von [0-2] variert worden, für a 0 im Bereich von [0-10] und für b 0 von [10-100]. Die Umsetzung des Modells aus dem Paper gestaltete sich schwieriger und vor allem zeitaufwändiger als erwartet. Viel Zeit gekostet hat insbesondere die Auswahl der geeigneten Arbeitsumgebung und die Erarbeitung der Grundlagen zu dem recht komplexen und überdies jungem Gebiet der verwendeten Statistik. Die Verwendung von R als Programmiersprache wurde seitens der Seminarbetreuer nahegelegt; auch hier mussten Syntax und Benutzung erst erlernt und erarbeitet werden. Zu Beginn des Seminars war kaum Zusatz-Literatur zum Seminarthema zu nden, und das Buch Bayesian Statistics and Marketing[RAM05] wurde erst im Laufe des Seminars veröentlicht, ebenso wie das R-Paket bayesm, mit dem die Autoren des Papers gearbeitet haben.
16 3 Fazit Angenehm sind die erledigten Arbeiten. (Cicero (106-43)) Leider hat das Seminar nicht den erhoten Erfolg gebracht. Auf den ersten Blick sah die Umsetzung des Papers von Allenby, Leone und Jen [ALJ99] einfacher aus als es letztendlich war. Der Vorteil an dem Verfahren von Allenby, Leone und Jen ist die deutlich gezieltere Kontaktierung bzw. Reaktivierung von Kunden, die im Begri sind, die Geschäftsbeziehungen zu einem Unternehmen zu lösen. Typischer Indikator für eine solche Absicht ist eine längere Zeit der Inaktivität, wobei nicht allgemein klar ist, wie genau längere Zeit zu denieren ist. Bei herkömmlichen Verfahren werden Kunden nach einer bestimmten xen Zeitspanne kontaktiert. Dabei werden jedoch die individuellen Interpurchase-Times der Kunden nicht berücksichtigt. Die komplexe Auswertung der Daten erfordert aktuelle Hardware die durchzuführenden Rechnungen sind nicht trivial, jedoch sind die Kosten für neue Hardware in groÿen Unternehmen vernachlässigbar. Zur Ezienz des Verfahrens bei groÿen Datensätzen sind leider keine eigenen Ergebnisse vorhanden. Ein gröÿeres Problem ist jedoch die Umsetzung des Verfahrens. Gute Kenntnisse in Statistik und das Vertrautsein mit MCMC-Methoden sind unerläÿlich. Dies macht es im Unternehmen erforderlich, auf externe Spezialisten zurück zu greifen. Die R-Pakete bayesm und insbesondere MCMCpack scheinen im Ansatz Hilfestellungen bei der Umsetzung zu enthalten. Die darin enthaltenen Funktionen müssen jedoch genau evaluiert und auf die eigene Problemstellung angepasst werden. Das Paket bayesm arbeitet laut Internetrecherche relativ ezient auch mit groÿen Datensätzen. Dies lässt die Vermutung zu, dass auch das Verfahren aus dem Paper ezient auf grosse Datensätze angewendet werden kann, so dass ein Einsatz im Unternehmen mit den oben erwähnten Einschränkungen empfehlenswert scheint.
17 Anhang A R-Skripte Listing A.1: R-Skript 1 # Benötigte Pakete einbinden 2 library (" RODBC ") 3 library (" MCMCpack ") 4 library (" bayesm ") 5 6 ## String Konkatenation, hängt zwei Zeichenketten aneinander. 7 # 8 x erster String 9 y zweiter String 10 zusammengesetzter String 11 "~" <- function (x, y) paste (x, y, sep = "") ## R- Umgebung für Datenbankverbindungen 14 # 15 db <- new.env () ## Stellt die Verbindung zur Datenbank her. 18 # 19 dbname Name der Datenbank 20 db. connect <- function ( dbname ) { 21 db $ channel <- odbcconnect ( dbname ) 22 } ## Setzt eine neue Standardtabelle, die von allen fetch - Funktionen 25 # ( fetchcustids, fetchcustiptimes, etc.) verwendet werden. 26 # 27 tablename Name der neuen Standardtabelle 28 db. defaulttable <- function ( tablename ) { 29 db $ defaulttable <- tablename 30 } ## Schlieÿt die Datenbankverbindung 33 # 34 db. close <- function () { 35 odbcclose ( db$ channel ) 36 } 37
18 Anhang A R-Skripte ## Führt eine Datenbankabfrage aus. 39 # 40 query SQL - Statement, dass ausgeführt werden soll 41 Ergebnis der Abfrage als Data Frame 42 db. query <- function ( query ) { 43 return ( sqlquery (db$channel, query )[,]) 44 } ## Gibt eine Liste mit Kundennummern zurück. 47 # 48 count maximale Anzahl von Kundennummern, die zurückgegeben 49 # werden sollen 50 Liste mit Kundennummern 51 db. fetchcustids <- function ( count = 10) { 52 query <- " SELECT DISTINCT KundeNr FROM " ~ db $ defaulttable ~ 53 " ORDER BY KundeNr ASC LIMIT " ~ count 54 return (db. query ( query )) 55 } ## Liefert eine Liste mit Interpurchase - Times zurück. 58 # 59 custids Liste mit Kundennummern, für die die IPTs zu 60 # berechnen sind 61 Liste von Listen mit Interpurchase - Times in derselben 62 # Reihenfolge wie die Kundennummern 63 db. fetchcustiptimes <- function ( custids ) { 64 iptimes = list () # Über alle Kunden iterieren 67 i < for ( cid in custids ) { 69 # Datum der einzelnen Käufe des Kunden holen 70 query <- " SELECT VKDatum FROM " ~ db $ defaulttable ~ 71 " WHERE KundeNr = " ~ cid ~ " ORDER BY VKDatum " 72 boughton <- db. query ( query ) # Nur ein einziges mal gekauft? => Nächster Kunde, keine 75 # sinnvolle Interpurchase Time 76 if ( length ( boughton ) == 1) 77 next # Interpurchase Times für Kunde ausrechnen 80 ipt <- array () 81 j < for (k in 2: length ( boughton )) { 83 diff <- round ( boughton [ k] - boughton [ k - 1]) 84 if ( diff!= 0) { 85 ipt[ j] <- diff 86 j <- j }
19 Anhang A R-Skripte } # Hat ein Kunde ausschlieÿlich einmal an einem Tag gekauft, 91 # gibt es ebenfalls keine sinnvolle Interpurchase Time 92 if (j == 1) 93 next iptimes [[i]] <- ipt 96 i <- i } return ( iptimes ) 100 } # Schritt 1: Generate lambda for each customer 103 cust. genlambda <- function () { 104 custcount <- length ( cust $ iptimes ) 105 for ( i in 1: custcount ) { 106 iptcount <- length ( cust $ iptimes [[ i]]) 107 cust $ lambda [ i] <- dinvgamma ( 108 iptcount * cust $ alpha + cust $nu, 109 sum( cust$iptimes [[i]] ^ cust$ gamma cust$theta ^(- cust$ gamma ) ) ^ (-1 / cust$gamma ), 111 cust $ gamma 112 ) 113 } 114 } # Schritt 2: Generate alpha over all observations 117 cust. genalpha <- function () { 118 value < custcount <- length ( cust $ iptimes ) 120 for ( i in 1: custcount ) { 121 ipt <- cust$iptimes [[i]] 122 iptcount <- length ( ipt) 123 for ( j in 1: iptcount ) { 124 value <- value * ( 125 ( 126 cust $ gamma / 127 ( gamma ( cust$alpha ) * cust$lambda [i] ^ 128 ( cust$alpha * cust$gamma ) ) 129 )* 130 ipt[ j] ^ ( cust $ alpha * cust $ gamma - 1) * 131 exp( -(ipt[j] / cust$lambda [i]) ^ cust$ gamma ) 132 ) 133 } 134 } 135 cust $ alpha <- value 136 } 137
20 Anhang A R-Skripte # Schritt 3: Generate nu over all customers 139 cust. gennu <- function () { 140 value < custcount <- length ( cust $ iptimes ) 142 for ( i in 1: custcount ) { 143 value <- value * 144 cust $ gamma / 145 ( gamma ( cust$nu) * cust$theta ^ ( cust$nu * cust$gamma ) ) * cust$lambda [i] ^ (- cust$nu * cust$gamma - 1) * 148 exp( -(1 / ( cust$theta * cust$lambda [i])) ^ cust$ gamma ) 149 } 150 cust $ nu <- value 151 } # Schritt 4: Generate theta over all customers 154 cust. gentheta <- function () { 155 custcount <- length ( cust $ iptimes ) 156 cust $ theta <- dinvgamma ( 157 custcount * cust $ nu + cust $a0, 158 sum( ( cust$lambda + cust$b0) ^ -cust$ gamma ) ^ 159 (1 / cust$gamma ), 160 cust $ gamma 161 ) 162 } # Datenbankverbindung herstellen 165 db. connect (" allenby ") 166 db. defaulttable (" retail ") # Neues Environment für Allenby - Modell erzeugen 169 cust <- new. env () # Erste 10 Kundennummern holen und Interpurchase - Times ausrechnen 172 ids <- db. fetchcustids (10) 173 cust $ iptimes <- db. fetchcustiptimes ( ids) # Werte für Theta - Verteilung initialisieren 176 cust $ a0 < cust $ b0 < # Weitere Modellparameter initialisieren 180 cust $ lambda <- array () 181 cust $ alpha < cust $ nu < cust $ gamma < cust$theta <- dinvgamma ( cust$a0, cust$b0, cust$gamma ) # Iterationsschritt durchführen 187 cust. genlambda ()
21 Anhang A R-Skripte cust. genalpha () 189 cust. gennu () 190 cust. gentheta () db. close () # Datenbankverbindung schlieÿen
22 Anhang B MySQL-Datenbanken Im Listing B.1 ist die Struktur der Retail-Datenbank abgebildet, im Listing B.2 die Stuktur des Airline-Datensatzes. Listing B.1: Retail-Datensatz: Datenbankstruktur Field Type Null Key Default Extra ID int (11) YES NULL 5 KundeNr int (11) YES NULL 6 umsgr varchar (40) YES NULL 7 ABCD_ FS2003 varchar (40) YES NULL 8 ABCD_ FS2004 varchar (40) YES NULL 9 KDStilgrbez varchar (40) YES NULL 10 Filbez varchar (40) YES NULL 11 Bez_ Shop varchar (40) YES NULL 12 Bez_ StatistikShop varchar (48) YES NULL 13 habteilungbez varchar (25) YES NULL 14 bez mediumtext YES NULL 15 Jahr int (11) YES NULL 16 Monat int (11) YES NULL 17 Tag int (11) YES NULL 18 VKDatum datetime YES NULL 19 Wochentag char (2) YES NULL 20 Saison varchar (5) YES NULL 21 VT double YES NULL 22 EKPreis double YES NULL 23 VKPreis double YES NULL 24 BruttoGewinn double YES NULL
23 Anhang B MySQL-Datenbanken 17 Listing B.2: Airline-Datensatz: Datenbankstruktur Field Type Null Key Default Extra ID int (11) YES NULL 5 FOCUS_ INT_ ID int (11) YES NULL 6 BIRTH_ DT varchar (255) YES NULL 7 CNTRY_ CD varchar (255) YES NULL 8 ADDRESS _ TYP varchar (255) YES NULL 9 GENDER int (11) YES NULL 10 MM_ STATUS varchar (255) YES NULL 11 ENROLLMENT _ MONTH int (11) YES NULL 12 ENROLLMENT _ TYP varchar (255) YES NULL 13 FIRST _ FLIGHT _ DT int (11) YES NULL 14 LAST_ FLIGHT _ DT int (11) YES NULL 15 LH_ WEBSITE varchar (255) YES NULL 16 duration double YES NULL 17 ALL_ 2001 Q1 int (11) YES NULL 18 ALL_ 2001 Q2 int (11) YES NULL 19 ALL_ 2002 Q2 int (11) YES NULL 20 ALL_ 2004 Q1 int (11) YES NULL 21 ALL_ 2002 Q1 int (11) YES NULL 22 ALL_ 2000 Q3 int (11) YES NULL 23 ALL_ 2002 Q3 int (11) YES NULL 24 ALL_ 2002 Q4 int (11) YES NULL 25 ALL_ 2003 Q1 int (11) YES NULL 26 ALL_ 2003 Q2 int (11) YES NULL 27 ALL_ 2003 Q3 int (11) YES NULL 28 ALL_ 2004 Q2 int (11) YES NULL 29 ALL_ 2004 Q3 int (11) YES NULL 30 ALL_ 2000 Q4 int (11) YES NULL 31 ALL_ 2000 Q2 int (11) YES NULL 32 ALL_ 2000 Q1 int (11) YES NULL 33 ALL_ 2001 Q3 int (11) YES NULL 34 ALL_ 2003 Q4 int (11) YES NULL 35 ALL_ 2004 Q4 int (11) YES NULL 36 ALL_ 2001 Q4 int (11) YES NULL 37 REVENUE _ 2002 Q2 int (11) YES NULL 38 REVENUE _ 2002 Q1 int (11) YES NULL 39 REVENUE _ 2002 Q3 int (11) YES NULL 40 REVENUE _ 2002 Q4 int (11) YES NULL 41 REVENUE _ 2003 Q1 int (11) YES NULL 42 REVENUE _ 2003 Q2 int (11) YES NULL 43 REVENUE _ 2003 Q3 int (11) YES NULL 44 REVENUE _ 2004 Q2 int (11) YES NULL 45 REVENUE _ 2004 Q3 int (11) YES NULL 46 REVENUE _ 2001 Q2 int (11) YES NULL 47 REVENUE _ 2000 Q4 int (11) YES NULL 48 REVENUE _ 2000 Q2 int (11) YES NULL 49 AKTIVE _ MONATE _ 1998 int (11) YES NULL
24 Anhang B MySQL-Datenbanken AKTIVE _ MONATE _ 1997 int (11) YES NULL 51 AKTIVE _ MONATE _ 2001 int (11) YES NULL 52 AKTIVE _ MONATE _ 2002 int (11) YES NULL 53 AKTIVE _ MONATE _ 2004 int (11) YES NULL 54 AKTIVE _ MONATE _ 1995 int (11) YES NULL 55 AKTIVE _ MONATE _ 1996 int (11) YES NULL 56 AKTIVE _ MONATE _ 1999 int (11) YES NULL 57 AKTIVE _ MONATE _ 2000 int (11) YES NULL 58 AKTIVE _ MONATE _ 2003 int (11) YES NULL
Suche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
MehrInformatik 12 Datenbanken SQL-Einführung
Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung
Mehr2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)
1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise
MehrPHPNuke Quick & Dirty
PHPNuke Quick & Dirty Dieses Tutorial richtet sich an all die, die zum erstenmal an PHPNuke System aufsetzen und wirklich keine Ahnung haben wie es geht. Hier wird sehr flott, ohne grosse Umschweife dargestellt
MehrLokale Installation von DotNetNuke 4 ohne IIS
Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation
MehrDiese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!
Anmeldung über SSH Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten! Besitzer der Homepage Advanced und Homepage Professional haben die Möglichkeit, direkt
MehrDatenübernahme easyjob 3.0 zu easyjob 4.0
Datenübernahme easyjob 3.0 zu easyjob 4.0 Einführung...3 Systemanforderung easyjob 4.0...3 Vorgehensweise zur Umstellung zu easyjob 4.0...4 Installation easyjob 4.0 auf dem Server und Arbeitsstationen...4
MehrStammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing
Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing Finanzbuchhaltung Wenn Sie Fragen haben, dann rufen Sie uns an, wir helfen Ihnen gerne weiter - mit Ihrem Wartungsvertrag
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Mehrpro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9
Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 1 Allgemeine Beschreibung "Was war geplant, wo stehen Sie jetzt und wie könnte es noch werden?" Das sind die typischen Fragen, mit denen viele Unternehmer
MehrInstallation der SAS Foundation Software auf Windows
Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software
MehrSQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar
Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-
MehrDatenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware
Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO
Mehrmysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank
mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man
MehrSEMINAR Modifikation für die Nutzung des Community Builders
20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrInstallation und Inbetriebnahme von SolidWorks
Inhaltsverzeichnis FAKULTÄT FÜR INGENIEURWISSENSCHAFTEN I Prof. Dr.-Ing. Frank Lobeck Installation und Inbetriebnahme von SolidWorks Inhaltsverzeichnis Inhaltsverzeichnis... I 1. Einleitung... 1 2. Installation...
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrÜbung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
MehrStellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrWeb Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen
9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.
MehrINSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA
INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA Unter Windows Vista ist die Installation der V-Modell XT Komponenten nicht ohne Weiteres möglich, da die User Account Control (UAC)-Engine dies unterbindet.
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrAdminer: Installationsanleitung
Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann
Mehr3. Stored Procedures und PL/SQL
3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln
MehrKundenspezifische Preise im Shop WyRu Online-Shop
Kundenspezifische Preise im Shop WyRu Online-Shop Team WyRu Christian Wyk / Günter Rubik SCS Bürocenter B1, A-2334 Vösendorf Internet http://www.wyru.at Kundenspezifische Preise sind ein Feature des WyRu
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
Mehr2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE
2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht
MehrDer Kalender im ipad
Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,
MehrPatch Management mit
Patch Management mit Installation von Hotfixes & Patches Inhaltsverzeichnis dieses Dokuments Einleitung...3 Wie man einen Patch installiert...4 Patch Installation unter UliCMS 7.x.x bis 8.x.x...4 Patch
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrInformation zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)
Information zum SQL Server: Installieren und deinstallieren (Stand: September 2012) Um pulsmagic nutzen zu können, wird eine SQL-Server-Datenbank benötigt. Im Rahmen der Installation von pulsmagic wird
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrAnleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken
Betriebliche Datenverarbeitung Wirtschaftswissenschaften AnleitungzurEinrichtungeinerODBC VerbindungzudenÜbungsdatenbanken 0.Voraussetzung Diese Anleitung beschreibt das Vorgehen für alle gängigen Windows
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrPlanung für Organisation und Technik
Salztorgasse 6, A - 1010 Wien, Austria q Planung für Organisation und Technik MOA-VV Installation Bearbeiter: Version: Dokument: Scheuchl Andreas 19.11.10 MOA-VV Installation.doc MOA-VV Inhaltsverzeichnis
MehrINHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA
INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 VORBEDINGUNGEN Als Vorbedingungen sollte bereits
MehrKonfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung
Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Inhalt 1. Einleitung:... 2 2. Igel ThinClient Linux OS und Zugriff aus dem LAN... 3
MehrINSTALLATION VON INSTANTRAILS 1.7
INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis
MehrAnwenderdokumentation PersoSim
Anwenderdokumentation PersoSim Die nachfolgende Anwenderdokumentation soll dem Anwender bei der Installation und den ersten Schritten im Umgang mit PersoSim helfen. Installation Grundvoraussetzung für
MehrLeitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x
Leitfaden zur Durchführung eines Jahreswechsels in BüroWARE 5.x Je nach BüroWARE Version kann sich das Menü des Datenbankassistenten von den Bildschirmausdrucken in unserem Leitfaden unterscheiden. Der
MehrDokumentation zum Spielserver der Software Challenge
Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...
MehrARCO Software - Anleitung zur Umstellung der MWSt
ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.
MehrÜbung 8: Semaphore in Java (eigene Implementierung)
Übung 8: Semaphore in Java (eigene Implementierung) Ziel der Übung: Diese Übung dient dazu, eine eigene Implementierung einer Semaphore-Klasse in der Programmiersprache Java kennenzulernen. Anschließend
Mehr1 Lieferantenbewertung
1 Lieferantenbewertung Mit Hilfe der Lieferantenbewertung können alle aktiven Lieferanten nach ISO Kriterien bewertet werden. Die zur Bewertung hinterlegten Faktoren können individuell vorgegeben werden.
MehrLineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
MehrMetaQuotes Empfehlungen zum Gebrauch von
MetaQuotes Empfehlungen zum Gebrauch von MetaTrader 4 auf Mac OS Auch wenn viele kommerzielle Angebote im Internet existieren, so hat sich MetaQuotes, der Entwickler von MetaTrader 4, dazu entschieden
MehrAgile Vorgehensmodelle in der Softwareentwicklung: Scrum
C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was
MehrHilfe zur Urlaubsplanung und Zeiterfassung
Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrIst Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?
UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.
MehrPicKit 3. Programmierung mit dem USB-Programmer PICkit3 (Microchip) AB-2010-04
PicKit 3 Programmierung mit dem USB-Programmer PICkit3 (Microchip) AB-2010-04 In diesem Dokument wird ein Umbau beschrieben. Für die Funktion des Umbaus gibt es keine Garantie. Für durch diesen Umbau entstandene
MehrSoftwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch
Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
MehrDynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München
Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester
MehrTask: Nmap Skripte ausführen
Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses
MehrAvira Server Security Produktupdates. Best Practice
Avira Server Security Produktupdates Best Practice Inhaltsverzeichnis 1. Was ist Avira Server Security?... 3 2. Wo kann Avira Server Security sonst gefunden werden?... 3 3. Was ist der Unterschied zwischen
MehrSie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?
Leitfaden zur Druckdatenerstellung Inhalt: 1. Download und Installation der ECI-Profile 2. Farbeinstellungen der Adobe Creative Suite Bitte beachten! In diesem kleinen Leitfaden möchten wir auf die Druckdatenerstellung
MehrAnleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers
Anleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers Der neue Sony PRS-T1 ebook-reader ist nicht mehr mit dem Programm Adobe Digital Editions zu bedienen. Es sind daher einige Schritte
MehrAnleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers
Anleitung zur Installation und Nutzung des Sony PRS-T1 ebook Readers Der neue Sony PRS-T1 ebook-reader ist nicht mehr mit dem Programm Adobe Digital Editions zu bedienen. Es sind daher einige Schritte
MehrIhre Interessentendatensätze bei inobroker. 1. Interessentendatensätze
Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit
MehrAnwendungsbeispiele Buchhaltung
Kostenstellen in Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Kostenstellen 1.1 Was sind Kostenstellen? 1.2 Kostenstellen in der 2 Kostenstellen in Webling 2.1 Kostenstellen erstellen
MehrProjektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11
Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS
MehrHandbuch Offline-Abgleich
Handbuch Offline-Abgleich Inhalt Handbuch Offline-Abgleich...1 Einleitung...3 Voraussetzungen...3 Aufruf des Offline-Abgleichs...3 Übersichtsseite...3 Wahl einer Liste...3 Wahl des Offline Abgleichs...4
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrHandbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen
MehrHandbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
MehrWelche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?
Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp
Mehrschnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv
Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag
MehrKostenstellen verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4
MehrHandbuch zur Anlage von Turnieren auf der NÖEV-Homepage
Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei
MehrDas große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten
Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während
MehrTESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!
9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
MehrDatenbank-Verschlüsselung mit DbDefence und Webanwendungen.
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine
MehrM@school Software- und Druckerzuweisung Selbstlernmaterialien
Bildung und Sport M@school Software- und Druckerzuweisung Selbstlernmaterialien Hinweise zum Skript: LMK = Linker Mausklick RMK = Rechter Mausklick LMT = Linke Maustaste RMT = Rechte Maustaste Um die Lesbarkeit
MehrDu hast hier die Möglichkeit Adressen zu erfassen, Lieferscheine & Rechnungen zu drucken und Deine Artikel zu verwalten.
Bedienungsanleitung Professionell aussehende Rechnungen machen einen guten Eindruck vor allem wenn du gerade am Beginn deiner Unternehmung bist. Diese Vorlage ist für den Beginn und für wenige Rechnungen
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrUpdateanleitung für SFirm 3.1
Updateanleitung für SFirm 3.1 Vorab einige Informationen über das bevorstehende Update Bei der neuen Version 3.1 von SFirm handelt es sich um eine eigenständige Installation, beide Versionen sind komplett
MehrHochschule Darmstadt Fachbereich Informatik
Hochschule Darmstadt Fachbereich Informatik Entwicklung webbasierter Anwendungen Praktikumsaufgaben 1 Semesterthema "Webbasierter Pizzaservice" Im Lauf des Semesters soll eine integrierte webbasierte Anwendung
MehrSEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299
SEPA Lastschriften Ergänzung zur Dokumentation vom 27.01.2014 Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 www.workshop-software.de Verfasser: SK info@workshop-software.de
MehrGüte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über
Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion
MehrAnhand des bereits hergeleiteten Models erstellen wir nun mit der Formel
Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung
MehrZugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004
Zugriff auf Firebird-Datenbanken mit PHP Daniel de West DB-Campus-Treffen 15. Januar 2004 Inhalt PHP und Firebird Die wichtigsten Befehle Verbindungsaufbau Übermitteln von Abfragen Beenden von Verbindungen
MehrBedienungsanleitung für den Online-Shop
Hier sind die Produktgruppen zu finden. Zur Produktgruppe gibt es eine Besonderheit: - Seite 1 von 18 - Zuerst wählen Sie einen Drucker-Hersteller aus. Dann wählen Sie das entsprechende Drucker- Modell
MehrPsyprax auf einen neuen Rechner übertragen (Rechnerwechsel)
Psyprax GmbH Landsberger Str. 310 80687 München T. 089-5468000 F. 089-54680029 E. info@psyprax.de Psyprax GmbH Psyprax auf einen neuen Rechner übertragen (Rechnerwechsel) Kurz und knapp Gleiche oder höhere
MehrWhitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube 30 78462 Konstanz
combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Einbindung externer FiBu-/Warenwirtschaftsdaten Einbindung externer FiBu-/Warenwirtschaftsdaten - 2 - Inhalt Ausgangssituation
MehrFrontDoor/Monitor mehr sehen von FrontDoor
FrontDoor/Monitor mehr sehen von FrontDoor BYTEBAR.EU NEHMEN SIE SICH MEHR HERAUS Haben Sie schon einmal mit Ihrem Laptop direkt den Massenspeicher ausgelesen? FrontDoor/Monitor macht dies noch angenehmer.
MehrWie kann ein Fondssparplan verwaltet werden? Version / Datum V 1.0 / 22.09.2010
Software WISO Mein Geld Thema Wie kann ein Fondssparplan verwaltet werden? Version / Datum V 1.0 / 22.09.2010 Das vorliegende Dokument gibt Ihnen Tipps, wie ein Fondssparplan mit WISO Mein Geld komfortabel
MehrNicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003
Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.
MehrMengenvergleiche: Alle Konten außer das, mit dem größten Saldo.
Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten
Mehr4.1 Download der App über den Play Store
4 4.1 Download der App über den Play Store Die App TopSec Phone kann über den Play Store auf dem Smartphone oder über das Internet an Ihrem Computer heruntergeladen werden. Um Inhalte laden zu können,
Mehr