Versionshistorie – Neu in GAUSS 18

Neu in GAUSS 18

Das Motto der neuen Version lautet: Noch effizienter von den Daten zum Ergebnis mit GAUSS 18. Die neuen Funktionen vereinfachen das Einlesen der Daten und deren Handhabung, erweitern die Analysewerkzeuge und die grafischen Möglichkeiten und bringen einen deutlichen Geschwindigkeitszuwachs.

Verbesserte Handhabung der DatenLaden, Transformieren und Analysieren mit einem "Einzeiler":

  • NEUE Formelnotation vereinfacht das Importieren und Transformieren der Daten
  • Lesen von SAS- und STATA-Datensätzen
  • Deutlich verbesserte Handhabung von sehr großen Datensätzen

NEUE Formelnotation vereinfacht das Importieren und Transformieren der Daten

//Load data, transform and estimate in one step
call ols("credit.xlsx", "ln(balance) ~ ln(income) + factor(sex)");

//Load data, reclassifying string column 'state' into numerical categories
X = loadd("census.csv", "income + household_size + reclassify(state)");

GAUSS 18 erweitert die bereits vorhandene einfache Formelsyntax und ermöglicht so drei Arbeitsschritte in einem: Einlesen, Transformieren und Analysieren der Daten:

  • Drastisch verringerte Anzahl der nötigen Codezeilen
  • Arbeitet mit CSV-, Excel-, GAUSS-Datensätzen, HDF5-, SAS- und STATA-Dateien
  • Unterstützte automatische Transformationen umfassen:
    • Funktionelle Transformationen, wie z. B. `ln`, `exp` oder andere GAUSS-Prozeduren
    • Erstellen von Wechselwirkungen
    • Erstellen von Dummy-Variablen
    • Reklassifizierung von Stringvariablen

Einlesen von SAS- und STATA-Datensätzen

//Load SAS dataset, create interaction term and assign to GAUSS matrix 'X'
X = loadd("advertising.7bdat", "sales + radio * billboards + direct_mail");

//Load Stata dataset and compute descriptive statistics
call dstatmt("auto2.dta", "mpg + weight + gear_ratio");

Der Austausch von Daten zwischen GAUSS und anderer Software wurde jetzt noch einfacher gemacht. Nicht nur, dass GAUSS 18 den Import von SAS- und STATA-Datensätzen ermöglicht, es erlaubt sogar die direkte Verwendung von SAS-/STATA-Datensätzen als Basis für Funktionen wie OLS, GLM und der "General Method of Moments".

  • Vollständige Kompatibilität mit SAS- und STATA-Daten
  • Import von SAS- und STATA-Datensätzen als Datenmatrizen
  • Verwendung von SAS- und STATA-Datensätzen als direkte Argumente in Funktionen

Verbesserter Umgang mit großen Datensätzen

//Load large data in consecutive 1 GB blocks
setBlockSize("1G");

//Load large data in consecutive blocks no larger than 10% of system memory
setBlockSize("10%");

Mit GAUSS 18 ist es einfach, auf große Datensätze zuzugreifen und diese zu analysieren. Die neuen Werkzeuge zum Datenhandling erlauben es dem Benutzer, die zu nutzenden Ressourcen genau zu beschreiben:

  • Anteil des verfügbaren Speichers
  • Einfache Speicherangaben
  • Anzahl der Zeilen

Allgemeine Momentenmethode - die "General Method of Moments" (GMM)

Die neu implementierte allgemeine Momentenmethode in GAUSS 18 schätzt die Parameter anhand von benutzerdefinierten Momentengleichungen oder durch analytische instrumentelle Variablen unter Verwendung der einschrittigen, zweischrittigen, iterativen oder der kontinuierlich aktualisierten GMM.

Neu implementierte GMM-Prozeduren:

  • gmmFit bietet die volle Flexibilität inklusive benutzerspezifische Momentengleichungen.
  • gmmFitIV bietet die analytische allgemeine Momentenmethode zur Abschätzung der instrumentellen Modellvariablen.

Die GAUSS-GMM-Prozeduren verfügen außerdem über neue robuste effiziente und anpassbare Werkzeuge:

  • Ein-Schritt, Zwei-Schritt, Iterative, und stetig aktualisierende Schätzer der allgemeine Momentenmethode generalized method of moments estimation.
  • Optionale instrumentelle Variablen
  • Optionen für Standardfehler und Gewichtungsmatrix, inklusive tandard, heteroskedastic robust und HAC robust.
  • Flexible initiale Gewichtungsmatrix

