Unterschied zwischen Daten und Information
DATEN
INFORMATION
einfache, unbearbeitete Fakten
der Output von prozessierte Daten
kann, muss aber nicht bedeutsam oder aussagekräftig sein
immer bedeutsam bzw. aussagekräftig
nicht organisiert, strukturiert
organisiert und strukturiert
schwer zu verstehen
leicht zu verstehen
werden erst durch ihren Zweckbezug zu eigentlichen Informationen
zweckorientiertes Wissen
Beispiel: Umfragedaten
Volkszählungs-(Census) Bericht
Variable
Eine statistische Variable ist ein Merkmal.
Der Wert einer Variablen ist die Merkmalsausprägung und wird einer Beobachtungs- oder Untersuchungseinheit zugeordnet.
Welche Datensatztypen gibt es?
univarat (eindimensional)
bivarat (zweidimensional)
multivarat (multidimensional)
univarat
1-dimensional (X)
Jede Untersuchungseinheit erzeugt nur 1Datenpunkt für diese eine Variable.
Mehr als Verteilungen lassen sich nicht untersuchen.
bivarat
2-dimensional (X und Y)
Jede Untersuchungseinheit erzeugt 2Datenpunkte: je 1 pro Variable.
Vorteil: Gruppenunterschiede oder Beziehungen lassen sich jetzt untersuchen.
multivarat
multi-dimensional (X, Y, Z, ..)
Jede Untersuchungseinheit erzeugt pDatenpunkte: je 1 pro p Variablen.
Vorteil: komplexe Unterschiede oder Beziehungen lassen sich untersuchen.
Nachteil: >4 Variablen sind schwer zu visualisieren
Kategoriale (qualitative) Variablen
Die Werte sind überschneidungsfreie Kategorien oder Gruppen: A | B | C
Quantitative Variablen mit nur wenigen Ausprägungen können auch als kategorial betrachtet werden.
Quantitative (metrische) Variablen
Die Werte sind Zahlen, die üblicherweise Anzahlen oder Messwerte darstellen.
Unterscheidung nach mathematischen Attributen:
diskret: Variable nimmt nur endlich viele oder abzählbar unendlich viele Werte an (ganze Zahlen).
stetig/kontinuierlich: Variable nimmt unendlich viele Werte an (reelle Zahl) und hat eine stetige Verteilungsfunktion.
Welche Variablentypen gibt es (grob)?
kategoriale (qualitative) Variablen
quantitative (metrische) Variablen
Welche Skalenniveaus gibt es?
Nominalskaliert
Ordinalskaliert
Intervallskaliert
Verhältnisskaliert
Kategorien lassen sich nicht in eine natürliche Reihenfolge bringen: (kategoriale Variable)
2 Gruppen (binär): 0/1, lebend/tot
mehr als 2 Gruppen: Baum/Busch/Gras
Kategorien lassen sich in eine Reihenfolge bringen, allerdings gibt es keine interpretierbaren Abstände: (kategoriale Variable)
klein<medium<groß
ja>vielleicht>nein
Hier kann nicht nur der Rangder Elemente, sondern auch der Unterschied zwischen den einzelnen Elementen bestimmt werden. Merkmale auf dieser Skala sind metrisch. (quantitative Variable)
Zeitskala
Temperatur (in Grad Celsius)
Auch eine metrische Skala; im Unterschied zur Intervallskala existiert jedoch ein absoluter Nullpunkt → besitzt den höchsten Informationsgehalt. (quantitative Variable)
Alter (in Jahren)
Temperatur (in Grad Kelvin)
Was sind Datentypen?
Allgemein: Zusammenfassung von Objektmengen mit den darauf definierten Operationen.
Spezifisch bei Programmiersprachen: Zusammenfassung konkreter Wertebereiche und darauf definierter Operationen zu einer Einheit.
Welche Datentypen werden unterschieden?
elementare (primitive) Datentypen
zusammengesetzte Datentypen
Elementare (primitive) Datentypen
Nehmen nur einen Wert auf:
Boolean (logische Werte) - BOOL, BOOLEAN, LOGICAL
Zeichen (einzelnes Zeichen) - CHAR, CHARACTER
Zahlen
Ganze Zahlen - BYTE, INT, INTEGER, LONG, LONG INT,..
Natürliche Zahlen
Festkommazahlen - DEC, DECIMAL, NUMERIC,..
Gleitkommazahlen - DOUBLE, DOUBLE PRECISION, FLOAT,..
Zusammengesetzte Datentypen
Ein Datenkonstrukt, welches aus einfacheren Datentypen besteht:
Zeichenketten
Reihung (Tupel)
Verbund, Klassen
Was ist ein Tabellenkalkulationsprgramm?
..ist eine Software für die interaktive Eingabe und Verarbeitung von numerischen und alphanumerischen Daten in Form einer Tabelle.
..erlaubt zusätzlich die grafische Darstellung der Ergebnisse in verschiedenen Anzeigeformen.
Welche Anwendungen hat ein Tabellenkalkulationsprogramm?
Digitalisierung von Daten.
Betrachtung von Daten.
Datenumstrukturierung.
Einfache Berechnungen und numerische Zusammenfassungen.
Grafische Darstellung der Daten zur Datenexploration.
Export von Daten für die Nutzung in anderen Programmen (z.B. R).
Bekannte Tabellenkalkulationsprogramme
Microsoft Excel
LibreOffice Calc (werden wir verwenden)
Numbers (macOS)
Geocalc
StarOffice StarCalc
Lotus 1-2-3
Was bedeutet “tidy data”?
Eine Art, Daten tabellarisch zu organisieren.
Bietet eine konsistente Datenstruktur über verschiedene Programme hinweg.
Ist einfach zu aggregieren, visualisieren und modellieren.
langes Format
Das ‘lange’ Datenformat wird als ‘tidy’ erachtet, weil
jede Beobachtung (hier: Temperaturmessung) in einer eigenen Reihe ist.
jede Variable seine eigene Spalte hat → Station und Temperatur sind getrennt!
Was ist eine Datenbank?
ist eine Datensammlung,
ist nach den natürlichen Zusammenhängen strukturiert,
hat eine Datenbankverwaltung und ein Datenbankmanagementsystem (DBMS),
erlaubt den Zugriff mehrerer Benutzer gleichzeitig.
Typen der deskriptiven Statistik
numerische Statistik
grafische Statistik
Numerische Statistik
Aussage über Zentriertheit und Streuung der Werte.
Grafische Statistik
Aussage über die Verteilung der Werte.
Erkennung von Mustern: Unterschiede, Anteile, Beziehungen, Trends, Hierarchien
Grafiken sind für die Mustererkennung geeigneter, am besten aber immer beides anwenden.
Definition Parameter
Eine Merkmal welches die Grundgesamtheit beschreibt.
Allerdings selten möglich, die vollständige Grundgesamtheit zu messen.
Verwendung griechischer Buchstaben: μ,σ2
Definition Parameterschätzwerte bzw. Stichprobenstatistik
Zusammenfassung von Informationen über einen Parameter, der aus einer Stichprobe gewonnen wurde.
Werte variieren zufällig von einer Zufallsstichprobe zur nächsten → daher stellt die Statistik eine Zufallsmenge (Variable) dar.
Verwendung lateinischer Buchstaben: z.B. x¯,s2
Definition Stichprobenverteilungen
Die Wahrscheinlichkeitsverteilung dieser Zufallsvariable.
Sie ist wichtig, weil sie es ermöglicht, auf der Grundlage einer Zufallsstichprobe Rückschlüsse über den entsprechenden Parameter der Grundgesamtheit zu ziehen.
Definition Modalwert
Der Modalwert ist der am häufigsten auftretende Wert in einer Verteilung.
Es ist die einzige Messgröße der Zentriertheit, welche bei nominalen Daten verwendet werden kann.
Definition Median
= die Mitte einer Verteilung;
Die Hälfte der Werte liegt oberhalb dieses Wertes, die andere Hälfte darunter
Wird auch als 50%-Perzentilbezeichnet.
Kann auch bei ordinalen Daten verwendet werden.
Definition Mittelwert
x¯=∑xi / n
Häufig als Mittelwert (‘mean’) oder Durchschnitt (‘average’) bezeichnet, dabei sollte man sehr genau sein um von den anderen Mittelwerten unterscheiden zu können.
Parameter: μ
Stichprobenstatistik: x¯
x¯=∑wi∗xi / ∑wi
Jedem Datenpunkt xi ist eine Gewichtung wi zugeordnet.
Was ist der Nachteil vom Mittelwert? Wann ist er “sinnlos”?
kann eine gutes Maß sein, um grob eine symmetrische Verteilung einschätzen zu können
Bei einer schiefen Verteilung (‘skewed’) kann er aber auch irreführend sein, da die Verteilung sehr stark von Extremwerten beeinflusst werden kann.
Wie nennt man Streuungsparameter noch?
Dispersionsmaße
Streuungsmaße
Welche Streungsparameter gibt es?
Variationsbreite oder Spannweite: R=xmax−xmin
Varianz
Standardabweichung
Standardfehler
Varianzkoeffizient
Definition Varianz
Parameter σ2, Stichprobenstatistik s2
= mittlere Summe der Quadrate der Abweichungen aller Einzelwerte vom Mittelwert (=Residuen)
Wird am häufigsten verwendet.
Ist eine Messgröße für die gesamte Variabilität.
Ist weniger sensitiv gegenüber extremen Werten.
Ist hilfreich bei der Beurteilung der Datenqualität.
Wir wollen nicht, dass die Varianz von der Probengröße abhängig ist, deshalb ist die offensichtliche Lösung, durch die Anzahl der Proben zu dividieren um die mittlere, quadrierte Abweichung zu erhalten.
Definition Freiheitsgrade
Das n-1 in der Gleichung stellt die Anzahl der sogenannten Freiheitsgrade (‘degrees of freedom’= df) dar:
df=n−p → mit p = Anzahl der geschätzten Parameter für die Daten
Eine Probe hat 5 Zahlen und einen Mittelwert von 4
→ Die Summe muss 20 sein. Wenn die ersten 4 Zahlen 1, 1, 4, und 10 sind, dann muss die letzte Zahl 4 sein;
→ wir haben 4 Freiheitsgrade für 5 Zahlen.
Definition Standardabweichung
Die Standardabweichung σ bzw. s(‘standard deviation’, SD) ist einfach die Quadratwurzel der Varianz.
Sie wird somit in der gleichen Einheit wie die Daten ausgedrückt.
Wird typischerweise für Fehlerbalken in Graphen verwendet.
Wenn die Daten normal verteilt sind,
fallen 68% aller Messungen innerhalb einer SD vom Mittelwert.
fallen 95% aller Messungen innerhalb zwei SD vom Mittelwert.
Definition Standardfehler
Der Standardfehler sx¯ der Stichprobe (‘standard error’, SE) normalisiert die Standardabweichungdurch die Quadratwurzel der Probenanzahl n
Je größer die Probenanzahl n, desto größer ist s2und s → SE gibt eine Einschätzung der Variabilität unabhängig von der Probenanzahl.
Je größer n, desto kleiner SE.
Bei Gruppenvergleichen mit unterschiedlicher Probenanzahl sollte immer SE verwendet werden!
Definition Variationskoeffizient
Im Englischen ‘Coefficient of variation’ (CV) genannt.
Definiert als das Verhältnis von Standardabweichung und Mittelwert (häufig in Prozent ausgedrückt).
Erlaubt den Vergleich der Varianz von Populationen, die unterschiedliche Mittelwerte haben.
Tendiert dazu bei kleiner Probengröße verzerrt zu sein (bias).
Unterschied Häufigkeitsverteilung und Wahrscheinlichkeitsverteilung
Zeigt einfach nur, wie oft ein Wert vorkommt (Ist-Werte)
= empirische Verteilung, im Englischen frequency distribution
Zeigt, wie häufig ein Wert hätte vorkommen sollen (Erwartungswerte)
= theoretische Verteilung, im Englischen probability distribution
Eigenschaften der Normalverteilung
Kontinuierliche, symmetrische Verteilung mit mehr Werten in der Mitte als am Rand (tails) → typische Glockenform (bell shape). Spannweite von -∞ bis +∞.
Die Schiefe (skewness) ist null, da die Verteilung symmetrisch um den Mittelwert liegt.
Zwei Parameter spezifizieren die Normalverteilung: Mittelwert und Varianz
Abstufung eines Histogramms (rot) zu einer Normalkurve (blau).
Definition Schiefe
Eine Verteilung ist schief, wenn ein Ende/Rand (tail) länger ist als das andere.
Positive Schiefe (γ1γ1>0) kommt häufiger vor (z.B. bei Mengen/Abundanz, Einkommen …).
Rechtsschief (Aussehen und Verteilung der Lagemaße)
Linksschief (Aussehen und Verteilung der Lagemaße)
Definition Kurtosis
= Wölbung
Basiert auf der Größe des Verteilungsrandes (distribution tail).
Wird gemessen an der “Spitzigkeit” der Verteilung:
leptokurtisch (schmalgipflig): relativ lange Enden (γ2 > 0)
platykurtisch (breitgipflig): kurze Enden (γ2 < 0)
mesokurtisch (normalgipflig): eine Verteilung mit der gleichen Kurtosis wie die Normalverteilung (γ2 = 0)
Definition Histogramm
Werden verwendet um Häufigkeitsverteilungen von kontinuierlichen Variablendarzustellen und auf Normalverteilung zu prüfen.
Werte werden in Wertebereichen (sog. bins) gruppiert und anschl. die Häufigkeiten ermittelt
Die Säulen berühren sich.
Definition Säulendiagramm
column chart
Werden verwendet um Häufigkeitsverteilungen von kategorialen oder diskreten Variablen darzustellen.
Die Säulen berühren sich nicht, denn es gibt keine “Zwischenwerte”.
Definition Balkendiagramm
bar chart
Ist dem Säulendiagramm sehr ähnlich, allerdings sind die Achsen vertauscht:
Aus den vertikalen Säulen werden horizontale Balken.
Es wächst in die Länge und nicht in die Breite.
Definition Boxplot
Visualisiert den Median (2.Quartil) und die 25% und 75% Perzentilen (1. bzw. 3.Quartil) als Streuungsparameter.
50% aller Datenpunkte liegen somit innerhalb der Box.
Die unteren und oberen 25% werden als sog. whisker angezeigt.
Extremwerte werden durch Punkte dargestellt.
Welche Fragen lassen sich mit einem Boxplot beantworten?
Gibt es eine große Streuung?
Sind die Beobachtungen homogen verteilt (normal und nicht schief), d.h.
der Median ist mittig in der Box?
beide whisker sind gleich lang?
Ist die Verteilung gewölbt (also schmalgipflig-leptocurtic), d.h.
die whisker sind wesentlich länger als beide Boxhälften?
Gibt es Ausreißer?
Definition Korrelation
Prüfen von Beziehungen ohneKausalität.
Das Skalenniveau kann ordinal oder metrisch sein.
Beide Variablen sind zufällige Variablen, es wird keine manipuliert.
Je nach Skalenniveau und Verteilung wird der Korrelationstyp gewählt.
Definition Regression
Prüfen von Beziehungen mitKausalität.
Beide Variablen müssen metrischsein.
Unterscheidet in
Abhängige oder Antwortvariable Y
Unabhängige oder erklärende Variable X; diese wird meist manipuliert.
Charakterisierung bivariater Beziehungen
Form (linear, nicht-linear, quadratisch)
Richtung (positiv, negativ)
Stärke (wie viel Streuung/Rauschen?)
Ausreißer
Quantifizierung der Stärke und Richtung von bivariaten Beziehungen
Messgröße: Korrelationskoeffizient
Wertebereich: -1 bis +1
Das Vorzeichen gibt die Richtung der Beziehung an.
Der Betrag die Stärke
0 = keine Korrelation
-1 = starke negative Korrelation
+1 starke positive Korrelation
Wichtig
→ Dies gilt allerdings nur bei linearen Zusammenhängen!
Welche Charakteristika hat diese Grafik?
positiv, linear, moderate Streuung
nicht-linear (perfekte Beziehung, keine Streuung)
perfekt linear mit Ausreißern
keine Beziehung
Varianz von X berechnen
Kovarianz zwischen X und Y berechnen
Definition Kovarianz
Ein Maß für die Stärke einer linearen Beziehung
Einschränkung: absolute Größe hängt von den Einheiten der beiden Variablen ab.
Standardisierung der Kovarianz mit den beiden Standardabweichungen, so dass das Maß der Stärke zwischen -1 und +1 liegt
→ Pearson Produkt-Moment-Korrelationskoeffizient
Pearson Produkt-Moment-Korrelationskoeffizient ρ
Der Korrelationskoeffizient r (bzw. ρ für die Population) wird durch das Verhältnis zwischen der Kovarianz und der maximalen Kovarianz quantifiziert:
Was sind Ziele der statistischen Modellierung?
Reduktion von Information / Vergleichbarkeit
Identifikation der wichtigsten erklärenden Variablen (Prädiktor, Einflusswert, Wirkungsvariable; ‘predictor’)
Bestimmung der Parameter-Werte, die erklärende (‘predictor’; X) und erklärte (‘response’, Y) Variablen verbindet
Modell-basierte Vorhersagen machen
Wir suchen nach einem Model, dass
die größte Menge der Variabilität in den Daten erklärt.
die kleinstmögliche Menge an nicht erklärbarer Variabilität produziert.
am besten zu den Daten passt.
Beide X und Y Variablen können quantitativ und/oder kategorial sein.
Kurvenanpassung
Die Kurvenanpassung (auch Ausgleichsrechnung oder Fit) ist eine mathematische Methode, gegebene (Mess-) Daten in möglichst einfacher analytischer Form darzustellen.
Das bekannteste Beispiel ist die lineare Regression.
Varianz-Verzerrungs-Dilemma
Jedes Modell stellt einen Kompromiss zwischen Varianz und Verzerrung dar (sog. ‘Varianz-Verzerrungs-Dilemma’):
Der Anteil, um den sich die Funktion f(x) ändern würde, wenn man einen anderen Testdatensatz nimmt.
Der Fehler, der eingeführt wird, wenn man ein reales und kompliziertes Problem mit einem sehr einfachen Modell lösen möchte.
Über- und Unteranpassung
Überanpassung (‘overfitting’): Modelle passen sich besonders gut an die Daten an, mit denen auch die Parameter bestimmt werden; für neue Daten sind die Vorhersagen aber schlecht.
Unteranpassung (‘underfitting’): Modelle (wie eine lineare Gerade) passen sich weniger gut an die Daten an, mit denen auch die Parameter bestimmt werden; für neue Daten sind die Vorhersagen aber dafür passender.
Lineare Regression (Formel und Bedeutung der Parameter)
y=a+bx
y ist die abhängige Variable.
x ist die unabhängige Variable.
a ist der y-Achsenschnittpunkt, das ist der Wert an dem die Linie die y-Achse kreuzt (wenn x Null ist).
bb ist der Steigungskoeffizient und berechnet sich aus dem Quotienten der Differenz von y1 und y2 sowie von x1 und x2.
b gibt an, um wieviel y zunimmt (bzw. abnimmt), wenn x sich um 1 Einheit erhöht.
Lineare Regression: positive Steigung und positver Achsenabschnitt
Zwei unabhängige Größen wirken additiv auf das Ergebnis (Y) ein.
Achsenabschnitt a ist konstant, d.h. er ist unabhängig von der Ausprägung der Variable X.
Der andere Term wächst proportional zur Variable X.
Unabhängig bedeutet, das bei Wegfall des einen Terms der Effekt des anderen erhalten bleibt.
y = Stoffwechselkosten eines fressenden Tieres
x = Anzahl der erbeuteten Tiere
a = Grundstoffwechsel des ruhenden Tieres
b = energetische Kosten der Erbeutung (und Verarbeitung) eines Beutetieres(unter der impliziten Annahme, das die Beutetiere identisch sind)
Lineare Regression: positive Steigung und Achsenabschnitt Null
Hier wirkt nur ein Faktor auf die abhängige Variable ein. Man spricht auch von Proportionalität bei diesem Typ.
Bei isometrischem Wachstum ändert ein Körper seine Gestalt nicht, er wächst unter Beibehaltung seiner Proportionen.
Zum Nachweis kann man verschiedene Längenmaße in einer Grafik gegeneinander auftragen:
Lineare Regression: negative Steigung und positver Achsenabschnitt
y = Körpergewicht des Tieres
x = Zeit in Tagen
a = Anfangsgewicht des Tieres zu Beginn der Hungerperiode
b = entspricht dem Grundstoffwechsel pro Tag
Lineare Regression: positive Steigung und negativer Achsenabschnitt
Hier arbeiten zwei Prozesse gegeneinander, d.h. mit unterschiedlichem Vorzeichen.
y = täglicher Zuwachs in Energieeinheiten
x = tägliche Futtermenge in Energieeinheiten
a = Zuwachs bei Null Futtermenge → Verlust an Energie
Wenn y=0 → bei der entsprechenden Futtermenge x1x1ist Zuwachs gerade Null (=Erhaltungsration in Energieeinheiten).
b = Effizienz, mit der jede zusätzliche Menge an Nahrungsenergie in Energiezuwachs des Fisches umgesetzt wird.
Die beiden gegeneinander arbeitenden Prozesse sind die Energiezufuhr durch die Nahrung (positives Vorzeichen) und der Energieverbrauch durch den Erhaltungsstoffwechsel.
Berechnung von a und b der linearen Regression
Gewöhnliche Methode der kleinsten Fehlerquadrate = Ordinary Least Squares (OLS)
OLS findet die Parameter a und b, basierend auf der Minimierung der Abweichungs-Summenquadrate (‘residual sums of squares’ = SSResidualSSResidual).
Bestimmtheitsmaß
Die statistische Kenngröße R^2 ist ein Maß für den Anteil der Variabilität in y, welcher durch das lineare Modell erklärt werden kann:
Werte nahe 1 weisen auf eine sehr gute Beschreibung der Daten.
Werte nahe 0 weisen auf eine sehr hohe Streuung der Daten um die Gerade an
Bei R^2=1 lägen alle Datenwerte exakt auf der Geraden.
In der Ökologie wird bereits ein R^2 von 0.5 bzw. 50% als sehr gut erachtet.
R^2=1 ist auch das Quadrat des Korrelationskoeffizienten r
Was sind alles lineare Modelle?
Der Begriff linear bezieht sich auf die lineare Kombination von Parametern, nicht die Form der Verteilung, d.h. Parameter dürfen nicht im Exponenten auftreten oder durch/mit einem anderen Parameter dividiert/multipliziert werden.
Dies sind alles lineare Modelle:
y=a+bx+cx^2
y=a+b(x∗w)
y=a+b∗log(x)
y=a+b∗exp(x)
y=a+b∗sin(x)
Warum benutzen wir lineare Modelle?
Die Methode der linearen Regression ist schon seit über 100 Jahren gut etabliert.
Vorteile:
einfach zu interpretieren (y-Achsenabschnitt, Steigung)
einfach zu begreifen (auch Interaktionen, mehrere x)
Parameter können weiter benutzt werden, z.B. in numerischen Modellen
einfach zu erweitern
Nachteil:
Dynamik ist nicht immer linear → Transformationen helfen nicht immer oder führen zu Informationsverlust.
Generelle Transformationsregeln
Alle Variablen verändern die Struktur der Streuung durch eine Transformation:
Ausreißer, oder generell alle numerisch großen Werte werden stärker reduziert.
Dadurch wird der mögliche Einfluss von großen Werten bzw. Ausreißern gemindert → je nach Struktur der Daten kann dies von Vor- oder Nachteil sein.
Die Verteilung der Daten kann sich normalisieren.
Die Streuung wird reduziert und Varianzen zwischen Gruppen angeglichen.
Die Beziehung zwischen Variablen kann linearisiert werden.
Logarithmische Transformation die gebräuchlichste, aber auch extremste.
Einfache Wurzel-Transformation und die 4te Wurzel sind gute Alternativen.
Exponentielles Wachstum
y=a∗e^(bx)
Exponentieller Verfall:
y=a∗e^(−bx)
Definition Programm
Ein Programm ist die Umsetzung eines Algorithmus und der zugehörigen Datenbereichein eine Programmiersprache. Während Algorithmen relativ allgemein beschrieben werden können, sind Programme wesentlich konkreter.
Definition Programmiersprache
Programmiersprachen sind formale Sprachen, mit denen sich Rechenvorschriften formulieren lassen. Diese Vorschriften können dann von einem Computer ausgeführt werden.
Die Gesamtheit aller Anweisungen, die in einer bestimmten Programmiersprache geschrieben sind, bezeichnet man als Quellcode.
Ein Quellcode lässt sich mit Hilfe eines einfachen Texteditors erstellen.
Bei größeren Projekten setzt man meist eine Entwicklungsumgebung (IDE) ein.
Die Syntax einer Programmiersprache ist deren “Grammatik”. Sie beschreibt sowohl die zulässigen Sprachelemente als auch, wie diese Sprachelemente zu verwenden sind.
Definition Quellcode
Definition Syntax einer Programmiersprache
Die Syntax einer Programmiersprache ist deren “Grammatik”.
beschreibt sowohl die zulässigen Sprachelemente als auch, wie diese Sprachelemente zu verwenden sind.
Übersetzung des Quellcodes (Compiler)
= gute Performance
Übersetzt den Quellcode vor seiner Ausführung in die Maschinensprache.
Dies lässt den Code schnell laufen, insbesondere wenn der Compiler effektiv optimiert.
Der Kompilierungsprozess kann jedoch Zeit in Anspruch nehmen, und der resultierende Code lässt sich möglicherweise nicht gut auf andere Betriebssysteme übertragen.
Übersetzung des Quellcodes (Interpreter)
= gute Übertragbarkeit
Übersetzt den Quellcode erst während der Laufzeit des Programms.
Der Vorteil hier ist im Allgemeinen eine bessere Übertragbarkeit zwischen den Systemen und eine geringe Kompilierzeit.
Auf der anderen Seite sind interpretierte Sprachen in der Regel langsamer als entsprechende kompilierte Sprachen.
Übersetzung des Quellcodes (JIT-Compiler)
= Ausgewogenheit zwischen Performance und Übertragbarkeit
Just-In-Time kompilierte Sprachen werden schnell kompiliert, allerdings ist die Optimierung nicht so hoch.
Welche Klassen von Programmiersprachen gibt es?
Imperative Programmierung
Funktionale Programmierung
Objektorientierte Programmierung
Das Programm besteht aus einer Folge von Anweisungen, die genau vorgibt, zu welchem Zeitpunkt was vom Rechner getan werden soll.
Zur Steuerung werden Kontrollstrukturen wie Schleifen oder Verzweigungen verwendet.
Beispiel: ALGOL, C, Cobol, Pascal, FORTRAN (älteste noch verwendete formale Sprache)
Das Programm besteht ausschließlich aus Funktionen die - wie in der Mathematik - zu Funktionen höherer Ordnung verknüpft werden können.
Auch das Programm selbst ist eine Funktion.
Beispiele: Haskell, LISP, Scheme
Das Programm stellt ein System von kooperierenden Objekten dar.
Ein Objekt gehört einer übergeordneten Kategorie (Klasse) an, besitzt bestimmte Eigenschaften (Attribute) und Methoden. Es muss auch in der Lage sein, Informationen an andere Objekte zu senden und von diesen zu empfangen.
Beispiel: C++, Java, JavaScript, Python, R
Programmieren: Variable
Eine Variable ist eine Möglichkeit, um im Programm eine Zahl, ein Zeichen oder Zeichenkette oder einen boolschen Wert (wahr oder falsch) zu speichern.
In R betrachtet man einzelne Werte oft als Skalare oder Vektoren mit einem Element.
Werte werden gespeichert, indem man sie einem Variablen- bzw. Skalarnamen zuweist - und zwar mit dem Zuweisungsoperator <-:
<-
Beispiel: x < - 5
Programmieren: Bedingung
Eine Bedingung ist eine Abfrage; trifft diese zu, so wird das, was innerhalb der Bedingung ist, ausgeführt.
Um eine Bedingung zu erstellen gibt es Operatoren (gleich, ungleich, größer als, kleiner als, wahr, falsch).
Beispiel: if (Bedingung) { ausführen }
if (Bedingung) { ausführen }
if (x < 20) { print("Stimmt, x ist kleiner als 20!") }
Programmieren: Schleifen
Eine Schleife enthält Code der solange ausgeführt wird, wie die Bedingung, die zur Schleife gehört, wahr ist.
Der Code kann also z.B. zehn Mal ausgeführt werden, das hat den Vorteil, dass der Code nicht zehn Mal geschrieben werden muss.
Beispiel: for (i in 1:10) {
print(i)
}
Programmieren: Funktionen
Eine Funktion ist eine Sammlung von Code, die jederzeit über den jeweiligen Funktionsnamen aufgerufen werden kann.
Sie können auch Parameter enthalten.
Dies sind Werte, wie z.B. eine Zahl oder ein String. Diese Zahl kann von der Funktion wie eine Variable verwendet werden.
Beispiel:
sag_hallo <- function(name) { print(paste("Hallo", name)) }
sag_hallo("Jan")
sag_hallo("Lena")
Definition Algorithmus
…ein Algorithmus ist eine Reihe von Anweisungen, die Schritt für Schritt ausgeführt werden, um eine Aufgabe oder ein Problem zu lösen
Welche Fenster gibt es in R?
Skripte
R Konsole
Arbeitsumgebung
Datenmanager
Fenster: Skripte
Für ganze Datenanalysen sollten IMMER Skripte verwendet werden.
Skripte sind simple Textdateien, die Deinen R Quellcode enthalten.
Neben ausführbarem Code kann man auch Kommentare als nicht ausführbaren Code schreiben (um den Code zu erklären). Diese werden in R mit einem ‘#’ vorweg angegeben.
Fenster: R Konsole
Das Kernstück von R
Hier werden Befehle eingegeben und Ergebnisse ausgegeben.
Für schnelle Berechnungen kann gerne nur die Konsole genutzt werden (ohne Skripte).
Fenster: Arbeitsumgebung
Die Arbeitsumgebung zeigt die eigenen gespeicherten Funktionen und Objekte an.
Sie ist bei jeder neuen Session anfangs leer.
Fenster: Datenmanager
Anstelle Dateien im Windows Explorer zu suchen und öffnen, kann direkt der Datenmanager genutzt werden.
Am besten ist, wenn das Verzeichnis, welches im Datenmanager zu sehen ist, auch das Arbeitsverzeichnis von R.
Vorteile des Skrips
Transparenz und Reproduzierbarkeit - Nicht nur die Resultate sind einsehbar, sondern jeder einzelne Schritt der Analyse.
Flexibilität - Einige Analysen brauchen nur ein paar kleine Veränderungen bestehender R Skripte.
Austausch - Theoretisch sollte jeder R user Dein Skript verstehen, so dass Code leichter austauschbar ist.
Arbeitsverzeichnis (R)
Das Arbeitsverzeichnis ist ein Dateipfad auf Deinem Computer.
Dieser Pfad legt den standardmäßigen Speicherort aller Dateien fest, die Du in R einlesen oder aus R heraus speichern möchtest.
Gewöhne Dir an, jedes Mal bevor Du loslegst das Arbeitsverzeichnis festzulegen!
Dafür gibt es mehrere Wege, merke Dir aber erstmal nur diesen hier:
Vorteile, Projekte anzulegen
Vordefinierte Ordnerstruktur..
Das Arbeitsverzeichnis wird automatisch gesetzt
Alle Skripte in diesem Projekt sind sofort verfügbar.
Öffnet eine neue R Instanz so dass man zwischen verschiedenen Instanzen wechseln kann.
arithmetische Operationen in R
Addition
Subtraktion
Multiplikation
Division
Potenzierung
Addition: +
+
Subtraktion: -
-
Multiplikation: *
*
Division: /
/
Potenzierung: ^
^
Code: Listet alle Funktionen, welche das Wort “mean” enthalten:
apropos("mean")
Code: apropos("mean")
Listet alle Funktionen, welche das Wort “mean” enthalten
Pakete in R
Pakete werden von der R Gemeinschaft geschrieben.
Sind sind eine Sammlung von
R Funktionen,
der Dokumentation, die beschreibt wie die Funktionen anzuwenden sind,
und oft auch Beispieldaten.
Code: Installation von Paketen
install.packages()
Paketname muss in “ “ stehen
muss nur einmalig passieren
Code: Laden von Paketen
library()
Bei dieser Funktion darf der Paketname mit oder ohne Anführungszeichen angegeben werden!
muss bei jeder Sitzung neu eingegeben werden
Die globale Umgebung (R)
Wenn Du Skalare und andere Objekte und Funktionen in R generierst, erscheinen diese in dem EnvironmentReiter unter Global Environment.
Die globale Umgebung ist der erste Ort des Suchverzeichnis von R und stellt Deinen aktuellen Arbeitsbereich dar.
Dieser Arbeitsbereich wird mit jedem Schließen von R/RStudio gelöscht (es sei denn Du verwendest ein RStudio Projekt und speicherst es explizit).
Code: Einzelne Skalare und andere Objekte und Funktionen lassen sich aus dem Arbeitsbereich
mit rm() und dem entsprechenden Namen löschen:
rm()
Code: rm()
Einzelne Skalare und andere Objekte und Funktionen lassen sich aus dem Arbeitsbereich mit rm() und dem entsprechenden Namen löschen:
Code: ls()
ls()
Du kannst die Liste aller Objekte des Arbeitsbereich auch in der Konsole anzeigen lassen mit ls():
Code: Du kannst die Liste aller Objekte des Arbeitsbereich auch in der Konsole anzeigen lassen
mit ls()
Elementare Datentypen in R
Datentyp
Definition
Variablentyp
Skalenniveau
logical
Logische (Boolean) Werte (TRUE oder FALSE)
TRUE
FALSE
kategorial
nominalskaliert
integer
Natürliche ganze Zahlen
quantitativ (diskret)
ordinal-/intervall-/verhältnisskaliert
double
Gleitkommazahl
quantitativ (kontinuierlich)
intervall-/verhältnisskaliert
numeric
Alle Zahlen (integerund double)
quantitativ
complex
Komplexe Zahlen (z.B. 5i)
character
Zeichen (oder Zeichenkette)
qualitativ/kategorial
NULL
leerer Inhalt
Datentyp: logical
Datentyp: integer
ganze natürliche Zahlen
Datentyp: double
Gleitkommazahlen
Datentyp: numeric
Alle Zahlen (integer und double)
Datentyp: complex
Komplexe Zahlen
Datentyp: character
Zeichen oder Zeichenkette
Datentyp: NULL
Code: Datentyp ermitteln
typeof()
Code: Datentyp gezielt abfragen
is.xxx()
Code: typeof()
Datentyp ermitteln
Code: is.xxx()
Datentyp gezielt abfragen
Code: Datentyp umwandeln
as.xxx()
Der Datentyp lässt sich in einander umwandeln, allerdings nicht in jede Richtung.
Vom spezifischeren in den allgemeineren Datentyp funktioniert immer und ohne Datenverlust:
logical > integer > double > character
Code: as.xxx()
Datentyp umwandeln
Regeln für Vektoren
Implizierte Datentyp-Umwandlung (‘coercion’)
Handling von Vektoren unterschiedlicher Länge (‘recycling’)
Namen für Elemente in Vektoren
Extrahieren von Elementen bzw. Teilmengen bilden (Indexierung oder ‘indexing’)
Regeln für Vektoren: Coercion
Alle Elemente eines Vektors müssen den gleichen Datentypen haben.
Unterschiedliche Typen werden zwangsumgewandelt (‘coerced’) und zwar zum flexibleren Typen.
Flexibilität (von gering zu hoch):
‘logical’ → ‘integer’ → ‘double’ → ‘character’
Regeln für Vektoren: Recycling
Ähnlich wie die implizierte Datentyp-Umwandlung führt R auch eine implizierte Verlängerung von Vektoren bei Operationen mit 2 Vektoren durch:
der kürzere Vektor wird auf die gleiche Länge des längeren Vektors verlängert, indem die Lücke mit den bereits vorhandenen Elementen gefüllt wird.
Regeln für Vektoren: Vektorelemente benennen
Alle Elemente in Objekten können Namen erhalten - auch in Vektoren:
Entweder beim Erstellen mit der Funktion c()
c()
oder anschließend mit der Funktion names()
names()
Regeln für Vektoren: Indexierung
[...] ist die Funktion mit der Vektoren indexiert werden.
[...]
Die entstandene Teilmenge lässt sich dann als neuer Vektor abspeichern: neuer_vektor <- alter_vektor[auswahl].
neuer_vektor <- alter_vektor[auswahl]
Wenn >1 Element ausgewählt/ausgeschlossen wird, müssen diese als Vektor übergeben werden!
Ein negatives Vorzeichen definiert alle auszuschließendenElemente (bei Positionsindexierung).
Der Nicht-Operator ! wählt genau das Gegenteil von dem was angegeben ist (bei logischer Indexierung).
Über die Angabe der Position der auszuwählenden (oder auszuschließenden!) Elemente.
Über die Namen der auszuwählenden (oder auszuschließenden!) Elemente
Mittels logischem Vektor.
Nichts angeben (eckige Klammern sind leer) → ungewöhnlich bei Vektoren
4 Arten einen Vektor zu indexieren
4 Arten einen Vektor zu indexieren:
Operator
Anwendung
Beschreibung
<
a < b
>
a > b
==
a == b
<=
a <= b
>=
a >= b
!=
a!=b
a ist KLEINER als b
a ist GRÖSSER als b
a ist GLEICH wie b
a ist KLEINER als oder GLEICH wie b
a ist GRÖSSER als oder GLEICH wie b
a ist NICHT GLEICH wie b
&
a & b
|
a | b
!
!a
&&
a && b
||
a || b
Elementweise UND Operation (arbeiten mit Vektoren)
Elementweise ODER Operation (arbeiten mit Vektoren)
Elementweise NICHT Operation (arbeiten mit Vektoren)
UND Operator, welcher den zweiten Operanden nicht auswertet, wenn der erste Operand ausreicht, um den Wert des Ausdrucks zu bestimmen (‘short-circuit’); wird mehr für Kontrollstrukturen verwendet.
ODER Operator (siehe &&)
Last changed2 years ago