<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Releases &#8211; Aptech</title>
	<atom:link href="https://www.aptech.com/blog/category/releases/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.aptech.com</link>
	<description>GAUSS Software - Fastest Platform for Data Analytics</description>
	<lastBuildDate>Tue, 17 Mar 2026 21:06:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>GAUSS 26: Profiler, L-BFGS-B Optimizer, and 30+ New Features</title>
		<link>https://www.aptech.com/blog/gauss26/</link>
					<comments>https://www.aptech.com/blog/gauss26/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 04 Feb 2026 21:16:00 +0000</pubDate>
				<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11585667</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<p>GAUSS 26 introduces a built-in profiler, a new L-BFGS-B optimizer, modern language syntax, and over 30 new features and enhancements. All existing code continues to work unchanged.</p>
<p>Whether you're tracking down a performance bottleneck, estimating a model with bound constraints, or transforming data interactively, this release has something that will change how you work. Here's what's new.</p>
<hr />
<h2 id="find-your-slow-code-in-seconds">Find your slow code in seconds</h2>
<div id="profiler">
<p>GAUSS 26 includes a built-in profiler. Open any program, press <strong>Shift+F5</strong> (or use the run button in the Profiler), and GAUSS profiles every line and procedure call as it runs.</p>
<p>The profiler panel has three tabs:</p>
<ul>
<li><strong>Hot Spots</strong> — every line of code ranked by time spent, so you can see exactly where your program spends the most time</li>
<li><strong>Call Tree</strong> — a hierarchical view of which procedures call which, and how long each takes</li>
<li><strong>Output</strong> — the program's normal output, so you can verify results while profiling</li>
</ul>
<img src="https://www.aptech.com/wp-content/uploads/2026/02/gauss26-profiler-hot-spots.jpg" alt="GAUSS 26 profiler Hot Spots tab showing bootstrap_ols procedure with inv() on line 14 consuming 50.4% of execution time" width="2040" height="1058" class="alignnone size-full wp-image-11585745" />
<p>Double-click any entry to jump directly to that line in the editor.</p>
<p>If you've ever wanted to make your estimation faster, the profiler tells you exactly where to focus. No print statements, no guessing — you see the bottleneck immediately.</p>
<hr />
<h2 id="bound-constrained-optimization-with-l-bfgs-b">Bound-constrained optimization with L-BFGS-B</h2>
<p>The new <code>minimize</code> function brings the L-BFGS-B algorithm to GAUSS — the standard method for smooth unconstrained and bound-constrained optimization problems.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Define an objective function
proc (1) = rosenbrock(x);
    retp( (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2 );
endp;

// Set up bounds
x0 = { -1, -1 };

struct minimizeControl ctl;
ctl = minimizeControlCreate();
ctl.bounds = { -5 5, -5 5 };

// Optimize
struct minimizeOut out;
out = minimize(&amp;rosenbrock, x0, ctl);</code></pre>
<pre>Solution:       x = 1.0000, 1.0000
Function value: 5.69e-14
Return code:    0 (converged)</pre>
<p><code>minimize</code> supports passing extra data arguments directly to the objective function, so you don't need globals to get data into your likelihood. This is useful for MLE where parameters must stay positive (e.g., variance components) or bounded (e.g., correlations between -1 and 1).</p>
<p>L-BFGS-B is the standard choice for smooth bound-constrained problems. For nonlinear equality or inequality constraints, use <code>sqpSolveMT</code>. For unconstrained problems, <code>minimize</code> and <code>optmt</code> are both good options — <code>minimize</code> uses less memory for high-dimensional problems.</p>
<hr />
<h2 id="modern-language-syntax">Modern language syntax</h2>
<p>GAUSS 26 adds conveniences that reduce friction in everyday code — sequences, printing, and error messages all work the way you'd expect.</p>
<h3 id="colon-operator">Colon operator</h3>
<p>GAUSS now supports the colon operator for creating sequences:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Before
x = seqa(1, 1, 5);

// Now
x = 1:5;</code></pre>
<pre>1  2  3  4  5</pre>
<p>The stepped form creates sequences with custom increments:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">odds = 1:2:10;
countdown = 10:-2:1;
grid = 0:0.5:2;</code></pre>
<pre>odds:       1  3  5  7  9
countdown:  10  8  6  4  2
grid:       0  0.5  1  1.5  2</pre>
<p>Both forms work with variables and expressions (<code>a:b</code>, <code>(n-1):(n+1)</code>, <code>minc(x):maxc(x)</code>). Inside brackets, the colon continues to work as an index range — <code>x[1:5]</code> selects elements 1 through 5, as it always has.</p>
<h3 id="print-expressions">Print expressions</h3>
<p><code>print</code> now accepts expressions directly without requiring them to be surrounded with parentheses:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">x = 3;
y = 7;
print x + y;
print x .* y;</code></pre>
<pre>10
21</pre>
<p>All arithmetic, comparison, element-wise, and string operators are supported. The existing whitespace-sensitive behavior is preserved — <code>print a -b;</code> still prints two items, while <code>print a - b;</code> prints the difference.</p>
<h3 id="better-error-messages">Better error messages</h3>
<p>Error messages now tell you what went wrong and where to look.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">x = rndn(10);</code></pre>
<pre>Before:  &quot;Wrong number of arguments&quot;
Now:     &quot;'rndn' requires 2-3 arguments, got 1&quot;</pre>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">rndn = 100;</code></pre>
<pre>Before:  &quot;Syntax error&quot;
Now:     &quot;Illegal use of reserved word 'rndn'&quot;</pre>
<hr />
<h2 id="statistical-testing-functions">Statistical testing functions</h2>
<p>GAUSS 26 adds four statistical testing functions to the base package.</p>
<p><strong><code>ttest</code></strong> — Two-sample and paired t-tests with Welch and pooled variance options, confidence intervals, and F-test for equality of variances.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Compare treatment vs control means
result = ttest(treatment, control);</code></pre>
<p><strong><code>shapiroWilk</code></strong> — The standard test for univariate normality.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">result = shapiroWilk(residuals);
print result.w;
print result.p;</code></pre>
<pre>W statistic: 0.9788
p-value:     0.1070</pre>
<p><strong><code>mvnTest</code></strong> — Multivariate normality testing using Henze-Zirkler (default), Mardia's skewness and kurtosis, Doornik-Hansen, or Royston methods. Useful for checking VAR residuals or validating distributional assumptions before estimation.</p>
<p><strong><code>contingency</code></strong> — Comprehensive analysis of contingency tables: chi-squared tests, Fisher's exact test, odds ratios, relative risk, and measures of association including Cramer's V, Gamma, Kendall's tau-b, and Cohen's Kappa.</p>
<hr />
<h2 id="transform-data-without-writing-code">Transform data without writing code</h2>
<div id="transform">
<p>The new Transform Tab in the Symbol Editor lets you apply common data transformations interactively — lag, first difference, percent change, moving average, log, standardize, normalize, and more.</p>
<video autoplay loop muted playsinline style="width:100%;">
    <source src="https://www.aptech.com/wp-content/uploads/2026/01/xle-transform-tab.mp4" type="video/mp4">
</video>
<p>Select a column, choose a transformation, and the result appears as a new column. GAUSS generates the equivalent code automatically, so you can incorporate the transformation into your scripts later.</p>
<p>String columns support lowercase, uppercase, trim, and text replacement. Date columns support extracting year, month, day, quarter, week, and time components.</p>
<hr />
<h2 id="data-management">Data management</h2>
<p>New functions for the tasks that bookend every estimation: reshaping data, converting frequencies, and balancing panels.</p>
<h3 id="aggregate-time-series-to-any-frequency">Aggregate time series to any frequency</h3>
<p>The new <code>tsAggregate</code> function converts time series data from higher to lower frequencies:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">data = loadd("daily_prices.csv", "date(Date) + Price + Volume");

// Convert daily to monthly: last price, total volume
monthly = tsAggregate(data, "monthly", "last" $| "sum");</code></pre>
<p>Supports second, minute, hourly, daily, monthly, quarterly, and yearly frequencies. Aggregation methods include last, first, mean, sum, max, min, median, standard deviation, count, and mode.</p>
<h3 id="add-computed-columns-to-dataframes">Add computed columns to dataframes</h3>
<p>The new <code>dfaddcol</code> function adds a named column to a dataframe in one step:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">auto2 = dfaddcol(auto2, "price_k", auto2[., "price"] ./ 1000);
auto2 = dfaddcol(auto2, "log_mpg", ln(auto2[., "mpg"]));</code></pre>
<pre>           make     price       mpg   price_k   log_mpg
    AMC Concord      4099        22     4.099     3.091
      AMC Pacer      4749        17     4.749     2.833
     AMC Spirit      3799        22     3.799     3.091
  Buick Century      4816        20     4.816     2.996
  Buick Electra      7827        15     7.827     2.708</pre>
<p>The new columns are named and ready to use. If you're building derived variables for estimation, this keeps your workflow clean and your column names explicit.</p>
<h3 id="balance-panel-datasets">Balance panel datasets</h3>
<p><code>pdBalance</code> standardizes panel data so each group has identical time coverage:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">balanced = pdBalance(panel_data, "fill");</code></pre>
<p>This fills gaps with missing values so every group spans the full time range — a common preprocessing step before panel estimation. Pairs naturally with <code>pdLag</code> and <code>pdSummary</code> introduced in GAUSS 25.</p>
<h3 id="multicolumn-aggregation">Multicolumn aggregation</h3>
<p>The <code>aggregate</code> function now supports grouping by more than one variable:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">method = "max";
variables = "day" $| "time";
max_tips = aggregate(tips, method, variables);</code></pre>
<hr />
<h2 id="editor-and-ide">Editor and IDE</h2>
<h3 id="spot-global-variables-in-your-code">Spot global variables in your code</h3>
<p>Global variables in procedures prevent you from adding <code>threadFor</code> or other parallelization to your code and make maintenance difficult. GAUSS 26 lets you find them instantly — procedures that reference globals now show those variables with an orange highlight in the editor. Hover over any highlighted variable to see its name in a tooltip. Toggle it on or off via <em>Edit &gt; Preferences &gt; Highlight globals in procs</em>.</p>
<h3 id="streamlined-graphics-interface">Streamlined graphics interface</h3>
<p>The Graphics page now combines Graph Settings and Canvas Settings into a single tabbed interface with tabs for Axes, Lines, Symbols, Text, and Canvas. A new toolbar toggle provides quick access.</p>
<h3 id="filter-widgets-for-navigation">Filter widgets for navigation</h3>
<p>New filter widgets on the Command page and Data page let you search through command history and workspace symbols as you type. Press <strong>Ctrl+K</strong> (Cmd+K on Mac) to activate the filter in either view. The Open Symbol dialog on the Data page also includes autocomplete.</p>
<hr />
<h2 id="additional-enhancements">Additional enhancements</h2>
<ul>
<li><strong><code>repmat</code></strong> — tile a matrix: <code>repmat(A, 3, 2)</code> creates a matrix of 3x2 copies of A (MATLAB equivalent: <code>repmat</code>)</li>
<li><strong><code>findIdx</code></strong> — return indices where a condition is true: <code>findIdx(x .&gt; 0)</code> (R equivalent: <code>which()</code>)</li>
<li><strong><code>diagmat</code></strong> — create diagonal or off-diagonal matrices from vectors, with optional offset for super- or subdiagonals</li>
<li><strong><code>sortc</code> and <code>sortmc</code></strong> — new <code>sort_order</code> parameter for ascending (1) or descending (-1) sorting</li>
<li><strong><code>endswith</code></strong> — complements <code>startsWith</code> for string and dataframe filtering</li>
<li><strong><code>strrindx</code></strong> — now accepts vector input for search patterns</li>
<li><strong><code>quantileFit</code></strong> — new convergence diagnostics (<code>qOut.converged</code>, <code>qOut.iterations</code>) and improved input validation with clear error messages</li>
<li><strong><code>sqpSolveMT</code></strong> — improved robustness for challenging optimization problems with better adaptive trust region management</li>
<li><strong><code>eigv</code></strong> — 2.6x faster for 2x2 matrices using closed-form solution, with automatic fallback to the standard algorithm for near-repeated eigenvalues</li>
<li><strong>Symbol Editor</strong> — new &quot;Starts With&quot;, &quot;Does Not Start With&quot;, &quot;Ends With&quot;, &quot;Does Not End With&quot; filters; pending changes shown in blue text; column headers show asterisk for pending filters or transforms</li>
<li><strong>Package Manager</strong> — detailed error messages with categorized troubleshooting steps</li>
<li>New button on Edit and Debug pages opens matrices, strings, and dataframes directly in the Symbol Editor</li>
</ul>
<hr />
<h2 id="whats-coming-next">What's coming next</h2>
<p>Later this year, we'll be shipping new Bayesian VAR estimation with Minnesota priors, conditional forecasting, and hyperparameter optimization — directly from GAUSS, powered by new high-performance computation libraries. Stay tuned.</p>
<hr />
<h2 id="get-started-with-gauss-26">Get started with GAUSS 26</h2>
<p>GAUSS 26 is a free update for users with active maintenance. Download for <a href="http://www.aptech.com/downloads/26/GAUSS_26_Win_64.zip">Windows</a> or <a href="http://www.aptech.com/downloads/26/GAUSS_26_MacOSX_64.zip">macOS</a>, or <a href="https://www.aptech.com/contact/">contact us</a> for a trial license.</p>
<p>New to GAUSS? See our <a href="https://docs.aptech.com/">Getting Started Guide</a>. Coming from another language? See our <a href="https://docs.aptech.com/gauss/coming-to-gauss/">Coming to GAUSS</a> guides for R, MATLAB, Stata, and Python users.</p>
<p>    <!-- MathJax configuration -->
    <style>
        .mjx-svg-href {
            fill: "inherit" !important;
            stroke: "inherit" !important;
        }
    </style>
    <script type="text/x-mathjax-config">
        MathJax.Hub.Config({ TeX: { equationNumbers: {autoNumber: "AMS"} } });
    </script>
    <script type="text/javascript">
window.MathJax = {
  tex2jax: {
    inlineMath: [ ['$','$'] ],
    displayMath: [ ['$$','$$'] ],
    processEscapes: true,
    processEnvironments: true
  },
  // Center justify equations in code and markdown cells. Elsewhere
  // we use CSS to left justify single line equations in code cells.
  displayAlign: 'center',
  "HTML-CSS": {
    styles: {'.MathJax_Display': {"margin": 0}},
    linebreaks: { automatic: false }
  },
  "SVG": {
    styles: {'.MathJax_SVG_Display': {"margin": 0}},
    linebreaks: { automatic: false }
  },
  showProcessingMessages: false,
  messageStyle: "none",
  menuSettings: { zoom: "Click" },
  AuthorInit: function() {
    MathJax.Hub.Register.StartupHook("End", function() {
            var timeout = false, // holder for timeout id
            delay = 250; // delay after event is "complete" to run callback
            var shrinkMath = function() {
              //var dispFormulas = document.getElementsByClassName("formula");
              var dispFormulas = document.getElementsByClassName("MathJax_SVG_Display");
              if (dispFormulas){
                // caculate relative size of indentation
                var contentTest = document.getElementsByTagName("body")[0];
                var nodesWidth = contentTest.offsetWidth;
                // if you have indentation
                var mathIndent = MathJax.Hub.config.displayIndent; //assuming px's
                var mathIndentValue = mathIndent.substring(0,mathIndent.length - 2);
                for (var i=0; i<dispFormulas.length; i++){
                  var dispFormula = dispFormulas[i];
                  var wrapper = dispFormula;
                  //var wrapper = dispFormula.getElementsByClassName("MathJax_Preview")[0].nextSibling;
                  var child = wrapper.firstChild;
                  wrapper.style.transformOrigin = "center"; //or top-left if you left-align your equations
                  var oldScale = child.style.transform;
                  //var newValue = Math.min(0.80*dispFormula.offsetWidth / child.offsetWidth,1.0).toFixed(2);
                  var newValue = Math.min(dispFormula.offsetWidth / child.offsetWidth,1.0).toFixed(2);
                  var newScale = "scale(" + newValue + ")";
                  if(newValue != "NaN" && !(newScale === oldScale)){
                    wrapper.style.transform = newScale;
                    wrapper.style["margin-left"]= Math.pow(newValue,4)*mathIndentValue + "px";
                    var wrapperStyle = window.getComputedStyle(wrapper);
                    var wrapperHeight = parseFloat(wrapperStyle.height);
                    wrapper.style.height = "" + (wrapperHeight * newValue) + "px";
                    if(newValue === "1.00"){
                      wrapper.style.cursor = "";
                      wrapper.style.height = "";
                    }
                    else {
                      wrapper.style.cursor = "zoom-in";
                    }
                  }

                }
            }
            };
            shrinkMath();
            window.addEventListener('resize', function() {
              clearTimeout(timeout);
              timeout = setTimeout(shrinkMath, delay);
            });
          });
  }
}
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS_SVG"></script></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/gauss26/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://www.aptech.com/wp-content/uploads/2026/01/xle-transform-tab.mp4" length="0" type="video/mp4" />

			</item>
		<item>
		<title>Time Series MT 4.0</title>
		<link>https://www.aptech.com/blog/time-series-mt-4-0/</link>
					<comments>https://www.aptech.com/blog/time-series-mt-4-0/#respond</comments>
		
		<dc:creator><![CDATA[Eric]]></dc:creator>
		<pubDate>Wed, 30 Apr 2025 17:18:07 +0000</pubDate>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[Time Series]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11584760</guid>

					<description><![CDATA[With over 40 new features, enhancements, and bug fixes, <a href="https://docs.aptech.com/gauss/tsmt/index.html" target="_blank" rel="noopener">Time Series MT (TSMT) 4.0</a> is s one of our most significant updates yet.

Highlights of the new release include:
<ul>
<li>Structural VAR (SVAR) Tools.</li>
<li>Enhanced SARIMA Modeling.</li>
<li>Extended Model Diagnostics and Reporting.</li>
<li>Seamless <a href="https://www.aptech.com/blog/what-is-a-gauss-dataframe-and-why-should-you-care/" target="_blank" rel="noopener">Dataframe</a> Integration.</li>
</ul>]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.aptech.com/wp-content/uploads/2021/04/irf-var-blog-small.jpeg"><img src="https://www.aptech.com/wp-content/uploads/2021/04/irf-var-blog-small.jpeg" alt="Impulse response functions after VAR estimation." width="1200" height="393" class="aligncenter size-full wp-image-11581203" /></a></p>
<h2 id="introduction">Introduction</h2>
<p>With over 40 new features, enhancements, and bug fixes, <a href="https://docs.aptech.com/gauss/tsmt/index.html" target="_blank" rel="noopener">Time Series MT (TSMT) 4.0</a> is s one of our most significant updates yet.</p>
<p>Highlights of the new release include:</p>
<ul>
<li>Structural VAR (SVAR) Tools.</li>
<li>Enhanced SARIMA Modeling.</li>
<li>Extended Model Diagnostics and Reporting.</li>
<li>Seamless <a href="https://www.aptech.com/blog/what-is-a-gauss-dataframe-and-why-should-you-care/" target="_blank" rel="noopener">Dataframe</a> Integration.</li>
</ul>
<h2 id="new-svar-tools">New SVAR Tools</h2>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Declare control structure
// and fill with defaults
struct svarControl ctl;
ctl = svarControlCreate();

ctl.irf.ident = "long";

// Set maximum number of lags
maxlags = 8;

//  Turn constant on
const = 1;

// Check structural VAR model
call svarFit(Y, maxlags, const, ctl);</code></pre>
<p>TSMT 4.0 includes a new comprehensive suite of no-hassle functions for intuitively estimating SVAR models. </p>
<ul>
<li>Effortlessly estimate reduced-form parameters, impulse response functions (IRFs), and forecast error variance decompositions (FEVDs) using <a href="https://docs.aptech.com/gauss/tsmt/svarfit.html" target="_blank" rel="noopener">svarFit</a>.</li>
<li>Take advantage of built-in identification strategies, including Cholesky decomposition, sign restrictions, and long-run restrictions.</li>
<li>Use new functions for cleanly plotting IRFs and FEVDs. </li>
</ul>
<h2 id="enhanced-sarima-modeling">Enhanced SARIMA Modeling</h2>
<p>Significant upgrades to the <a href="https://docs.aptech.com/gauss/tsmt/arimass.html" target="_blank" rel="noopener">SARIMA state space framework</a> deliver improved numerical stability, more accurate covariance estimation, and rigorous enforcement of stationarity and invertibility conditions.</p>
<p><a href="https://www.aptech.com/wp-content/uploads/2025/04/arima-forecast.jpg"><img src="https://www.aptech.com/wp-content/uploads/2025/04/arima-forecast.jpg" alt="" width="800" height="306" class="aligncenter size-full wp-image-11585292" /></a></p>
<p>Key enhancements include:</p>
<ul>
<li><b>Simplified Estimations:</b> Optional arguments with smart defaults streamline model setup and estimation.</li>
<li><b>Broader Model Support:</b> Support now includes white noise and random walk models with optional constants and drift terms.</li>
<li><b>Enhanced Accuracy:</b> Standard errors are now computed using the delta method, explicitly accounting for constraints that enforce stationarity and invertibility.</li>
</ul>
<div style="text-align:center;background-color:#f0f2f4"><hr><a href="https://www.aptech.com/request-demo/" target="_blank" rel="noopener"> Time Series MT 4.0, now available!<hr></a></div>
<h2 id="extended-model-diagnostics-and-reporting">Extended Model Diagnostics and Reporting</h2>
<pre>================================================================================
Model:                 ARIMA(1,1,1)          Dependent variable:             wpi
Time Span:              1960-01-01:          Valid cases:                    123
                        1990-10-01<br />
SSE:                         64.512          Degrees of freedom:             121
Log Likelihood:             369.791          RMSE:                         0.724
AIC:                        369.791          SEE:                          0.730
SBC:                       -729.958          Durbin-Watson:                1.876
R-squared:                    0.449          Rbar-squared:                 0.440
================================================================================
Coefficient                Estimate      Std. Err.        T-Ratio     Prob |&gt;| t
================================================================================

AR[1,1]                       0.883          0.063         13.965          0.000
MA[1,1]                       0.420          0.121          3.472          0.001
Constant                      0.081          0.730          0.111          0.911
================================================================================</pre>
<p>Completely redesigned output reports and extended diagnostics make model evaluation and comparison easier and more insightful than ever. </p>
<p>New enhancements include:</p>
<ul>
<li><b>Expanded diagnostics</b> for quick assessment of model fit and underlying assumptions.</li>
<li><b>Clear, intuitive reports</b> that make it easy to compare multiple models side-by-side.</li>
<li><b>Improved readability</b>, to help identify key results and insights.</li>
</ul>
<h2 id="full-dataframe-integration">Full Dataframe Integration</h2>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Lag of independent variables
lag_vars = 2;

// Autoregressive order
order = 3;

// Call autoregmt function
call autoregFit(__FILE_DIR $+ "autoregmt.gdat", "Y ~ X1 + X2", lag_vars, order);</code></pre>
<p>Complete compatibility with GAUSS dataframes, simplifies the modeling workflow and ensures outputs are intuitive and easy to interpret.</p>
<ul>
<li><b>Automatic Variable Name Recognition:</b> Automatically detects and uses variable names, eliminating manual setup and saving time.</li>
<li><b>Effortless Date Management:</b> Intelligent handling of date formats and time spans for clearer output reports.</li>
<li><b>Clear, Interpretable Outputs:</b> Results are clearly labeled and easy to follow, helping boost productivity and reduce confusion.</li>
</ul>
<div style="text-align:center;background-color:#455560;color:#FFFFFF">
<hr>
<div class="lp-cta">
    <a href="https://www.aptech.com/request-demo/" class="btn btn-primary">Order TSMT Today!</a>
</div><hr>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/time-series-mt-4-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GAUSS 25.0.1 Maintenance Release Now Available</title>
		<link>https://www.aptech.com/blog/gauss-25-0-1-maintenance-release-now-available/</link>
					<comments>https://www.aptech.com/blog/gauss-25-0-1-maintenance-release-now-available/#respond</comments>
		
		<dc:creator><![CDATA[Eric]]></dc:creator>
		<pubDate>Mon, 21 Apr 2025 14:07:00 +0000</pubDate>
				<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11585242</guid>

					<description><![CDATA[The latest GAUSS 25.0.1 update is available now and is free if you own <a href="https://www.aptech.com/blog/gauss25/" target="_blank" rel="noopener">GAUSS 25</a>! 

This maintenance release enhances graphics and panel data functions, expands functionality, and fixes reported bugs. 
]]></description>
										<content:encoded><![CDATA[<h3 id="introduction">Introduction</h3>
<p>The latest GAUSS 25.0.1 update is available now and is free if you own <a href="https://www.aptech.com/blog/gauss25/" target="_blank" rel="noopener">GAUSS 25</a>! </p>
<p>This maintenance release enhances graphics and panel data functions, expands functionality, and fixes reported bugs. </p>
<hr>
<div style="text-align:center">Don't own GAUSS 25? Contact us today to <a href="https://www.aptech.com/request-demo/" target="_blank" rel="noopener">start your free trial!</a></div>
<hr>
<h2 id="updated-bar-plots">Updated Bar Plots</h2>
<p><a href="https://www.aptech.com/wp-content/uploads/2025/04/g25-update-announcement-1.jpg"><img src="https://www.aptech.com/wp-content/uploads/2025/04/g25-update-announcement-1.jpg" alt="" width="550" height="503" class="aligncenter size-full wp-image-11585246" /></a></p>
<p>The <a href="https://docs.aptech.com/gauss/plotbar.html" target="_blank" rel="noopener">plotbar</a> procedure now:</p>
<ul>
<li>Supports <a href="https://www.aptech.com/resources/tutorials/formula-string-syntax/" target="_blank" rel="noopener">formula strings</a> and automatically handles <a href="https://www.aptech.com/blog/what-is-a-gauss-dataframe-and-why-should-you-care/" target="_blank" rel="noopener">dataframes</a> to generate the appropriate axis and legend labels.</li>
<li>Allows <a href="https://www.aptech.com/blog/dates-and-times-made-easy/" target="_blank" rel="noopener">date variables</a> as x-axis labels.</li>
</ul>
<h2 id="other-enhancements-and-expanded-functionality">Other Enhancements And Expanded Functionality</h2>
<p><a href="https://www.aptech.com/wp-content/uploads/2025/04/legend_comparison_1500w.jpg"><img src="https://www.aptech.com/wp-content/uploads/2025/04/legend_comparison_1500w.jpg" alt="" width="750" height="203" class="aligncenter size-full wp-image-11585252" /></a></p>
<ul>
<li>New option to control line style for plot legends using the optional <em>style</em> input with <a href="https://docs.aptech.com/gauss/plotsetlegendborder.html" target="_blank" rel="noopener">plotSetLegendBorder</a>.</li>
<li>Easily turn legend border off with single keyword using <a href="https://docs.aptech.com/gauss/plotsetlegendborder.html" target="_blank" rel="noopener">plotSetLegendBorder</a>.</li>
<li>Non-numeric types are now excluded from <a href="https://docs.aptech.com/gauss/pdsummary.html" target="_blank" rel="noopener">pdSummary</a> computations and reports, with a printed note indicating their removal. </li>
</ul>
<p>See a complete list of updates in our <a href="https://docs.aptech.com/gauss/changelog.html" target="_blank" rel="noopener">full change log</a>.</p>
<div style="text-align:center;background-color:#455560;color:#FFFFFF">
<hr>
<h3 id="get-more-done-with-gauss-25-today">Get more done with GAUSS 25 today!</h3>
 
<div class="lp-cta">
    <a href="https://www.aptech.com/book-an-expert" class="btn btn-primary">Talk with an expert</a>
    <a href="https://www.aptech.com/request-quote/" class="btn btn-primary btn-quote">Request pricing</a>
</div><hr>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/gauss-25-0-1-maintenance-release-now-available/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Exploring and Cleaning Panel Data with GAUSS 25</title>
		<link>https://www.aptech.com/blog/exploring-and-cleaning-panel-data-with-gauss-25/</link>
					<comments>https://www.aptech.com/blog/exploring-and-cleaning-panel-data-with-gauss-25/#respond</comments>
		
		<dc:creator><![CDATA[Eric]]></dc:creator>
		<pubDate>Tue, 28 Jan 2025 17:38:02 +0000</pubDate>
				<category><![CDATA[Panel data]]></category>
		<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11584930</guid>

					<description><![CDATA[Panel data offers a unique opportunity to examine both individual-specific and time-specific effects. However, as anyone who has worked with panel data knows, these same features that make panel data so useful can also make exploration and cleaning particularly challenging. 

GAUSS 25 was designed with these challenges in mind. It introduces a comprehensive new suite of panel data tools, tailored to make working with panel data in GAUSS easier, faster, and more intuitive. 

In today's blog, we’ll look at these new tools and demonstrate how they can simplify everyday panel data tasks, including:
<ul>
<li>Loading your data.</li>
<li>Preparing your panel dataset. </li>
<li>Exploring panel data characteristics. </li>
<li>Visualizing <a href="https://www.aptech.com/blog/introduction-to-the-fundamentals-of-panel-data/" target="_blank" rel="noopener">panel data</a>. </li>
<li> Transforming your data for modeling. </li>
]]></description>
										<content:encoded><![CDATA[<p>    <!-- MathJax configuration -->
    <style>
        .mjx-svg-href {
            fill: "inherit" !important;
            stroke: "inherit" !important;
        }
    </style>
    <script type="text/x-mathjax-config">
        MathJax.Hub.Config({ TeX: { equationNumbers: {autoNumber: "AMS"} } });
    </script>
    <script type="text/javascript">
window.MathJax = {
  tex2jax: {
    inlineMath: [ ['$','$'] ],
    displayMath: [ ['$$','$$'] ],
    processEscapes: true,
    processEnvironments: true
  },
  // Center justify equations in code and markdown cells. Elsewhere
  // we use CSS to left justify single line equations in code cells.
  displayAlign: 'center',
  "HTML-CSS": {
    styles: {'.MathJax_Display': {"margin": 0}},
    linebreaks: { automatic: false }
  },
  "SVG": {
    styles: {'.MathJax_SVG_Display': {"margin": 0}},
    linebreaks: { automatic: false }
  },
  showProcessingMessages: false,
  messageStyle: "none",
  menuSettings: { zoom: "Click" },
  AuthorInit: function() {
    MathJax.Hub.Register.StartupHook("End", function() {
            var timeout = false, // holder for timeout id
            delay = 250; // delay after event is "complete" to run callback
            var shrinkMath = function() {
              //var dispFormulas = document.getElementsByClassName("formula");
              var dispFormulas = document.getElementsByClassName("MathJax_SVG_Display");
              if (dispFormulas){
                // caculate relative size of indentation
                var contentTest = document.getElementsByTagName("body")[0];
                var nodesWidth = contentTest.offsetWidth;
                // if you have indentation
                var mathIndent = MathJax.Hub.config.displayIndent; //assuming px's
                var mathIndentValue = mathIndent.substring(0,mathIndent.length - 2);
                for (var i=0; i<dispFormulas.length; i++){
                  var dispFormula = dispFormulas[i];
                  var wrapper = dispFormula;
                  //var wrapper = dispFormula.getElementsByClassName("MathJax_Preview")[0].nextSibling;
                  var child = wrapper.firstChild;
                  wrapper.style.transformOrigin = "center"; //or top-left if you left-align your equations
                  var oldScale = child.style.transform;
                  //var newValue = Math.min(0.80*dispFormula.offsetWidth / child.offsetWidth,1.0).toFixed(2);
                  var newValue = Math.min(dispFormula.offsetWidth / child.offsetWidth,1.0).toFixed(2);
                  var newScale = "scale(" + newValue + ")";
                  if(newValue != "NaN" && !(newScale === oldScale)){
                    wrapper.style.transform = newScale;
                    wrapper.style["margin-left"]= Math.pow(newValue,4)*mathIndentValue + "px";
                    var wrapperStyle = window.getComputedStyle(wrapper);
                    var wrapperHeight = parseFloat(wrapperStyle.height);
                    wrapper.style.height = "" + (wrapperHeight * newValue) + "px";
                    if(newValue === "1.00"){
                      wrapper.style.cursor = "";
                      wrapper.style.height = "";
                    }
                    else {
                      wrapper.style.cursor = "zoom-in";
                    }
                  }

                }
            }
            };
            shrinkMath();
            window.addEventListener('resize', function() {
              clearTimeout(timeout);
              timeout = setTimeout(shrinkMath, delay);
            });
          });
  }
}
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS_SVG"></script></p>
<h3 id="introduction">Introduction</h3>
<p>Panel data offers a unique opportunity to examine both individual-specific and time-specific effects. However, as anyone who has worked with panel data knows, these same features that make panel data so useful can also make exploration and cleaning particularly challenging. </p>
<p><a href="https://www.aptech.com/blog/more-research-less-effort-with-gauss-25/" target="_blank" rel="noopener">GAUSS 25</a> was designed with these challenges in mind. It introduces a comprehensive new suite of tools, tailored to make working with panel data in GAUSS easier, faster, and more intuitive. </p>
<p>In today's blog, we’ll demonstrate how these tools can simplify everyday panel data tasks, including:</p>
<ul>
<li>Loading your data.</li>
<li>Preparing your panel dataset. </li>
<li>Exploring panel data characteristics. </li>
<li>Visualizing <a href="https://www.aptech.com/blog/introduction-to-the-fundamentals-of-panel-data/" target="_blank" rel="noopener">panel data</a>. </li>
<li>Transforming your data for modeling. </li>
</ul>
<h2 id="data">Data</h2>
<p>Today we will work use a subset of the publicly available Penn World Table version 10.01, available for download <a href="https://github.com/aptech/gauss_blog/raw/refs/heads/master/econometrics/exploring-and-cleaning-panel-data-g25-1.23.24/pwt_10.gdat" target="_blank" rel="noopener">here</a>. </p>
<table>
  <thead>
    <tr>
      <th colspan="2">
        <h3 id="penn-world-table-variables"><br>Penn World Table Variables</h3>
      </th>
    </tr>
    <tr>
      <th>Variable Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>currency_unit</td>
      <td>The currency unit used for GDP measurements.</td>
    </tr>
    <tr>
      <td>countrycode</td>
      <td>The three-letter ISO country code.</td>
    </tr>
    <tr>
      <td>country</td>
      <td>The name of the country.</td>
    </tr>
    <tr>
      <td>year</td>
      <td>The year of observation.</td>
    </tr>
    <tr>
      <td>rgdpe</td>
      <td>Real GDP at constant prices (expenditure-side).</td>
    </tr>
    <tr>
      <td>rgdpo</td>
      <td>Real GDP at constant prices (output-side).</td>
    </tr>
    <tr>
      <td>pop</td>
      <td>Population of the country.</td>
    </tr>
    <tr>
      <td>emp</td>
      <td>Number of employed persons.</td>
    </tr>
    <tr>
      <td>irr</td>
      <td>Investment rate of return.</td>
    </tr>
  </tbody>
</table>
<div class="alert alert-info" role="alert">Data Citation:<br>Feenstra, Robert C., Robert Inklaar and Marcel P. Timmer (2015), &quot;The Next Generation of the Penn World Table&quot; American Economic Review, 105(10), 3150-3182, available for download at www.ggdc.net.</div>
<h2 id="loading-our-panel-data">Loading Our Panel Data</h2>
<p>We'll start by using the <a href="https://docs.aptech.com/next/gauss/loadd.html" target="_blank" rel="noopener">loadd</a> procedure to load our data. </p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Load data from 'pwt_10.gdat
// Using __FILE_DIR to specify data path
pwt_10 = loadd(__FILE_DIR $+ "pwt_10.gdat");

// Preview data 
head(pwt_10);</code></pre>
<div class="alert alert-info" role="alert">For more information on using __FILE_DIR please see our earlier blog, <a href="https://www.aptech.com/blog/make-your-code-portable-data-paths/" target="_blank" rel="noopener">Make Your Code Portable: Data Paths</a></div>
<p>The <a href="https://docs.aptech.com/gauss/head.html" target="_blank" rel="noopener">head</a> procedure prints the first five observations of the our dataset, helping us check that our data has loaded properly:</p>
<pre>   currency_unit      countrycode          country             year            rgdpe            rgdpo              pop              emp              irr
  Aruban Guilder              ABW            Aruba       1991-01-01        2804.5005        3177.4575      0.064622000      0.029200001       0.11486563
  Aruban Guilder              ABW            Aruba       1992-01-01        2944.5161        3370.5376      0.068235000      0.030903272       0.11182721
  Aruban Guilder              ABW            Aruba       1993-01-01        3131.3708        3698.5325      0.072504000      0.032911807       0.11131135
  Aruban Guilder              ABW            Aruba       1994-01-01        3537.9534        4172.8242      0.076700000      0.034895979       0.10574290
  Aruban Guilder              ABW            Aruba       1995-01-01        3412.8745        4184.1562      0.080324000      0.036628015       0.10471709 </pre>
<p>It's important to note that to identify our panel, GAUSS requires a <a href="https://www.aptech.com/blog/what-is-a-gauss-dataframe-and-why-should-you-care/" target="_blank" rel="noopener">dataframe</a> to have at least one <a href="https://www.aptech.com/blog/dates-and-times-made-easy/" target="_blank" rel="noopener">date variable</a>
and one <a href="https://www.aptech.com/blog/easy-management-of-categorical-variables/" target="_blank" rel="noopener">categorical</a> or <a href="https://www.aptech.com/blog/managing-string-data-with-gauss-dataframes/" target="_blank" rel="noopener">string</a> variable. </p>
<p>We will look more closely at how GAUSS identifies panels in the next section. For now, let's check that our data meets this requirement using the <a href="https://docs.aptech.com/gauss/getcoltypes.html" target="_blank" rel="noopener">getcoltypes</a> procedure.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Check column types
getcoltypes(pwt_10);</code></pre>
<pre>            type
        category
        category
        category
            date
          number
          number
          number
          number
          number</pre>
<p>Our data meets the GAUSS requirement for panel data, with three categorical variables and one date variable. </p>
<div style="text-align:center;background-color:#f0f2f4"><hr>Ready to get started using GAUSS for panel data? <a href="https://www.aptech.com/request-demo/">Contact us for a GAUSS 25 demo!<hr></a></div>
<h2 id="preparing-panel-data">Preparing Panel Data</h2>
<p>Besides the data type requirements, the GAUSS panel data procedures assume a few important things about the form of your panel data. </p>
<p>In particular, your panel data should:</p>
<ul>
<li>Be in stacked long form.</li>
<li>Have the date and group identification columns occurring before other date and categorical/string variables. (This is not required but it is the most convenient way to work the GAUSS panel data procedures.)</li>
<li>Be sorted by group then time.</li>
</ul>
<p>Let’s look more closely at how to use GAUSS to ensure that our data meets these requirements.</p>
<h3 id="transforming-panel-data-to-long-form">Transforming panel data to long form</h3>
<p>If your panel data is in wide form, it's easy to convert to long form using the <a href="https://docs.aptech.com/gauss/dflonger.html" target="_blank" rel="noopener">dflonger</a> procedure. This procedure is a very versatile procedure -- it's designed to be intuitive enough to cover basic transformation with little effort but flexible enough to tackle complex cases. </p>
<p>Since, the <code>pwt_10</code> data is already in long form, so we don't need to transform our data. However, for an in-depth look at <code>dflonger</code>, including examples, see our previous blog, <a href="https://www.aptech.com/blog/transforming-panel-data-to-long-form-in-gauss/" target="_blank" rel="noopener">Transforming Panel Data to Long Form in GAUSS</a>.</p>
<h3 id="ordering-variables">Ordering variables</h3>
<p>One of the most convenient features of the new panel data procedures is their ability to intelligently detect group and time variables. To ensure this works properly, simply make sure that the date variable and group variable identifying your panel are the first occurring date and categorical/string variables in your dataset.</p>
<p>Let's take a look at our <code>pwt_10</code> dataframe:
<a href="https://www.aptech.com/wp-content/uploads/2025/01/Screenshot-2025-01-23-123605.png"><img src="https://www.aptech.com/wp-content/uploads/2025/01/Screenshot-2025-01-23-123605.png" alt="" width="850" height="482" class="aligncenter size-full wp-image-11584963" /></a></p>
<div class="alert alert-info" role="alert">The <code>Ctrl+E</code> hot key opens the variable under cursor in a floating symbol editor window, allowing you to quickly view workplace symbols.</div>
<p><b> Identifying panel data groups</b><br />
Our dataset contains three categorical variables: <em>currency_unit</em>, <em>countrycode</em>, and <em>country</em>. By default, GAUSS will use the first occurring categorical variable, <em>currency_unit</em>, to identify the groups in the panel, unless we specify otherwise.</p>
<p><b> Identifying time dimension</b><br />
Our dataset also includes a date variable, <em>year</em>, which GAUSS will automatically use to identify the time dimension of the panel.</p>
<p>As the dataframe is now, GAUSS will use <em>currency_unit</em> and <em>year</em> to identify our panel. In this dataset, however, the panel should be identified by <em>country</em> and <em>year</em>. To address this, we could use <a href="https://www.aptech.com/blog/the-basics-of-optional-arguments-in-gauss-procedures/" target="_blank" rel="noopener">optional arguments</a> to specify that our group variable is <em>country</em>. However, we would need to do this every time we use one of the panel data procedures. </p>
<p>Instead, we can use the <a href="https://docs.aptech.com/gauss/order.html" target="_blank" rel="noopener">order</a> procedure to move the <em>country</em> and <em>year</em> variables to the front of our dataframe.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Move country 
pwt_10 = order(pwt_10, "country"$|"year");</code></pre>
<p><a href="https://www.aptech.com/wp-content/uploads/2025/01/Screenshot-2025-01-23-133652.png"><img src="https://www.aptech.com/wp-content/uploads/2025/01/Screenshot-2025-01-23-133652.png" alt="" width="1585" height="864" class="aligncenter size-full wp-image-11584964" /></a></p>
<p>Now, in our reordered <code>pwt_10</code> dataframe, we see that <em>country</em> and <em>year</em> appear as the first two columns. GAUSS will automatically use these to identify the group and time dimensions, respectively.</p>
<p>A few things to note:</p>
<ul>
<li>It is not necessary to move the <em>year</em> variable. Since it is only date variable in the dataframe, GAUSS will use <em>year</em> to identify our time dimension regardless of its position. </li>
<li>The <em>country</em> variable does not need to be the first column in the dataframe. It only needs to appear before the other categorical variables for GAUSS to automatically recognize it as the group dimension.</li>
</ul>
<h3 id="sorting-panel-data">Sorting panel data</h3>
<p>Beyond the fact that the GAUSS panel data functions expect sorted data, there are many advantages to working with sorted data:</p>
<ul>
<li>Sorted data is easier to browse and explore. </li>
<li>Econometric techniques, such as calculating lags and differences, rely on the data being ordered consistently. </li>
<li>Proper sorting helps avoid errors, ensures reproducibility, and lays a solid foundation for reliable results.</li>
</ul>
<p>The new <a href="https://docs.aptech.com/gauss/pdsort.html" target="_blank" rel="noopener">pdsort</a> procedure allows you to quickly sort panel data by the group then date dimension.  </p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Sort data using
// automatic group and date variables 
pwt_10 = pdSort(pwt_10);</code></pre>
<h2 id="assessing-panel-data-structure">Assessing Panel Data Structure</h2>
<p>When working with panel data, understanding your data's structure is important. It can play a role in the methods and assumptions applied in your models. For example, many techniques are only valid for balanced data and will produce unreliable results if your panel is unbalanced. </p>
<p>Some important considerations include:</p>
<ul>
<li>Whether the data is balanced.</li>
<li>The presence of gaps or missing data.</li>
<li>The ratio of groups to the number of time observations for each group.</li>
</ul>
<p>By examining our panel’s structure upfront, we can:</p>
<ul>
<li>Identify potential challenges.</li>
<li>Select the most appropriate analytical techniques.</li>
<li>Prevent errors that might result in biased or misleading conclusions.</li>
</ul>
<p>GAUSS includes a suite of panel data tools, introduced in GAUSS 25, that are designed for exploring the structure of panel data.</p>
<table>
  <thead>
    <tr>
      <th colspan="3">
        <h3 id="gauss-functions-for-panel-data-structure"><br>GAUSS Functions for Panel Data Structure</h3>
      </th>
    </tr>
    <tr>
      <th>Function Name</th>
      <th>Description</th>
      <th>Example</th>
    </tr>
  </thead>
  <tbody>
     <tr>
      <td><a href="https://docs.aptech.com/gauss/pdisbalanced.html" target="_blank" rel="noopener">pdIsBalanced</a></td>
      <td>Determines whether each group in a panel dataset covers the maximum time span.</td>
      <td><code>groupisBalanced = pdIsBalanced(pwt_10)</code></td>
    </tr>
     <tr>
      <td><a href="https://docs.aptech.com/gauss/pdallbalanced.html" target="_blank" rel="noopener">pdAllBalanced</a></td>
      <td>Checks if a panel dataset is strongly balanced and returns 1 if balanced, 0 otherwise.</td>
      <td><code>isBalanced = pdAllBalanced(pwt_10)</code></td>
    </tr>
    <tr>
      <td><a href="https://docs.aptech.com/gauss/pdisconsecutive.html" target="_blank" rel="noopener">pdIsConsecutive</a></td>
      <td>Checks if each group in a panel dataset covers consecutive time periods without gaps.</td>
      <td><code>groupisConsecutive = pdIsConsecutive(pwt_10)</code></td>
    </tr>
    <tr>
      <td><a href="https://docs.aptech.com/gauss/pdallconsecutive.html" target="_blank" rel="noopener">pdAllConsecutive</a></td>
      <td>Verifies whether all groups in a panel dataset have consecutive time periods without gaps.</td>
      <td><code>isConsecutive = pdAllConsecutive(pwt_10)</code></td>
    </tr>
    <tr>
      <td><a href="https://docs.aptech.com/gauss/pdsize.html" target="_blank" rel="noopener">pdSize</a></td>
      <td>Provides size description of a panel dataset including the number of groups, number of time observations for each group.</td>
      <td><code>{ num_grps, T, balanced } = pdSize(pwt_10)</code></td>
    </tr>
    <tr>
      <td><a href="https://docs.aptech.com/gauss/pdtimespans.html" target="_blank" rel="noopener">pdTimeSpans</a></td>
      <td>Returns the time span (start and end dates) by group of variables in panel data.</td>
      <td><code>df_tspans = pdTimeSpans(pwt_10)</code></td>
    </tr>
  </tbody>
</table>
<h3 id="exploring-the-structure-of-the-penn-world-table">Exploring the structure of the Penn World Table</h3>
<p>Now let's take a look at the structure of our Penn World Table data. First, we'll quickly check if our panel is balanced strongly balanced and consecutive.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">print "Panel is balanced:";
pdAllBalanced(pwt_10);

// Check for consecutiveness
print "Panel is consecutive:";
pdAllConsecutive(pwt_10);</code></pre>
<pre>Panel is balanced:
       0.0000000
Panel is consecutive:
       1.0000000 </pre>
<p>This tells us that our panel is not strongly balanced but it is consecutive. </p>
<p>Now that we know our panel is unbalanced, we should take a closer look our data structure using <code>pdSize</code>. </p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Get summary of panel dimensions
{ num_grps, T, balanced } = pdSize(pwt_10);</code></pre>
<div style="max-height: 600px; overflow-y: scroll; border: 1px solid #ddd; padding: 10px;">
<pre>
================================================================================
Group ID:                   country          Balanced:                        No
Valid cases:                   7540          Missings:                         0
N. Groups:                      137          T. Average:                  55.036
================================================================================
country                                       T[i]     Start Date       End Date
--------------------------------------------------------------------------------

Angola                                          50     1970-01-01     2019-01-01 
Argentina                                       70     1950-01-01     2019-01-01 
Armenia                                         30     1990-01-01     2019-01-01 
Aruba                                           29     1991-01-01     2019-01-01 
Australia                                       70     1950-01-01     2019-01-01 
Austria                                         70     1950-01-01     2019-01-01 
Azerbaijan                                      30     1990-01-01     2019-01-01 
Bahamas                                         47     1973-01-01     2019-01-01 
Bahrain                                         50     1970-01-01     2019-01-01 
Barbados                                        60     1960-01-01     2019-01-01 
Belarus                                         30     1990-01-01     2019-01-01 
Belgium                                         70     1950-01-01     2019-01-01 
Benin                                           40     1980-01-01     2019-01-01 
Bermuda                                         34     1986-01-01     2019-01-01 
Bolivia (Plurinational State of)                70     1950-01-01     2019-01-01 
Bosnia and Herzegovina                          30     1990-01-01     2019-01-01 
Botswana                                        60     1960-01-01     2019-01-01 
Brazil                                          70     1950-01-01     2019-01-01 
British Virgin Islands                          29     1991-01-01     2019-01-01 
Bulgaria                                        50     1970-01-01     2019-01-01 
Burkina Faso                                    61     1959-01-01     2019-01-01 
Burundi                                         40     1980-01-01     2019-01-01 
Cabo Verde                                      40     1980-01-01     2019-01-01 
Cameroon                                        60     1960-01-01     2019-01-01 
Canada                                          70     1950-01-01     2019-01-01 
Cayman Islands                                  29     1991-01-01     2019-01-01 
Central African Republic                        40     1980-01-01     2019-01-01 
Chad                                            60     1960-01-01     2019-01-01 
Chile                                           69     1951-01-01     2019-01-01 
China                                           68     1952-01-01     2019-01-01 
China, Hong Kong SAR                            60     1960-01-01     2019-01-01 
China, Macao SAR                                40     1980-01-01     2019-01-01 
Colombia                                        70     1950-01-01     2019-01-01 
Costa Rica                                      70     1950-01-01     2019-01-01 
Croatia                                         30     1990-01-01     2019-01-01 
Cyprus                                          70     1950-01-01     2019-01-01 
Czech Republic                                  30     1990-01-01     2019-01-01 
Côte d'Ivoire                                   60     1960-01-01     2019-01-01 
Denmark                                         70     1950-01-01     2019-01-01 
Djibouti                                        40     1980-01-01     2019-01-01 
Dominican Republic                              69     1951-01-01     2019-01-01 
Ecuador                                         70     1950-01-01     2019-01-01 
Egypt                                           70     1950-01-01     2019-01-01 
Estonia                                         30     1990-01-01     2019-01-01 
Eswatini                                        40     1980-01-01     2019-01-01 
Fiji                                            40     1980-01-01     2019-01-01 
Finland                                         70     1950-01-01     2019-01-01 
France                                          70     1950-01-01     2019-01-01 
Gabon                                           60     1960-01-01     2019-01-01 
Georgia                                         30     1990-01-01     2019-01-01 
Germany                                         70     1950-01-01     2019-01-01 
Greece                                          69     1951-01-01     2019-01-01 
Guatemala                                       70     1950-01-01     2019-01-01 
Guinea                                          40     1980-01-01     2019-01-01 
Honduras                                        50     1970-01-01     2019-01-01 
Hungary                                         50     1970-01-01     2019-01-01 
Iceland                                         70     1950-01-01     2019-01-01 
India                                           70     1950-01-01     2019-01-01 
Indonesia                                       60     1960-01-01     2019-01-01 
Iran (Islamic Republic of)                      65     1955-01-01     2019-01-01 
Iraq                                            50     1970-01-01     2019-01-01 
Ireland                                         70     1950-01-01     2019-01-01 
Israel                                          70     1950-01-01     2019-01-01 
Italy                                           70     1950-01-01     2019-01-01 
Jamaica                                         67     1953-01-01     2019-01-01 
Japan                                           70     1950-01-01     2019-01-01 
Jordan                                          66     1954-01-01     2019-01-01 
Kazakhstan                                      30     1990-01-01     2019-01-01 
Kenya                                           70     1950-01-01     2019-01-01 
Kuwait                                          50     1970-01-01     2019-01-01 
Kyrgyzstan                                      30     1990-01-01     2019-01-01 
Lao People's DR                                 40     1980-01-01     2019-01-01 
Latvia                                          30     1990-01-01     2019-01-01 
Lebanon                                         50     1970-01-01     2019-01-01 
Lesotho                                         40     1980-01-01     2019-01-01 
Lithuania                                       30     1990-01-01     2019-01-01 
Luxembourg                                      70     1950-01-01     2019-01-01 
Malaysia                                        65     1955-01-01     2019-01-01 
Malta                                           66     1954-01-01     2019-01-01 
Mauritania                                      43     1977-01-01     2019-01-01 
Mauritius                                       70     1950-01-01     2019-01-01 
Mexico                                          70     1950-01-01     2019-01-01 
Mongolia                                        40     1980-01-01     2019-01-01 
Morocco                                         70     1950-01-01     2019-01-01 
Mozambique                                      60     1960-01-01     2019-01-01 
Namibia                                         60     1960-01-01     2019-01-01 
Netherlands                                     70     1950-01-01     2019-01-01 
New Zealand                                     70     1950-01-01     2019-01-01 
Nicaragua                                       40     1980-01-01     2019-01-01 
Niger                                           60     1960-01-01     2019-01-01 
Nigeria                                         70     1950-01-01     2019-01-01 
North Macedonia                                 30     1990-01-01     2019-01-01 
Norway                                          70     1950-01-01     2019-01-01 
Oman                                            50     1970-01-01     2019-01-01 
Panama                                          51     1969-01-01     2019-01-01 
Paraguay                                        69     1951-01-01     2019-01-01 
Peru                                            70     1950-01-01     2019-01-01 
Philippines                                     70     1950-01-01     2019-01-01 
Poland                                          50     1970-01-01     2019-01-01 
Portugal                                        70     1950-01-01     2019-01-01 
Qatar                                           50     1970-01-01     2019-01-01 
Republic of Korea                               67     1953-01-01     2019-01-01 
Republic of Moldova                             30     1990-01-01     2019-01-01 
Romania                                         60     1960-01-01     2019-01-01 
Russian Federation                              30     1990-01-01     2019-01-01 
Rwanda                                          60     1960-01-01     2019-01-01 
Sao Tome and Principe                           40     1980-01-01     2019-01-01 
Saudi Arabia                                    50     1970-01-01     2019-01-01 
Senegal                                         60     1960-01-01     2019-01-01 
Serbia                                          30     1990-01-01     2019-01-01 
Sierra Leone                                    40     1980-01-01     2019-01-01 
Singapore                                       60     1960-01-01     2019-01-01 
Slovakia                                        30     1990-01-01     2019-01-01 
Slovenia                                        30     1990-01-01     2019-01-01 
South Africa                                    70     1950-01-01     2019-01-01 
Spain                                           70     1950-01-01     2019-01-01 
Sri Lanka                                       70     1950-01-01     2019-01-01 
Sudan                                           50     1970-01-01     2019-01-01 
Suriname                                        47     1973-01-01     2019-01-01 
Sweden                                          70     1950-01-01     2019-01-01 
Switzerland                                     70     1950-01-01     2019-01-01 
Taiwan                                          69     1951-01-01     2019-01-01 
Tajikistan                                      30     1990-01-01     2019-01-01 
Thailand                                        70     1950-01-01     2019-01-01 
Togo                                            40     1980-01-01     2019-01-01 
Trinidad and Tobago                             70     1950-01-01     2019-01-01 
Tunisia                                         60     1960-01-01     2019-01-01 
Turkey                                          70     1950-01-01     2019-01-01 
U.R. of Tanzania: Mainland                      60     1960-01-01     2019-01-01 
Ukraine                                         30     1990-01-01     2019-01-01 
United Kingdom                                  70     1950-01-01     2019-01-01 
United States                                   70     1950-01-01     2019-01-01 
Uruguay                                         70     1950-01-01     2019-01-01 
Uzbekistan                                      30     1990-01-01     2019-01-01 
Venezuela (Bolivarian Republic of)              70     1950-01-01     2019-01-01 
Zambia                                          65     1955-01-01     2019-01-01 
Zimbabwe                                        66     1954-01-01     2019-01-01 
================================================================================
</pre>
</div>
<p><br>
The <code>pdSize</code> procedure provides a nice summary of our panel data structure including the:</p>
<ul>
<li>Total number of groups and a full list of the groups. </li>
<li>Number of observations per a group. </li>
<li>Number of missing values. </li>
<li>The start and end date of each group in our panel. </li>
</ul>
<p>While there are no missing values in this data, this isn't always the case. In fact, it is quite common that variables cover only part of the full timespan. For example, a country may have a longer history of providing real GDP data than IRR data. </p>
<p>The <code>pdTimeSpans</code> procedure reports the full timespan for each group, along with the timespans for a specified variable list. If no variable list is provided, it returns the timespan for all variables in the dataframe. </p>
<p>For example, suppose we want to use the <em>emp</em> and <em>rgdpo</em> variables in a model and want to know the maximum timespan our model can cover. We can use <code>pdTimeSpans</code>  to see the timespan of each variable:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">pwt_model_timespans = pdTimeSpans(pwt_10, "emp"$|"rgdpo");
pwt_model_timespans;</code></pre>
<div style="max-height: 600px; overflow-y: scroll; border: 1px solid #ddd; padding: 10px;">

<pre>
         country       Start year         End year        emp Start          emp End      rgdpo Start        rgdpo End 
          Angola       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
       Argentina       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
         Armenia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
           Aruba       1991-01-01       2019-01-01       1991-01-01       2019-01-01       1991-01-01       2019-01-01 
       Australia       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
         Austria       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
      Azerbaijan       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
         Bahamas       1973-01-01       2019-01-01       1973-01-01       2019-01-01       1973-01-01       2019-01-01 
         Bahrain       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
        Barbados       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
         Belarus       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
         Belgium       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
           Benin       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
         Bermuda       1986-01-01       2019-01-01       1986-01-01       2019-01-01       1986-01-01       2019-01-01 
Bolivia (Plurina       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
Bosnia and Herze       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
        Botswana       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
          Brazil       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
British Virgin I       1991-01-01       2019-01-01       1991-01-01       2019-01-01       1991-01-01       2019-01-01 
        Bulgaria       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
    Burkina Faso       1959-01-01       2019-01-01       1959-01-01       2019-01-01       1959-01-01       2019-01-01 
         Burundi       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
      Cabo Verde       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
        Cameroon       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
          Canada       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
  Cayman Islands       1991-01-01       2019-01-01       1991-01-01       2019-01-01       1991-01-01       2019-01-01 
Central African        1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
            Chad       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
           Chile       1951-01-01       2019-01-01       1951-01-01       2019-01-01       1951-01-01       2019-01-01 
           China       1952-01-01       2019-01-01       1952-01-01       2019-01-01       1952-01-01       2019-01-01 
China, Hong Kong       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
China, Macao SAR       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
        Colombia       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
      Costa Rica       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
         Croatia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
          Cyprus       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
  Czech Republic       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
   Côte d'Ivoire       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
         Denmark       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
        Djibouti       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
Dominican Republ       1951-01-01       2019-01-01       1951-01-01       2019-01-01       1951-01-01       2019-01-01 
         Ecuador       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
           Egypt       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
         Estonia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
        Eswatini       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
            Fiji       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
         Finland       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          France       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
           Gabon       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
         Georgia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
         Germany       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Greece       1951-01-01       2019-01-01       1951-01-01       2019-01-01       1951-01-01       2019-01-01 
       Guatemala       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Guinea       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
        Honduras       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
         Hungary       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
         Iceland       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
           India       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
       Indonesia       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
Iran (Islamic Re       1955-01-01       2019-01-01       1955-01-01       2019-01-01       1955-01-01       2019-01-01 
            Iraq       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
         Ireland       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Israel       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
           Italy       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
         Jamaica       1953-01-01       2019-01-01       1953-01-01       2019-01-01       1953-01-01       2019-01-01 
           Japan       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Jordan       1954-01-01       2019-01-01       1954-01-01       2019-01-01       1954-01-01       2019-01-01 
      Kazakhstan       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
           Kenya       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Kuwait       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
      Kyrgyzstan       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
 Lao People's DR       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
          Latvia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
         Lebanon       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
         Lesotho       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
       Lithuania       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
      Luxembourg       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
        Malaysia       1955-01-01       2019-01-01       1955-01-01       2019-01-01       1955-01-01       2019-01-01 
           Malta       1954-01-01       2019-01-01       1954-01-01       2019-01-01       1954-01-01       2019-01-01 
      Mauritania       1977-01-01       2019-01-01       1977-01-01       2019-01-01       1977-01-01       2019-01-01 
       Mauritius       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Mexico       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
        Mongolia       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
         Morocco       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
      Mozambique       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
         Namibia       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
     Netherlands       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
     New Zealand       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
       Nicaragua       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
           Niger       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
         Nigeria       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
 North Macedonia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
          Norway       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
            Oman       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
          Panama       1969-01-01       2019-01-01       1969-01-01       2019-01-01       1969-01-01       2019-01-01 
        Paraguay       1951-01-01       2019-01-01       1951-01-01       2019-01-01       1951-01-01       2019-01-01 
            Peru       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
     Philippines       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Poland       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
        Portugal       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
           Qatar       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
Republic of Kore       1953-01-01       2019-01-01       1953-01-01       2019-01-01       1953-01-01       2019-01-01 
Republic of Mold       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
         Romania       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
Russian Federati       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
          Rwanda       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
Sao Tome and Pri       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
    Saudi Arabia       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
         Senegal       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
          Serbia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
    Sierra Leone       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
       Singapore       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
        Slovakia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
        Slovenia       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
    South Africa       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
           Spain       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
       Sri Lanka       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
           Sudan       1970-01-01       2019-01-01       1970-01-01       2019-01-01       1970-01-01       2019-01-01 
        Suriname       1973-01-01       2019-01-01       1973-01-01       2019-01-01       1973-01-01       2019-01-01 
          Sweden       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
     Switzerland       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Taiwan       1951-01-01       2019-01-01       1951-01-01       2019-01-01       1951-01-01       2019-01-01 
      Tajikistan       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
        Thailand       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
            Togo       1980-01-01       2019-01-01       1980-01-01       2019-01-01       1980-01-01       2019-01-01 
Trinidad and Tob       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
         Tunisia       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
          Turkey       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
U.R. of Tanzania       1960-01-01       2019-01-01       1960-01-01       2019-01-01       1960-01-01       2019-01-01 
         Ukraine       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
  United Kingdom       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
   United States       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
         Uruguay       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
      Uzbekistan       1990-01-01       2019-01-01       1990-01-01       2019-01-01       1990-01-01       2019-01-01 
Venezuela (Boliv       1950-01-01       2019-01-01       1950-01-01       2019-01-01       1950-01-01       2019-01-01 
          Zambia       1955-01-01       2019-01-01       1955-01-01       2019-01-01       1955-01-01       2019-01-01 
        Zimbabwe       1954-01-01       2019-01-01       1954-01-01       2019-01-01       1954-01-01       2019-01-01 
</pre>
</div>
<p><br></p>
<p>Again, because we aren't missing any data, both <em>emp</em> and <em>rgdpo</em> cover the full timespan for each group as reported by <code>pdSize</code>.</p>
<hr>
<div style="text-align:center">Ready to elevate your research? <a href="https://www.aptech.com/request-demo/" target="_blank" rel="noopener">Try GAUSS 25 today.</a></div>
<hr>
<h2 id="panel-data-summary-statistics">Panel Data Summary Statistics</h2>
<p>When analyzing panel data, it's important to understand how variability is distributed across different dimensions of the data. Specifically:  </p>
<ul>
<li><b>Overall statistics</b> which summarize the variability across all observations in the dataset, providing a high-level view of the data. </li>
<li><b>Within-group statistics</b> which measure variability within each individual group, reflecting how a variable changes over time for a specific group. </li>
<li><b>Between-group statistics</b>, which capture variability across groups, showing how groups differ from each other on average.</li>
</ul>
<p>Understanding these patterns ensures that we select the right modeling approach and properly account for both group-specific and overall trends in our analysis.</p>
<p>We'll use the <code>pdSummary</code> procedure to compute these statistics. However, to simplify our examples and output moving forward, let's limit our panel to include only countries that use the Euro. </p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Filter to include only Euro using countries
pwt_10 = selif(pwt_10, pwt_10[., "currency_unit"] .$== "Euro");

// Get summary statistics
pdSummary(pwt_10);</code></pre>
<pre>==========================================================================================
Group ID:                        country          Balanced:                             No
Valid cases:                        1125          Missings:                              0
N. Groups:                            19          T. Average:                       59.211
==========================================================================================
Variable               Measure           Mean      Std. Dev.        Minimum        Maximum
------------------------------------------------------------------------------------------
emp                    Overall          7.933         10.754          0.088         44.795
                       Between          -----         10.382          0.128         38.430
                        Within          -----          1.339          0.359         14.298
irr                    Overall          0.097          0.049          0.010          0.316
                       Between          -----          0.042          0.049          0.214
                        Within          -----          0.026          0.025          0.259
pop                    Overall         18.322         23.778          0.296         83.517
                       Between          -----         23.039          0.364         78.163
                        Within          -----          2.763          4.844         29.645
rgdpe                  Overall     457547.712     746910.097        568.248    4308861.500
                       Between          -----     594454.666       6365.400    2072470.938
                        Within          -----     431603.648   -1262654.069    2693938.274
rgdpo                  Overall     454655.015     750364.973         69.909    4275312.000
                       Between          -----     596209.636       5725.827    2097340.112
                        Within          -----     434813.497   -1283383.285    2632626.903
==========================================================================================
Non-numeric variables dropped from summary.</pre>
<p>One very clear observation from our summary table is that our GDP variables, <em>rgdpo</em> and <em>rgpde</em>, are a much different scale than our other variables. We'll look at how to transform these next.</p>
<h2 id="transforming-data-for-modeling">Transforming Data for Modeling</h2>
<p>Because panel data usually contains a time dimension, it is very common to need to take lags or differences of our data. While this is very straightforward with <a href="https://www.aptech.com/blog/getting-started-with-time-series-in-gauss/" target="_blank" rel="noopener">time series data</a>, doing this with panel data can be much more difficult. </p>
<p>Fortunately, the <code>pdLag</code> and <code>pdDiff</code> procedures, introduced in GAUSS 25, will efficiently compute panel data lags and differences for you. </p>
<p>$$\text{rdgpo growth rate} = \ln rgdpo_{t} - \ln rgdpo_{t-1} $$</p>
<p>Let's use the <code>pdDiff</code> procedure to create a new real GDP growth variable.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Take natural log of rgdpo
ln_rgdpo = ln(pwt_10[., "rgdpo"]);

// Add to pwt_10 dataframe
// we need to do this so GAUSS
// can identify or panel 
// using the 'country' and 'year' variables
pwt_10 = pwt_10 ~ asDF(ln_rgdpo, "ln_rgdpo");

// Take first difference of ln_rgdpo
// GAUSS will use 'country' and 'year' to 
// automatically detect panel
gr_rgdpo = pdDiff(pwt_10[., "country" "year" "ln_rgdpo"]);

// Summarize 'gr_rgdpo' 
// GAUSS will use 'country' and 'year' to 
// automatically detect panel
call pdSummary(gr_rgdpo);</code></pre>
<pre>==========================================================================================
Group ID:                        country          Balanced:                             No
Valid cases:                        1106          Missings:                             19
N. Groups:                            19          T. Average:                       58.211
==========================================================================================
Variable               Measure           Mean      Std. Dev.        Minimum        Maximum
------------------------------------------------------------------------------------------
ln_rgdpo               Overall          0.036          0.092         -1.741          1.476
                       Between          -----          0.013          0.008          0.062
                        Within          -----          0.091         -1.768          1.450
==========================================================================================</pre>
<h2 id="data-visualization">Data Visualization</h2>
<p>As a final step, let's create a quick visualization of this new variable using <a href="https://docs.aptech.com/gauss/plotxy.html" target="_blank" rel="noopener">plotXY</a>
and the <code>by</code> keyword. We'll use a subset of countries to keep our plot from getting to crowded.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Create subset of countries 
country_list = "Austria"$|"France"$|"Germany"$|"Spain"$|"Italy";

// Select data for plot
plot_data = selif(gr_rgdpo, sumr(gr_rgdpo[., "country"] .$== country_list'));

// Plot rgdpo growth variable by country
plotXY(plot_data, "ln_rgdpo~year + by(country)");</code></pre>
<p><a href="https://www.aptech.com/wp-content/uploads/2025/01/growth-plot.jpg"><img src="https://www.aptech.com/wp-content/uploads/2025/01/growth-plot.jpg" alt="Graph of the log of GDP growth for 5 countries in GAUSS." width="1200" height="740" class="aligncenter size-full wp-image-11584991" /></a></p>
<h3 id="conclusion">Conclusion</h3>
<p>Today we've seen how the new panel data tools in GAUSS 25 can simplify your everyday panel data tasks, using a hands-on example. We've covered fundamental tasks, including:</p>
<ul>
<li>Loading your data.</li>
<li>Preparing your panel dataset. </li>
<li>Exploring panel data characteristics. </li>
<li>Visualizing panel data. </li>
<li>Transforming your data for modeling. </li>
</ul>
<h3 id="further-reading">Further Reading</h3>
<ol>
<li><a href="https://www.aptech.com/blog/introduction-to-the-fundamentals-of-panel-data/" target="_blank" rel="noopener">Introduction to the Fundamentals of Panel Data</a></li>
<li><a href="https://www.aptech.com/blog/panel-data-basics-one-way-individual-effects/" target="_blank" rel="noopener">Panel Data Basics: One-way Individual Effects</a></li>
<li><a href="https://www.aptech.com/blog/get-started-with-panel-data-in-gauss-video/" target="_blank" rel="noopener">Get Started with Panel Data in GAUSS (Video)</a></li>
<li><a href="https://www.aptech.com/blog/how-to-aggregate-panel-data-in-gauss/" target="_blank" rel="noopener">How to Aggregate Panel Data in GAUSS</a></li>
</ol>

]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/exploring-and-cleaning-panel-data-with-gauss-25/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>More Research, Less Effort with GAUSS 25!</title>
		<link>https://www.aptech.com/blog/gauss25/</link>
					<comments>https://www.aptech.com/blog/gauss25/#respond</comments>
		
		<dc:creator><![CDATA[Eric]]></dc:creator>
		<pubDate>Tue, 07 Jan 2025 19:30:38 +0000</pubDate>
				<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11584838</guid>

					<description><![CDATA[GAUSS 25 will transform your workflow with intuitive tools for data exploration, advanced diagnostics, and seamless model comparison. 
Learn more about our new features including:
<ul>
<li> Comprehensive panel data tools.</li>
<li> Improved results printouts.</li>
<li>New hypothesis testing tools.</li>
</ul>]]></description>
										<content:encoded><![CDATA[<h3 id="introduction">Introduction</h3>
<p>GAUSS 25 will transform your workflow with intuitive tools for data exploration, advanced diagnostics, and seamless model comparison. </p>
<h2 id="comprehensive-panel-data-tools">Comprehensive Panel Data Tools</h2>
<img src="https://www.aptech.com/wp-content/uploads/2025/01/g25-pd-county-1.jpg" alt="Panel data in GAUSS." width="1558" height="1064" class="alignnone size-full wp-image-11584856" />
<p>Struggling to make sense of panel data? GAUSS 25 transforms the way you load, analyze, and explore your data, giving you the intuitive tools you need.</p>
<h3 id="explore-panel-data-characteristics">Explore Panel Data Characteristics</h3>
<ul>
<li>Explore overall, within-group, and between group summary statistics with <a href="https://docs.aptech.com/gauss/pdsummary.html" target="_blank" rel="noopener">pdSummary</a>.</li>
</ul>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Import data
pd_cty = loadd("pd_county.gdat");

/* 
** Create panel data summary report.
** pdSummary will automatically detect 
** group variable and time variable
*/
call pdSummary(pd_cty);</code></pre>
<pre>======================================================================================
Group ID:                     county          Balanced:                            Yes
Valid cases:                      28          Missings:                              0
N. Groups:                         4          T. Average:                        7.000
======================================================================================
Variable           Measure           Mean      Std. Dev.        Minimum        Maximum
--------------------------------------------------------------------------------------
emp                Overall         30.201         25.514          2.936         73.689
                   Between              .         28.888          4.367         71.362
                    Within              .          1.376         26.728         32.528
wage               Overall         17.313          4.273         12.302         28.908
                   Between              .          4.394         13.576         23.630
                    Within              .          1.802         14.377         22.591
======================================================================================</pre>
<ul>
<li>See panel data time distributions with <a href="https://docs.aptech.com/gauss/pdsize.html" target="_blank" rel="noopener">pdSize</a> and <a href="https://docs.aptech.com/gauss/pdtimespans.html" target="_blank" rel="noopener">pdTimeSpans</a>.</li>
</ul>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Print report on size and range
// of each individual in the panel.
call pdSize(pd_cty);</code></pre>
<pre>============================================================
Group ID:           county         Balanced:             Yes
Valid cases:           28          Missings:               0
N. Groups:              4          T. Average:         7.000
============================================================
county                    T[i]     Start Date       End Date
------------------------------------------------------------

Cook                         7     1977-01-01     1983-01-01
Harris                       7     1977-01-01     1983-01-01
Los Angeles                  7     1977-01-01     1983-01-01
Maricopa                     7     1977-01-01     1983-01-01
============================================================</pre>
<h3 id="prepare-panel-data-for-modeling">Prepare Panel Data for Modeling</h3>
<ul>
<li>Automated and intelligent detection of group and time variables for seamless workflows.</li>
<li>Sort panel data instantly with detected group and time variables using <a href="https://docs.aptech.com/gauss/pdsort.html" target="_blank" rel="noopener">pdSort</a>. </li>
<li>New <a href="https://docs.aptech.com/gauss/pdlag.html" target="_blank" rel="noopener">pdLag</a> and <a href="https://docs.aptech.com/gauss/pddiff.html" target="_blank" rel="noopener">pdDiff</a> for calculating panel data lags and differences.</li>
</ul>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Compute second lag of each
// individual in the panel
pd_cty_l = pdLag(pd_cty, 2);

// Print the first 10 observations
print pd_cty_l[1:10,.];</code></pre>
<pre>     county             year              emp             wage
Los Angeles       1977-01-01                .                .
Los Angeles       1978-01-01                .                .
Los Angeles       1979-01-01        5.0409999        13.151600
Los Angeles       1980-01-01        5.5999999        12.301800
Los Angeles       1981-01-01        5.0149999        12.839500
Los Angeles       1982-01-01        4.7150002        13.803900
Los Angeles       1983-01-01        4.0929999        14.289700
       Cook       1977-01-01                .                .
       Cook       1978-01-01                .                .
       Cook       1979-01-01        71.319000        14.790900</pre>
<ul>
<li>Check for balance and consecutiveness with <a href="https://docs.aptech.com/gauss/pdallconsecutive.html" target="_blank" rel="noopener">pdAllBalanced</a> and <a href="https://docs.aptech.com/gauss/pdallconsecutive.html" target="_blank" rel="noopener">pdAllConsecutive</a>.</li>
</ul>
<div style="text-align:center;background-color:#f0f2f4"><hr>Ready to get started using GAUSS 25? <a href="https://www.aptech.com/request-demo/">Contact us for a GAUSS 25 demo!<hr></a></div>
<h2 id="new-hypothesis-testing">New Hypothesis Testing</h2>
<p>The new <a href="https://docs.aptech.com/gauss/waldtest.html" target="_blank" rel="noopener">waldTest</a> procedure provides a powerful and intuitive tool for testing linear hypotheses after estimation. </p>
<ul>
<li>Perform post-estimation hypothesis testing after OLS, GLM, GMM, and Quantile Regression. </li>
<li>Specify hypotheses effortlessly using variable names. </li>
<li>Comprehensive support for linear combination of variables in hypotheses. </li>
</ul>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Run ols model
struct olsmtout cen_ols;
cen_ols = olsmt("census3.dta", "brate ~ medage + medage*medage + region");

// Test the hypothesis that the coefficients on 
// the Ncentral region and South region are equal
{ wald_stat, p_value } = waldTest(cen_ols, "region: NCentral - region: South");</code></pre>
<pre>======================================
Wald test of null joint hypothesis:
region: NCentral - region: South =  0
-------------------------------------
F( 1, 44 ):                    5.0642
Prob &gt; F :                     0.0295
=====================================</pre>
<p>Check for the equivalency of slopes across quantiles after Quantile Regression with the new <a href="https://docs.aptech.com/gauss/qfitslopetest.html" target="_blank" rel="noopener">qfitSlopeTest</a>.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Set up tau for regression
tau = 0.35|0.55|0.85;

// Call quantileFit
struct qfitOut qOut;
qOut = quantileFit("regsmpl.dta", "ln_wage ~ age + age:age + tenure", tau);

// Test for joint equivalency of all slopes
// across all quantiles 
qfitSlopeTest(qOut);</code></pre>
<pre>===================================
Joint Test of Equality in Slopes :
 tau in { 0.35 , 0.55 , 0.85 }
Model: ln_wage ~
age + age_age + tenure
-----------------------------------
F( 9, 28097 ):             138.2428
Prob &gt; F :                   0.0000
===================================</pre>
<p><br/></p>
<h2 id="enhanced-result-printouts">Enhanced Result Printouts</h2>
<p>GAUSS 25 now offers expanded model diagnostics and consistent printouts across all estimation procedures. </p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">//Get file name with full path
file = getGAUSShome("examples/clotting_time.dat");

//Perform estimation and print report
call glm(file, "lot1 ~  ln(plasma)", "gamma");</code></pre>
<pre>Generalized Linear Model
===================================================================
Valid cases:               9           Dependent variable:     lot1
Degrees of freedom:        7           Distribution           gamma
Deviance:             0.0167           Link function:       inverse
Pearson Chi-square:   0.0171           AIC:                  37.990
Log likelihood:          -16           BIC:                  38.582
Dispersion:                0           Iterations:               38
Number of vars:            2
===================================================================
                                   Standard                    Prob
Variable               Estimate       Error     t-value        &gt;|t|
-------------------------------------------------------------------

CONSTANT              -0.016554  0.00092754     -17.848   4.279e-07
ln(plasma)             0.015343  0.00041496      36.975  2.7511e-09
===================================================================</pre>
<p>These enhancements make it easier than ever to compare models, explore results, and gain deeper insights with confidence.</p>
<hr>
<div style="text-align:center">Ready to elevate your research? <a href="https://www.aptech.com/request-demo/" target="_blank" rel="noopener">Try GAUSS 25 today.</a></div>
<hr>
<h2 id="improved-performance-and-speed-ups">Improved Performance and Speed-ups</h2>
<ul>
<li>Expanded two-way tabulation using <a href="https://docs.aptech.com/gauss/tabulate.html" target="_blank" rel="noopener">tabulate</a> to find row or column percentages. </li>
<li>The  <a href="https://docs.aptech.com/gauss/gmmfitiv.html" target="_blank" rel="noopener">gmmFitIV</a> function now uses metadata from dataframes to identify and report variable names and supports the &quot;by&quot; keyword.</li>
<li>Optional specification of sorted data provides speed improvements when using <a href="https://docs.aptech.com/gauss/counts.html" target="_blank" rel="noopener">counts</a>.</li>
<li>The <a href="https://docs.aptech.com/gauss/plotfreq.html" target="_blank" rel="noopener">plotFreq</a> procedure now supports the &quot;by&quot; keyword for counting frequencies across groups.</li>
</ul>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Load dataset
tips2 = loadd("tips2.csv");

// Create a frequency plot of visits per day
// for each category of smoker (Yes, or No).
plotFreq(tips2, "day + by(smoker)");</code></pre>
<img src="https://www.aptech.com/wp-content/uploads/2025/01/g25-plotfreq-day-by-smoker.jpg" alt="Frequency plot in GAUSS." width="1200" height="800" class="alignnone size-full wp-image-11584872" />
<ul>
<li><a href="https://docs.aptech.com/gauss/saved.html" target="_blank" rel="noopener">saved</a> now automatically detects and saves categorical and string variables using their labels for Excel files.</li>
</ul>
<h3 id="conclusion">Conclusion</h3>
<p>For a complete list of all GAUSS 25 offers please see the complete <a href="https://docs.aptech.com/gauss/changelog.html" target="_blank" rel="noopener">changelog</a>. </p>
<div style="text-align:center;background-color:#455560;color:#FFFFFF">
<hr>
<h3 id="discover-how-you-can-get-more-done-with-gauss-25">Discover how you can get more done with GAUSS 25.</h3>
 
<div class="lp-cta">
    <a href="https://www.aptech.com/request-demo" class="btn btn-primary">Request Demo</a>
    <a href="https://www.aptech.com/request-quote/" class="btn btn-primary btn-quote">Request pricing</a>
</div><hr>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/gauss25/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Introducing GAUSS 24</title>
		<link>https://www.aptech.com/blog/introducing-gauss-24/</link>
					<comments>https://www.aptech.com/blog/introducing-gauss-24/#respond</comments>
		
		<dc:creator><![CDATA[Eric]]></dc:creator>
		<pubDate>Tue, 05 Dec 2023 17:15:52 +0000</pubDate>
				<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11584082</guid>

					<description><![CDATA[We're happy to announce the release of GAUSS 24, with new features for everything from everyday data management to refined statistical modeling. 

GAUSS 24 features a robust suite of tools designed to elevate your research. With these advancements, GAUSS 24 continues our commitment to helping you conduct insightful analysis and achieve your goals.]]></description>
										<content:encoded><![CDATA[<h3 id="introduction">Introduction</h3>
<p><a href="https://www.aptech.com/wp-content/uploads/2022/12/Shutterstock_1893823846-1-scaled.jpg"><img src="https://www.aptech.com/wp-content/uploads/2022/12/Shutterstock_1893823846-1-scaled.jpg" alt="People working at a computer." width="2560" height="1229" class="aligncenter size-full wp-image-11583207" /></a></p>
<p>We're happy to announce the release of GAUSS 24, with new features for everything from everyday data management to refined statistical modeling. </p>
<p>GAUSS 24 features a robust suite of tools designed to elevate your research. With these advancements, GAUSS 24 continues our commitment to helping you conduct insightful analysis and achieve your goals.</p>
<h2 id="new-panel-data-management-tools">New Panel Data Management Tools</h2>
<p>GAUSS 24 makes working with panel data easier than ever. Effortlessly load, clean, and explore panel data without ever leaving GAUSS, making it the smoothest experience yet!</p>
<p><a href="https://www.aptech.com/wp-content/uploads/2023/12/Blank-diagram-1.jpg"><img src="https://www.aptech.com/wp-content/uploads/2023/12/Blank-diagram-1.jpg" alt="" width="710" height="949" class="aligncenter size-full wp-image-11584129" /></a></p>
<ul>
<li>Easily and intuitively pivot between long and wide form data with new <a href="https://docs.aptech.com/gauss/dflonger.html" target="_blank" rel="noopener">dfLonger</a> and <a href="https://docs.aptech.com/gauss/dfwider.html" target="_blank" rel="noopener">dfWider</a> functions.</li>
<li>Explore <u>group-level descriptive statistics</u> and estimate <u>group-level linear models</u> with expanded <code>by</code> keyword functionality.</li>
</ul>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Load data 
auto2 = loadd("auto2.dta");

// Print statistics table
call dstatmt(auto2, "mpg + by(foreign)");</code></pre>
<pre>=======================================================================
foreign: Domestic
-----------------------------------------------------------------------
Variable        Mean     Std Dev      Variance     Minimum     Maximum
-----------------------------------------------------------------------
mpg            19.83       4.743          22.5          12          34
=======================================================================
foreign: Foreign
-----------------------------------------------------------------------
Variable        Mean     Std Dev      Variance     Minimum     Maximum
-----------------------------------------------------------------------
mpg            24.77       6.611         43.71          14          41 </pre>
<h2 id="feasible-gls-estimation">Feasible GLS Estimation</h2>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Load data
df_returns = loadd("df_returns.gdat");

// Run FGLS with defaults AR(1) Innovations
fgls(df_returns, "rcoe ~ rcpi";</code></pre>
<pre>Valid cases:                    248          Dependent variable:            rcpi
Total SS:                     0.027          Degrees of freedom:             246
R-squared:                    0.110          Rbar-squared:                 0.107
Residual SS:                  0.024          Std error of est:             0.010
F(1,246)                     30.453          Probability of F:             0.000
Durbin-Watson                 0.757
--------------------------------------------------------------------------------
                        Standard                    Prob
Variable   Estimates       Error     t-value        &gt;|t|  [95% Conf.   Interval]
--------------------------------------------------------------------------------

Constant      0.0148     0.00122        12.1       0.000      0.0124      0.0172
    rcoe       0.196      0.0685        2.86       0.005      0.0619        0.33 </pre>
<ul>
<li>Compute <a href="https://docs.aptech.com/gauss/fgls.html" target="_blank" rel="noopener">feasible GLS</a> coefficients and associated standard errors, t-statistics, p-values, and confidence intervals. </li>
<li>Provides model evaluation statistics including R-squared, F-stat, and the Durbin-Watson statistic.</li>
<li>Choose from 7 built-in covariance estimation methods or provide your own covariance matrix.</li>
</ul>
<h2 id="expanded-tabulation-capabilities">Expanded Tabulation Capabilities</h2>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Load data
df = loadd("tips2.dta");

// Two-way table
call tabulate(df, "sex ~ smoker");</code></pre>
<pre>============================================================
            sex                   smoker               Total
============================================================
                            No            Yes

         Female             55             33             88
           Male             99             60            159

          Total            154             93            247
============================================================</pre>
<p>New tools for two-way tabulation provides a structured and systematic approach to understanding and drawing insights from categorical variables.</p>
<ul>
<li>New procedure <a href="https://docs.aptech.com/gauss/tabulate.html" target="_blank" rel="noopener">tabulate</a> for computing two-way tables with advanced options for excluding categories and formatting reports.</li>
<li>Expanded functionality for the <a href="https://docs.aptech.com/gauss/frequency.html" target="_blank" rel="noopener">frequency</a> function:
<ul>
<li>New two-way tables. </li>
<li>Sorted frequency reports and charts. </li>
</ul></li>
</ul>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Print sorted frequency table
// of 'rep78' in 'auto2' dataframe
frequency(auto2, "rep78", 1)</code></pre>
<pre>    Label      Count   Total %    Cum. %
  Average         30     43.48     43.48
     Good         18     26.09     69.57
Excellent         11     15.94     85.51
     Fair          8     11.59      97.1
     Poor          2     2.899       100
    Total         69       100</pre>
<p><br/></p>
<hr>
<div style="text-align:center">Ready to elevate your research? <a href="https://www.aptech.com/request-demo/" target="_blank" rel="noopener">Try GAUSS 24 today.</a></div>
<hr>
<h2 id="new-time-and-date-extraction-tools">New Time and Date Extraction Tools</h2>
<p><a href="https://www.aptech.com/wp-content/uploads/2023/12/Blank-diagram.jpg"><img src="https://www.aptech.com/wp-content/uploads/2023/12/Blank-diagram.jpg" alt="" width="731" height="535" class="aligncenter size-full wp-image-11584125" /></a></p>
<ul>
<li>12 new procedures for extracting date and time components from dataframe dates.</li>
<li>Extract date and time components ranging from seconds to years. </li>
</ul>
<h2 id="new-convenience-functions-for-data-management-and-exploration">New Convenience Functions for Data Management and Exploration</h2>
<ul>
<li><a href="https://docs.aptech.com/gauss/dropcategories.html" target="_blank" rel="noopener">dropCategories</a> - Drops observations of specific categories from a dataframe and updates the associated labels and key values .</li>
<li><a href="https://docs.aptech.com/gauss/getcategories.html" target="_blank" rel="noopener">getCategories</a> - Returns the category labels for a categorical variable.  </li>
<li><a href="https://docs.aptech.com/gauss/isstring.html" target="_blank" rel="noopener">isString</a> - Verify if an input is a string or string array. </li>
<li><a href="https://docs.aptech.com/gauss/startswith.html" target="_blank" rel="noopener">startsWith</a> - Locates elements that start with a specified string.</li>
<li><a href="https://docs.aptech.com/gauss/insertcols.html" target="_blank" rel="noopener">insertCols</a> - Inserts one or more new columns into a matrix or dataframe at a specified location.</li>
</ul>
<h2 id="improved-performance-and-speed-ups">Improved Performance and Speed-ups</h2>
<ul>
<li>Expanded functionality of <a href="https://docs.aptech.com/gauss/strindx.html" target="_blank" rel="noopener">strindx</a> allows for searching of unique substrings across multiple variables. </li>
<li>The <a href="https://docs.aptech.com/gauss/upmatupmat1.html" target="_blank" rel="noopener">upmat</a> function now has the option to specify an offset from the main diagonal, the option to return only the upper triangular elements as a vector and is faster for medium and large matrices.</li>
<li>Significant speed improvements when using <a href="https://docs.aptech.com/gauss/combinate.html" target="_blank" rel="noopener">combinate</a> with large values of <em>n</em>.</li>
<li>Remove missing values from large vectors more efficiently with speed increases in <a href="https://docs.aptech.com/gauss/packr.html" target="_blank" rel="noopener">packr</a>.</li>
</ul>
<h3 id="conclusion">Conclusion</h3>
<p>For a complete list of all GAUSS 24 offers please see the complete <a href="https://docs.aptech.com/gauss/changelog.html" target="_blank" rel="noopener">changelog</a>. </p>
<div style="text-align:center;background-color:#455560;color:#FFFFFF">
<hr>
<h3 id="discover-how-gauss-24-can-help-you-reach-your-goals">Discover how GAUSS 24 can help you reach your goals.</h3>
 
<div class="lp-cta">
    <a href="https://www.aptech.com/request-demo" class="btn btn-primary">Request Demo</a>
    <a href="https://www.aptech.com/request-quote/" class="btn btn-primary btn-quote">Request pricing</a>
</div><hr>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/introducing-gauss-24/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Announcing the GAUSS Machine Learning Library</title>
		<link>https://www.aptech.com/blog/announcing-the-gauss-machine-learning-library/</link>
					<comments>https://www.aptech.com/blog/announcing-the-gauss-machine-learning-library/#respond</comments>
		
		<dc:creator><![CDATA[Eric]]></dc:creator>
		<pubDate>Mon, 28 Aug 2023 14:36:25 +0000</pubDate>
				<category><![CDATA[Econometrics]]></category>
		<category><![CDATA[Machine learning]]></category>
		<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11584015</guid>

					<description><![CDATA[The new GAUSS Machine Learning (GML) library offers powerful and efficient machine learning techniques in an accessible and friendly environment. Whether you're just getting familiar with machine learning or an experienced technician, you'll be running models in no time with GML. ]]></description>
										<content:encoded><![CDATA[<h3 id="introduction">Introduction</h3>
<p>The new GAUSS Machine Learning (GML) library offers powerful and efficient machine learning techniques in an accessible and friendly environment. Whether you're just getting familiar with machine learning or an experienced technician, you'll be running models in no time with GML. </p>
<h2 id="machine-learning-models-at-your-fingertips">Machine Learning Models at Your Fingertips</h2>
<p>With the GAUSS Machine Learning library, you can run machine learning models out of the box, even without any machine learning background. It supports fundamental machine learning models for classification and regression including:</p>
<ul>
<li><a href="https://docs.aptech.com/gauss/logisticregfit.html" target="_blank" rel="noopener">Logistic regression</a>.</li>
<li><a href="https://docs.aptech.com/gauss/lassofit.html" target="_blank" rel="noopener">LASSO</a> and <a href="https://docs.aptech.com/gauss/ridgefit.html" target="_blank" rel="noopener">ridge</a> regression.</li>
<li><a href="https://docs.aptech.com/gauss/decforestrfit.html" target="_blank" rel="noopener">Decision forests</a>.</li>
<li><a href="https://docs.aptech.com/gauss/pcafit.html" target="_blank" rel="noopener">Principal component analysis</a>.</li>
<li><a href="https://docs.aptech.com/gauss/knnfit.html" target="_blank" rel="noopener">K-nearest neighbors</a>.</li>
<li><a href="https://docs.aptech.com/gauss/kmeansfit.html" target="_blank" rel="noopener">K-means clustering</a>.</li>
</ul>
<p><a href="https://docs.aptech.com/gauss/plotlr.html" target="_blank" rel="noopener"><img src="https://docs.aptech.com/gauss/_images/lassofit.jpg" width="800" height="600" alt="LASSO regression coefficient response plot." class="aligncenter size-full" /></a></p>
<h2 id="quick-and-painless-data-preparation-and-management">Quick and Painless Data Preparation and Management</h2>
<p>We know model fitting and prediction is just the tip of the iceberg when it comes to any data analysis project. That's why we've focused on making GAUSS one of the best environments for data import, cleaning, and exploration. </p>
<p><a href="https://www.aptech.com/wp-content/uploads/2021/11/g22-donor-strclean-2-frames-npup2.gif"><img src="https://www.aptech.com/wp-content/uploads/2021/11/g22-donor-strclean-2-frames-npup2.gif" alt="" width="605" height="374" class="size-full wp-image-11581929" /></a></p>
<p>GML provides machine learning specific data preparation tools including:</p>
<ul>
<li><a href="https://docs.aptech.com/gauss/onehot.html" target="_blank" rel="noopener">One-hot encoding</a>.  </li>
<li><a href="https://docs.aptech.com/gauss/traintestsplit.html" target="_blank" rel="noopener">Testing and training data splits</a>. </li>
<li><a href="https://docs.aptech.com/gauss/cvsplit.html" target="_blank" rel="noopener">Cross-validation splits</a>. </li>
<li>Internal data scaling. </li>
</ul>
<p>See how GAUSS reduces the pain and time of data wrangling and let's you get to the heart of your machine learning models quicker. </p>
<h2 id="easy-to-implement-model-evaluation">Easy to Implement Model Evaluation</h2>
<p><a href="https://www.aptech.com/wp-content/uploads/2023/08/classification-statistics.jpg"><img src="https://www.aptech.com/wp-content/uploads/2023/08/classification-statistics.jpg" alt="GAUSS classification metrics from machine learning library. " width="574" height="406" class="aligncenter size-full wp-image-11584020" /></a></p>
<p>Compare and evaluate machine learning models with tools for GML plotting and performance evaluation tools:</p>
<ul>
<li><a href="https://docs.aptech.com/gauss/plotclasses.html" target="_blank" rel="noopener">Data class plots</a>. </li>
<li><a href="https://docs.aptech.com/gauss/meansquarederror.html" target="_blank" rel="noopener">Model mean squared error</a>. </li>
<li><a href="https://docs.aptech.com/gauss/classificationmetrics.html" target="_blank" rel="noopener">Classification metrics</a>.</li>
<li><a href="https://docs.aptech.com/gauss/plotvariableimportance.html" target="_blank" rel="noopener">Variable importance tables</a>. </li>
</ul>
<div style="text-align:center;background-color:#f0f2f4"><hr>Interested in how GAUSS machine learning can work for you?<a href="https://www.aptech.com/contact-us/" target="_blank" rel="noopener"> Contact Us<hr></a></div>
<h2 id="unparalleled-customer-support">Unparalleled Customer Support</h2>
<p>We pride ourselves on offering unparalleled customer support and we truly care about your success. If you can't find what you need in our <a href="https://docs.aptech.com/gauss/" target="_blank" rel="noopener">online documents</a>, <a href="https://www.aptech.com/questions/" target="_blank" rel="noopener">user forum</a>, or <a href="https://www.aptech.com/blog/" target="_blank" rel="noopener">blog</a>, you can be confident that a GAUSS expert is here to quickly resolve your questions.</p>
<h2 id="see-it-in-action">See It In Action</h2>
<p>Want to see GML in action? Check out these real-world applications:</p>
<ol>
<li><a href="https://www.aptech.com/blog/classification-with-regularized-logistic-regression/" target="_blank" rel="noopener">Classification With Regularized Logistic Regression</a>.</li>
<li><a href="https://www.aptech.com/blog/machine-learning-with-real-world-data/" target="_blank" rel="noopener">Machine Learning With Real-World Data</a>.</li>
<li><a href="https://www.aptech.com/blog/understanding-cross-validation/" target="_blank" rel="noopener">Understanding Cross-Validation</a>.</li>
<li><a href="https://www.aptech.com/blog/fundamentals-of-tuning-machine-learning-hyperparameters/" target="_blank" rel="noopener">Fundamentals of Tuning Machine Learning Hyperparameters</a>.</li>
<li><a href="https://www.aptech.com/blog/predicting-the-output-gap-with-machine-learning-regression-models/" target="_blank" rel="noopener">Predicting The Output Gap With Machine Learning Regression Models</a>.</li>
<li><a href="https://www.aptech.com/blog/applications-of-principal-components-analysis-in-finance/" target="_blank" rel="noopener">Applications of Principal Components Analysis in Finance</a>. </li>
<li><a href="https://www.aptech.com/blog/predicting-recessions-with-machine-learning-techniques/" target="_blank" rel="noopener">Predicting Recessions With Machine Learning Techniques</a>. 
<h2 id="try-out-gauss-machine-learning">Try out GAUSS Machine Learning</h2></li>
</ol>

[contact-form-7]
]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/announcing-the-gauss-machine-learning-library/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>New Release TSPDLIB 3.0</title>
		<link>https://www.aptech.com/blog/new-release-tspdlib-3-0-0/</link>
					<comments>https://www.aptech.com/blog/new-release-tspdlib-3-0-0/#respond</comments>
		
		<dc:creator><![CDATA[Eric]]></dc:creator>
		<pubDate>Thu, 20 Jul 2023 16:38:38 +0000</pubDate>
				<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11583976</guid>

					<description><![CDATA[The preliminary econometric package for Time Series and Panel Data Methods has been updated and functionality has been expanded with over 20 new functions in this release of <a href="https://github.com/aptech/tspdlib/" target="_blank" rel="noopener">TSPDLIB 3.0.0</a>. 

The TSPDLIB 3.0.0 package includes expanded functions for time series and panel data testing both with and without <a href="https://www.aptech.com/structural-breaks/" target="_blank" rel="noopener">structural breaks</a> and causality testing. 

It requires a <a href="https://www.aptech.com/blog/gauss23/" target="_blank" rel="noopener">GAUSS 23+</a> for use. ]]></description>
										<content:encoded><![CDATA[<h2 id="introduction">Introduction</h2>
<p>The preliminary econometric package for Time Series and Panel Data Methods has been updated and functionality has been expanded with over 20 new functions in this release of <a href="https://github.com/aptech/tspdlib/" target="_blank" rel="noopener">TSPDLIB 3.0</a>. </p>
<p>The TSPDLIB 3.0 package includes expanded functions for time series and panel data testing both with and without <a href="https://www.aptech.com/structural-breaks/" target="_blank" rel="noopener">structural breaks</a> and causality testing. </p>
<p>It requires a <a href="https://www.aptech.com/blog/gauss23/" target="_blank" rel="noopener">GAUSS 23+</a> for use. </p>
<h2 id="changelog-3-0">Changelog 3.0:</h2>
<ol>
<li>New functionality: Add metadata based variable names for improved printing.</li>
<li>Improvement: Simplified data loading formulas using expanded GAUSS 23 .</li>
<li>New unit root testing procedures:
<ul>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/fourier_kpss.html" target="_blank" rel="noopener"><code>fourier_kpss</code></a> - KPSS stationarity testing with flexible Fourier form, smooth structural breaks. </li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/fourier_kss.html" target="_blank" rel="noopener"><code>fourier_kss</code></a> - KSS unit root test with flexible Fourier form, smooth structural breaks. </li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/fourier_wadf.html" target="_blank" rel="noopener"><code>fourier_wadf</code></a> - Wavelet ADF unit root test with flexible Fourier form, smooth structural breaks. </li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/fourier_wkss.html" target="_blank" rel="noopener"><code>fourier_wkss</code></a> - Wavelet KSS unit root test with flexible Fourier form, smooth structural breaks. </li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/kss.html" target="_blank" rel="noopener"><code>kss</code></a> - KSS unit root test.</li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/qr_fourier_adf.html" target="_blank" rel="noopener"><code>qr_fourier_adf</code></a> - Quantile ADF unit root test with flexible Fourier form, smooth structural breaks. </li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/qr_fourier_kss.html" target="_blank" rel="noopener"><code>qr_fourier_kss</code></a> - Quantile KSS unit root test with flexible Fourier form, smooth structural breaks. </li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/qr_kss.html" target="_blank" rel="noopener"><code>qr_kss</code></a> - Quantile KSS unit root test. </li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/qr_qks.html" target="_blank" rel="noopener"><code>qks_tests</code></a> - Quantile Kolmogorov-Smirnov (QKS) tests.</li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/wkss.html" target="_blank" rel="noopener"><code>wkss</code></a> - Wavelet KSS unit root test.</li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/sbur_gls.html" target="_blank" rel="noopener"><code>sbur_gls</code></a> - Carrion-i-Silvestre, Kim, and Perron (2009) GLS-unit root tests with multiple structural breaks. </li>
</ul></li>
<li>New cointegration tests:
<ul>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/pd_coint_wedgerton.html" target="_blank" rel="noopener"><code>pd_coint_wedgerton</code></a> - Westerlund and Edgerton (2008) panel cointegration test. </li>
</ul></li>
<li>New panel data unit root tests:
<ul>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/pd_kpss.html" target="_blank" rel="noopener"><code>pd_kpss</code></a> - Carrion-i-Silvestre, et al.(2005) panel data KPSS test with multiple structural breaks.</li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/pd_stationary.html" target="_blank" rel="noopener"><code>pd_stationary</code></a> - Tests for unit roots in heterogeneous panel data including with or without cross-sectional averages, with or without flexible Fourier from structural breaks. </li>
</ul></li>
<li>New causality tests:
<ul>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/asymcause.html" target="_blank" rel="noopener"><code>asymCause</code></a> - Hatemi-J tests for asymmetric causality.</li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/pd_cause.html" target="_blank" rel="noopener"><code>pd_cause</code></a> - Tests for Granger causality in heterogenous panels including Fisher, Zhnc, and SUR Wald tests.  </li>
</ul></li>
<li>Other new functions:
<ul>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/sbvar_icss.html" target="_blank" rel="noopener"><code>sbvar_icss</code></a> - Sanso, Arag &amp; Carrion (2002) ICSS test for changes in unconditional variance.</li>
<li><a href="https://docs.aptech.com/gauss/tspdlib/docs/pd_getcderror.html" target="_blank" rel="noopener"><code>pd_getCDError</code></a> - Tests for cross-sectional dependency.</li>
</ul></li>
<li>New examples:
<ul>
<li>actest.e</li>
<li>ascomp.e</li>
<li>fourier_kss.e</li>
<li>fourier_kpss.e </li>
<li>fourier_wadf.e</li>
<li>fourier_wkss.e</li>
<li>kss.e</li>
<li>pd_cause.e</li>
<li>pd_getcderror.e</li>
<li>pd_coint_wedgerton.e</li>
<li>pd_kpss.e</li>
<li>qr_fourier_adf.e</li>
<li>qr_fourier_kss.e</li>
<li>qr_kss.e</li>
<li>qr_qks.e</li>
<li>sbur.e</li>
<li>sbvar_icss.e</li>
<li>wkss.e</li>
</ul></li>
</ol>
<h2 id="citation">Citation</h2>
<p>If using this library please include the following citation:   </p>
<div class="su-quote su-quote-style-default su-quote-has-cite"><div class="su-quote-inner su-clearfix"><span class="su-quote-cite">
<p>Nazlioglu, S (2018) TSPDLIB: GAUSS Time Series and Panel Data Methods (Version 3.0). Source Code. <a href="https://github.com/aptech/tspdlib"><a href="https://github.com/aptech/tspdlib">https://github.com/aptech/tspdlib</a></a></p>
</span></div></div>
<h2 id="getting-started">Getting Started</h2>
<h3 id="prerequisites">Prerequisites</h3>
<p>The program files require a working copy of <strong>GAUSS 23+</strong>. </p>
<h3 id="installing">Installing</h3>
<p>The GAUSS Time Series and Panel data tests library should only be installed and updated directly in GAUSS using the <a href="https://www.aptech.com/blog/gauss-package-manager-basics/">GAUSS package manager</a>.</p>
<p>Before using the functions created by <code>tspdlib</code> you will need to load the newly created <code>tspdlib</code> library. This can be done in a number of ways:</p>
<ul>
<li>Navigate to the library tool view window and click the small wrench located next to the <code>tspdlib</code> library. Select <strong>Load Library</strong>.  </li>
<li>Enter <code>library tspdlib</code> in the program input/output window.</li>
<li>Put the line <code>library tspdlib;</code> at the beginning of your program files.</li>
</ul>
<h3 id="examples">Examples</h3>
<p>After installing the library, examples for all available procedures can be found in your <strong>GAUSS</strong> home directory in the directory <strong>pkgs &gt; tspdlib &gt;examples</strong>. The example uses <strong>GAUSS</strong> and .csv datasets which are included in the <strong>pkgs &gt; tspdlib &gt;examples</strong> directory.</p>
<h3 id="using-gauss-packages">Using GAUSS Packages</h3>
<p>For more information on how to make the best use of the TSPDLIB, please see our blog, <a href="https://www.aptech.com/blog/using-gauss-packages-complete-guide/">Using GAUSS Packages Complete Guide</a>.</p>
<h2 id="example-applications">Example Applications</h2>
<ol>
<li><a href="https://www.aptech.com/blog/a-guide-to-conducting-cointegration-tests/">A Guide to Conducting Cointegration Tests</a></li>
<li><a href="https://www.aptech.com/blog/how-to-conduct-unit-root-tests-in-gauss/">How to Conduct Unit Root Tests in GAUSS</a></li>
<li><a href="https://www.aptech.com/blog/panel-data-structural-breaks-and-unit-root-testing/">Panel data, structural breaks, and unit root testing</a></li>
<li><a href="https://www.aptech.com/blog/unit-root-tests-with-structural-breaks/">Unit Root Tests with Structural Breaks</a></li>
<li><a href="https://www.aptech.com/blog/how-to-run-the-maki-cointegration-test-video/" target="_blank" rel="noopener">How to Run the Maki Cointegration Test (Video)</a></li>
<li><a href="https://www.aptech.com/blog/how-to-run-the-fourier-lm-test-video/" target="_blank" rel="noopener">How to Run the Fourier LM Test (Video)</a></li>
</ol>
<p></p>]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/new-release-tspdlib-3-0-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GAUSS 23</title>
		<link>https://www.aptech.com/blog/gauss23/</link>
					<comments>https://www.aptech.com/blog/gauss23/#respond</comments>
		
		<dc:creator><![CDATA[aptech]]></dc:creator>
		<pubDate>Wed, 07 Dec 2022 15:11:23 +0000</pubDate>
				<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11583074</guid>

					<description><![CDATA[The new GAUSS 23 is the most practical GAUSS yet! It's built with the intention to save you time on everyday research tasks like finding, importing, and modeling data. 

Learn about new features including:
<ul>
<li>New FRED and DBnomics data integrations.</li>
<li>Simplified data loading with intelligent type detection.</li>
<li>First-class dataframe storage.</li>
<li>Expanded quantile regressions.</li>
<li>Kernel density estimation.</li>
<li>and more ...</li>
<ul>]]></description>
										<content:encoded><![CDATA[<h3 id="introduction">Introduction</h3>
<p>The new GAUSS 23 is the most practical GAUSS yet! It's built with the intention to save you time on everyday research tasks like finding, importing, and modeling data. </p>
<p><a href="https://www.aptech.com/wp-content/uploads/2022/12/Shutterstock_1893823846-1-scaled.jpg"><img src="https://www.aptech.com/wp-content/uploads/2022/12/Shutterstock_1893823846-1-scaled.jpg" alt="People working at a computer." width="2560" height="1229" class="aligncenter size-full wp-image-11583207" /></a></p>
<h2 id="data-at-your-fingertips">Data at Your Fingertips</h2>
<p><a href="https://www.aptech.com/wp-content/uploads/2022/11/fred-load-ppi-w-logos-2.png"><img src="https://www.aptech.com/wp-content/uploads/2022/11/fred-load-ppi-w-logos-2.png" alt="Load data from DBnomics and FRED to GAUSS." width="656" height="394" class="aligncenter size-full wp-image-11583148" /></a></p>
<ul>
<li>Access millions of global economic and financial data series with FRED and DBnomics integration. </li>
<li>Aggregate, filter, sort, and transform FRED  data series during import. </li>
<li>Search FRED series from GAUSS.</li>
</ul>
<h3 id="load-data-from-anywhere-on-the-internet">Load Data from Anywhere on the Internet</h3>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Load an Excel file from the aptech website
file_url = "https://www.aptech.com/wp-content/uploads/2019/03/skincancer2.xlsx";
skin_cancer = loadd(file_url);

// Print the first 5 rows of the dataframe
head(skin_cancer);</code></pre>
<pre>       State       Lat       Mort      Ocean        Long
     Alabama        33        219          1          87
     Arizona      34.5        160          0         112
    Arkansas        35        170          0        92.5
  California      37.5        182          1       119.5
    Colorado        39        149          0       105.5</pre>
<h2 id="simplified-data-loading-with">Simplified Data Loading with...</h2>
<h3 id="automatic-type-detection">Automatic Type Detection</h3>
<p><strong>Previous versions</strong> required formula strings with keywords to specify date, string, and categorical variables from some file types.</p>
<p><a href="https://www.aptech.com/wp-content/uploads/2022/12/g23-load-variables-1.png"><img src="https://www.aptech.com/wp-content/uploads/2022/12/g23-load-variables-1.png" alt="Code to load variables into GAUSS." width="1600" height="390" class="aligncenter size-full wp-image-11583209" /></a></p>
<p><strong>Smart data type detection in GAUSS 23</strong> figures out the variable type so you do not have to specify it manually. Automatically detects nearly 40 popular date formats.</p>
<p><a href="https://www.aptech.com/wp-content/uploads/2022/12/Screen-Shot-2022-12-06-at-8.12.15-AM-1.png"><img src="https://www.aptech.com/wp-content/uploads/2022/12/Screen-Shot-2022-12-06-at-8.12.15-AM-1.png" alt="" width="1600" height="160" class="aligncenter size-full wp-image-11583201" /></a></p>
<h3 id="automatic-header-and-delimiter-detection">Automatic Header and Delimiter Detection</h3>
<p>Replace old code like this:</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">load X[127,4] = mydata.txt;</code></pre>
<p>with</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">X = loadd("mydata.txt");</code></pre>
<p>Automatically handles</p>
<ul>
<li>Present or absent header row.</li>
<li>Delimiter (tab, comma, semi-colon or space).</li>
<li>Number of rows and columns.</li>
<li>Variable types.</li>
</ul>
<h2 id="first-class-dataframe-storage">First-Class Dataframe Storage</h2>
<p><a href="https://www.aptech.com/wp-content/uploads/2022/11/g23-gdat-save-load-6.jpg"><img src="https://www.aptech.com/wp-content/uploads/2022/11/g23-gdat-save-load-6.jpg" alt="Loading and saving GAUSS dataframes." width="580" height="430" class="aligncenter size-full wp-image-11583152" /></a></p>
<p>No new code to learn, just use the <code>.gdat</code> file extension with <a href="https://docs.aptech.com/gauss/loadd.html"><code>loadd</code></a> and <a href="https://docs.aptech.com/gauss/saved.html"><code>saved</code></a> to load and store your dataframes.</p>
<p><br/></p>
<hr>
<div style="text-align:center">Questions? <a href="https://www.aptech.com/book-an-expert">Book some time</a>  with one of our friendly GAUSS experts</div>
<hr>
<h2 id="expanded-quantile-regressions">Expanded Quantile Regressions</h2>
<p><a href="https://www.aptech.com/wp-content/uploads/2019/01/quantile_regression_percent_below.png"><img src="https://www.aptech.com/wp-content/uploads/2019/01/quantile_regression_percent_below.png" alt="Graph of quantile regression." width="600" height="300" class="aligncenter size-full wp-image-19342" /></a></p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">hitters = loadd("islr_hitters.xlsx"); 

tau = 0.90;

call quantileFit(hitters, "ln(salary) ~ AtBat + Hits + HmRun", tau);</code></pre>
<pre>Linear quantile regression

===============================================================================
Valid cases:                 263            Dependent variable:     ln_salary_
Missing cases:                 0               Deletion method:           None
Number variables:              3                       DF model              3
DF residuals                 259<br />
===============================================================================

                 Name    Coeff.  Standard   t-value  P &gt;|t|      lb       ub
                                  Error<br />
-------------------------------------------------------------------------------
Tau = 0.90<br />

              CONSTANT    6.285    0.194   32.433    0.0000    5.905    6.664
                 AtBat   -0.001    0.002   -0.737    0.4621   -0.004    0.002
                  Hits    0.008    0.005    1.526    0.1281   -0.002    0.018
                 HmRun    0.017    0.009    1.951    0.0521   -0.000    0.034</pre>
<ul>
<li>New kernel estimated variance-covariance matrix. </li>
<li>Up to 4x speed improvement. </li>
<li>Expanded model diagnostics including pseudo R-squared, coefficient t-statistics and p-values, and degrees of freedom.</li>
</ul>
<h2 id="kernel-density-estimations">Kernel Density Estimations</h2>
<p><a href="https://www.aptech.com/wp-content/uploads/2022/11/g23-kernel-density.jpg"><img src="https://www.aptech.com/wp-content/uploads/2022/11/g23-kernel-density.jpg" alt="" width="600" height="400" class="aligncenter size-full wp-image-11583097" /></a></p>
<ul>
<li>Estimate unknown probability functions with 13 available kernels. </li>
<li>Automatic or user-specified bandwidth.</li>
<li>Kernel density plots with easy-to-use options for customization. </li>
</ul>
<hr>
<div style="text-align:center"><a href="https://www.aptech.com/request-demo/">Start your free trial!</a></div>
<hr>
<h2 id="improved-covariance-computations">Improved Covariance Computations</h2>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Load data
fname = getGAUSShome("examples/auto2.dta");
auto = loadd(fname);

// Declare control structure
struct olsmtControl ctl;
ctl = olsmtControlCreate();

// Turn on residuals
ctl.res = 1;

// Turn on HAC errors
ctl.cov = "hac";

call olsmt(auto, "mpg ~ weight + foreign", ctl); </code></pre>
<pre>Valid cases:                    74      Dependent variable:                 mpg
Missing cases:                   0      Deletion method:                   None
Total SS:                 2443.459      Degrees of freedom:                  71
R-squared:                   0.663      Rbar-squared:                     0.653
Residual SS:               824.172      Std error of est:                 3.407
F(2,71):                    69.748      Probability of F:                 0.000
Durbin-Watson:               2.421

                                  Std                 Prob      Std    Cor with
Variable            Estimate     Error     t-value    &gt;|t|      Est    Dep Var
-------------------------------------------------------------------------------

CONSTANT             41.6797    1.8989     21.95     0.000      ---         ---
weight              -0.00659    0.0006    -11.99     0.000   -0.885   -0.807175
foreign: Foreign    -1.65003    0.9071    -1.819     0.073   -0.131    0.393397

Note: HAC robust standard errors reported</pre>
<ul>
<li>New procedure for computing Newey-West HAC robust standard errors. </li>
<li>All robust covariance procedures now include the option to turn off small sample corrections. </li>
<li>Expanded dataframe and formula string compatibility. </li>
</ul>
<h2 id="new-functions-for-data-cleaning-and-exploration">New Functions for Data Cleaning and Exploration</h2>
<h3 id="between"><a href="https://docs.aptech.com/gauss/between.html">between</a></h3>
<p>Returns a binary vector indicating which observations fall in a specified range. It can be used with <a href="https://docs.aptech.com/gauss/selif.html"><code>selif</code></a> to select rows. Dates and ordinal categorical columns are supported.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Return a 1 if the observation is between the listed dates
match = between(unemp[.,"DATE"], "2020-03", "2020-08");

// Select the matching observations
unemp = selif(unemp, match);</code></pre>
<pre>            DATE        UNRATE
      2020-03-01        4.4000
      2020-04-01        14.700
      2020-05-01        13.200
      2020-06-01        11.000
      2020-07-01        10.200
      2020-08-01        8.4000</pre>
<h3 id="where"><a href="https://docs.aptech.com/gauss/where.html">where</a></h3>
<p>Provides a convenient and intuitive way to combine or modify data. It returns elements from either <code>a</code> or <code>b</code> depending upon <code>condition</code>.</p>
<pre class="hljs-container hljs-container-solo"><code class="lang-gauss">// Daily hotel room price
hotel_price = { 238, 405, 405, 329, 238 };

// Daily temperature forecast
temperature = { 89, 94, 110, 103, 97 };

// Decrease the price by 10% if the
// temperature will be more than 100 degrees
new_price = where(temperature .&gt; 100,
                hotel_price .* 0.9,
                hotel_price);</code></pre>
<pre>new_price = 238 405 364.50 296.10 238</pre>
<ul>
<li>Explore sample symmetry and tails with <a href="https://docs.aptech.com/gauss/skewness.html"><code>skewness</code></a> and <a href="https://docs.aptech.com/gauss/kurtosis.html"><code>kurtosis</code></a> functions. </li>
<li>Test for normality using the new <a href="https://docs.aptech.com/gauss/jarquebera.html"><code>JarqueBera</code></a> function.</li>
</ul>
<h2 id="speed-ups-and-efficiency-improvements">Speed-ups and Efficiency Improvements</h2>
<ul>
<li>Up to 10x speed-up and 50% decrease in memory usage for lag creation with <a href="https://docs.aptech.com/gauss/shiftc.html"><code>shiftc</code></a> and <a href="https://docs.aptech.com/gauss/lagn.html"><code>lagn</code></a>.</li>
<li>Up to 2x speed-up (or more for large data) and 50% decrease in memory usage for <a href="https://docs.aptech.com/gauss/missmissrv.html"><code>miss</code></a>, <a href="https://docs.aptech.com/gauss/missmissrv.html"><code>missrv</code></a>.</li>
<li>Up to 2x speed-up (or more for large data) and 50% decrease in memory usage for element-by-element mathematical (<code>+</code>, <code>-</code>, <code>.*</code>, <code>./</code>), relational (<code>.&gt;</code>, <code>.&lt;</code>, <code>.&gt;=</code>, <code>.&lt;=</code>, <code>.==</code>, <code>.!=</code>) and logical (<code>.and</code>, <code>.not</code>, <code>.or</code>, <code>.xor</code>) operators.</li>
<li>Up to 100x speed-up for some cases with <a href="https://docs.aptech.com/gauss/indsav.html"><code>indsav</code></a>.</li>
<li>Up to 40% speed-up for <a href="https://docs.aptech.com/gauss/reclassify.html"><code>reclassify</code></a>.</li>
<li>Up to 3x speed-up for loading Excel® files with <code>loadd</code> and the Data Import Window.</li>
</ul>
<h3 id="conclusion">Conclusion</h3>
<p>For a complete list of all GAUSS 23 offers please see the complete <a href="https://docs.aptech.com/gauss/changelog.html" target="_blank" rel="noopener">changelog</a>. </p>
<div style="text-align:center;background-color:#455560;color:#FFFFFF">
<hr>
<h3 id="discover-how-gauss-23-can-help-you-make-your-mark">Discover how GAUSS 23 can help you make your mark</h3>
 
<div class="lp-cta">
    <a href="https://www.aptech.com/book-an-expert" class="btn btn-primary">Talk with an expert</a>
    <a href="https://www.aptech.com/request-quote/" class="btn btn-primary btn-quote">Request pricing</a>
</div><hr>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/gauss23/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Time Series MT 3.1.1 Update</title>
		<link>https://www.aptech.com/blog/update-time-series-mt-3-1-1-update/</link>
					<comments>https://www.aptech.com/blog/update-time-series-mt-3-1-1-update/#respond</comments>
		
		<dc:creator><![CDATA[Eric]]></dc:creator>
		<pubDate>Mon, 18 Jul 2022 05:35:24 +0000</pubDate>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[Time Series]]></category>
		<guid isPermaLink="false">https://www.aptech.com/?p=11582591</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.aptech.com/wp-content/uploads/2021/01/simple-unit-root-minimal-30.png"><img src="https://www.aptech.com/wp-content/uploads/2021/01/simple-unit-root-minimal-30.png" alt="" width="1784" height="722" class="alignnone size-full wp-image-11580779" /></a></p>
<h2 id="introduction">Introduction</h2>
<p>The GAUSS TSMT application module provides a comprehensive suite of tools for MLE and state-space estimation, model diagnostics, and forecasting of univariate, multivariate, and nonlinear time series models.</p>
<p>The latest Time Series MT (TSMT) 3.1. is now available. If you own <a href="https://store.aptech.com/gauss-applications-category/time-series-mt.html">TSMT 3.0</a> the update is available for free. </p>
<h2 id="installation">Installation</h2>
<p>The TSMT update requires GAUSS 20+ and can be installed using the <a href="https://www.aptech.com/blog/gauss-package-manager-basics/">GAUSS Package Manager</a>. </p>
<h2 id="change-log">Change Log</h2>
<ol>
<li>New function: A new <code>tsdiff</code> function replaces <a href="https://docs.aptech.com/gauss/tsmt/vmdiffmt.html">vmdiffmt</a> and <a href="https://docs.aptech.com/gauss/tsmt/vmsdiffmt.html">vmsdiffmt</a> for differencing time series data.</li>
<li>Enhancement: Significant speed enhancements made to the Kalman filtering routine. </li>
<li>Documentation: New <a href="https://docs.aptech.com/gauss/tsmt/index.html">online TSMT command reference library</a> posted. </li>
<li>Bug Fix: Removed extra zero value element from the <a href="https://docs.aptech.com/gauss/tsmt/kalmanfilter.html">Kalman filter</a> log-likelihood vector. </li>
<li>Bug Fix: The <a href="https://docs.aptech.com/gauss/tsmt/arimass.html">arimaSS</a> and <a href="https://docs.aptech.com/gauss/tsmt/sarimass.html">sarimaSS</a> ML covariance computation was turned on.</li>
</ol>]]></content:encoded>
					
					<wfw:commentRss>https://www.aptech.com/blog/update-time-series-mt-3-1-1-update/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