Graphische Funktionen

  • Neue Farbpaletten und deren Optionen
  • Programmierbare Größe der Zeichnungsfläche
  • Weitere neue Funktionen

Vermitteln Sie Erkenntnisse durch moderne und professionelle Bilder.

Neue Farbpaletten und deren Optionen

Die neuen GAUSS-18-Werkzeuge für Farbpaletten vereinfachen die Verwendung in professionellen Layouts:

  • Wählen Sie aus über 30 eingebauten Farbpaletten, neu entworfen für einen optimalen visuellen Eindruck.
    • Vordefinierte Paletten für sequenzielle, quantitative und divergierende Daten
    • Spezielle Paletten für farbenblinde Benutzer sind verfügbar.

  • Erstellen Sie Ihre eigenen Paletten:
    • Erstellen von gleichverteilten Farben im HSL-Hue-Farbraum
    • Erstellen von gleichverteilten, zirkulierenden Farbtönen im HSLuv-Farbraum
    • Mischen von Farben zur Erstellung von benutzerdefinierten Farbpaletten

Programmierbare Größe der Zeichnungsfläche

Einfache Erstellung und Reproduktion von Graphen, die Ihren Wünschen entsprechen. Die neue GAUSS-Prozedur `plotCanvasSize` definiert die Größe der Zeichenfläche basierend auf der Einheit Ihrer Wahl (Zentimeter, Millimeter, Inches oder auch Pixel).

//Make this call before your plot to set the graph canvas
//to 750 px by 530 px as shown in the image above
plotCanvasSize("px", 750|530);

Weitere neue Funktionen

string x_labels = { "Jan", "Feb", "Mar", "Apr", "May", "Jun" };
plotXY(x_labels, y);
  • Einfache Anwendung von Zeichenketten als Beschriftungen für Achsen in jedem 2D-Graphen, wie z. B. Punktplot, XY-Plot und anderen
  • Hinzufügen jeglicher 2D-Graphen (wie Punktplots) zu Konturgraphen
  • Die neue FunktionplotSetTicLabelFont definiert die Schriftart, Schriftgröße und Schriftfarbe der X- und Y-Hilfsstrichsbeschriftungen.

Steigerung der Effizienz

Erhöhen Sie Ihre Produktivität durch die neuen GAUSS-18-Funktionen zur effizienten Navigation und Organisation Ihrer Daten. Entdecken Sie Zusammenhänge schneller durch neue Werkzeuge zur Suche, Reorganisation sowie Zusammenfassung von Daten und vielem mehr!

  • Die neuen Funktionen innerJoin und outerJoin ermöglichen die flexible Kombination von Matrizen.
    ab = innerJoin(A, 1, B, 1);
    A = [ 10001 21 , 021 10029 32 , 183 10012 17 , 151 ] B = [ 10012 21 10001 44 10018 25 ] columns  A 1  and  B 1 innerJoin on [ 10001 21 , 021 44 10012 17 , 151 21 ]
  • Erstellen von diagonalen Blockmatrizen durch die Verwendung von blockDiag. .
    //'blockDiag' can create block matrices from 1, 2 or more input matrices
    d = blockDiag(A, B);
    A = [ a 11 a 12 a 21 a 22 ] B = [ b 11 b 12 b 13 b 21 b 22 b 23 ] blockDiag [ a 11 a 12 0 0 0 a 21 a 22 0 0 0 0 0 b 11 b 12 b 13 0 0 b 21 b 22 b 23 ] l i s t = [ N A "" N a N ]
  • Entdecken, ob eine Matrix, ein Array oder ein Zeichenketten-Array ein oder mehrere Elemente aus einer Liste enthält.
    //Find whether 'X' contains any elements in 'list'
    any = contains(X, list);
    X = [ M m a r r i e d N A F s i n g l e e m p l o y e d F m a r r i e d e m p l o y e d M s i n g l e u n e m p l o y e d ] l i s t = [ N A "" N a N ] contains [ 1 ]
  • Feststellen, welche Elemente einer Matrix einem oder mehreren bestimmten Elementen entsprechen, durch die Verwendung von ismember.
    //Find which elements in  'X' match any elements from 'list'
    match = ismember(X, list);
    X = [ M m a r r i e d N A F s i n g l e e m p l o y e d F m a r r i e d e m p l o y e d M s i n g l e u n e m p l o y e d ] l i s t = [ F s i n g l e ] ismember [ 0 0 0 1 1 0 1 0 0 1 1 0 ]
  • Einfache Navigation durch Auf-/Zuklappen von multidimensionalen Feldern mit Hilfe der squeeze-Funktion.
    //Remove any singleton dimensions from 'A'
    A = squeeze(A);
    A m , 1 , n squeeze A m , n
  • Rückgabe des vollständigen Pfades zur Programmdatei ungeachtet des Ablageortes durch die Variable __FILE_DIR.
    //With your program and data in the same directory, __FILE_DIR
    //allows you to easily find your data regardless of your
    //working directory--greatly simplifies code sharing
    data_file = __FILE_DIR $+ "mydata.csv";
    
    //Prefer to keep your data in a different relative path?
    //No problem, __FILE_DIR works easily in this situation as well
    data_file = __FILE_DIR $+ "../data/mydata.csv";
  • Entfernen von bestimmten Spalten einer Matrix durch delcols.
    //Remove the 3rd and 5th columns from 'A'
    A = delcols(A, 3|5);
  • Ersetzen aller zutreffenden Teil-Zeichenketten in einer großen Zeichenkette oder einem Feld von Zeichenketten durch strreplace.
    //Regularize addresses: Avenue to Ave
    address = strreplace(address, "Avenue", "Ave");
    a d d r e s s = [ 100 Main Ave 112 Charles Avenue 49 W State St 24 Third Avenue ] strreplace [ 100 Main Ave 112 Charles Ave 49 W State St 24 Third Ave ]
  • Die Kompatibilität für Felder wurde auf die Funktionen erf, erfc, erfcinv, erfc, pdfn und den Potenzoperator erweitert.

Geschwindigkeitssteigerungen

  • Die verkettete Zusammenführung von Zeichenketten arbeitet jetzt 2 - 4 x schneller
  • X'Y für den Vektor zu Vektor Fall arbeitet 15 % - 600 % schneller für Vektoren mit Längen über 50 Elementen
  • Deutliche Steigerung der Geschwindigkeit für das Indizieren kleinerer Matrizen
  • Die beschreibende Statistik mit dstatmt und OLS mit ols arbeiten jetzt 15 - 30 % schneller für mittlere und große Matrizen.

Beispiel für nichtlineare Funktionen

Zur Verdeutlichung der möglichen Geschwindigkeitssteigerungen bei der Indizierung und dem Verketten wurden zwei nichtlineare Funktionen beispielhaft definiert. Der nachstehende Code wurde zur Erstellung der weiter unten gezeigten Vergleichsgrafik verwendet:

	
proc fct_a(x);
    local f1,f2,f3;

    f1 = 3*x[1]^3 + 2*x[2]^2 + 5*x[3] - 10;
    f2 = -x[1]^3 - 3*x[2]^2 + x[3] + 5;
    f3 = 3*x[1]^3 + 2*x[2]^2 -4*x[3];
    retp(f1|f2|f3);
endp;

proc  fct_b(x);
    local ff1, ff2, ff3, ff4, ff5, ff6, ff7, P;
    P = 20;
    ff1 = 0.5*x[1] + x[2] + 0.5*x[3] - x[6]/x[7];
    ff2 = x[3] + x[4] + 2*x[5] - 2/x[7];
    ff3 = x[1] + x[2] + x[5] - 1/x[7];
    ff4 = -28837*x[1] - 139009*x[2] - 78213*x[3]
            + 18927*x[4] + 8427*x[5] + 13492/x[7]
            - 10690*x[6]/x[7];
    ff5 = x[1] + x[2] + x[3] + x[4] + x[5] - 1;
    ff6 = (P^2)*x[1]*x[4]^3 - 1.7837e5*x[3]*x[5];
    ff7 = x[1]*x[3] - 2.6058*x[2]*x[4];
    retp(ff1|ff2|ff3|ff4|ff5|ff6|ff7);
endp;

Mathematische Funtionen

  • besselk berechnet die modifizierte Bessel-Funktion der 2. Art; nützlich für die negative, inverse Gaussian-Verteilung.
  • rndRayleigh berechnet Rayleigh-verteilte Zufallszahlen.
  • gmmFit und gmmFitIV schätzen mittels der allgemeinen Momentenmethode.
  • cdfTruncNorm, pdfTruncNorm, cdfLogNorm und pdfLogNorm
  • Optionale mu- und sigma-Parameter für cdfn und pdfn
  • Array-Unterstützung für erf, erfc, erfcinv, erfc, pdfn und power op.

© ADDITIVE GmbH. Alle Rechte, Irrtümer und Änderungen vorbehalten.

Impressum  /  Datenschutz  /  AGB