A powerful extension to Mathcad for analyzing engineering data patterns and relationships.

Designed with industrial applications in mind, the Data Analysis Extension Pack delivers a powerful design solution for analyzing data patterns and relationships. It appeals to a broad base of professionals from engineers to statisticians to physicists to business analysts, all of whom rely on some sort of analyses of data in their field of work.

The Mathcad environment is ideal for exploratory data analysis (EDA) and what-if scenarios. The Data Analysis Extension Pack builds upon Mathcad’s superior technical design environment, so you can incorporate your data analysis work with publication-quality technical documents, graphs, and presentations created in Mathcad.

- Offers the latest technology in fitting algorithms for quicker, more robust, more accurate solutions.
- Adds functionality to Mathcad that enables importing of multiple and large-scale files in multiple file formats, including an interactive data preview to help you import complicated file formats correctly.
- Adds usability features for managing and searching data matrices.
- Demonstrates techniques for managing data effectively in Mathcad.

**Data Handling Capabilities **

Technical professionals gather data in various formats and from various types of systems, and they share common problems and requirements in a data analysis software tool, which this Mathcad add-on addresses, such as:

- Data from many different systems in many formats
- Multiple, large datasets with inconsistent column formatting and labeling/headers
- Data of very small or very large scale, making it difficult to fit
- Data with hundreds of measurements that must be reduced to a more compact representation
- Data with missing or suspected outliers
- Ability to evaluate data visually and qualitatively to determine the best course of analysis (EDA)

**Features**

- Data Import wizard component will allow you to read files in ASCII, fixed-width, binary, Excel, and other formats, preview contents, visually select rows and columns for import, choose fillers for missing values, and specify delimeters.
- Matrix utility functions for flexible table lookup, data ranking, and empirical maxima and minima searches.
- Statistical functions for EDA, outlier detection, and missing value NaN (not a number) support.
- Flexible nonparametric fitting algorithms (interpolation) using statistical methods to create optimal solutions, and returning more information about the fit.
- Robust, generalized parametric nonlinear fitting functions, which support weighting and constraints.
- Principal Component Analysis (PCA) functions for multivariate data using the Nipals algorithm.
- Probability plots, including normal and Weibull plots.
- File writing functions that can be used in program loops.
- Confidence limits, and demonstration of ANOVA for fitted parameters.
- Documentation that includes examples of commonly used analysis scenarios with real data, written in
- Mathcad for reuse.
- Detailed documentation of existing Mathcad functions for data analysis, in conjunction with Mathcad programs and Scriptable components, shows you new ways to use the already powerful toolset in Mathcad.

**A Complete Library of Mathcad Functions**

The Data Analysis Extension Pack provides the following capabilities:

**Utilities:**Functions that help you manipulate raw data matrices.**Statistics:**Functions that calculate statistical quantities for vectors and matrices of data.**Outliers:**Functions that detect, mark, and eliminate outliers from data for subsequent processing.**Regression:**Functions that perform parametric fits to data or return information on the quality of fit.**Splines:**Functions that interpolate between data points.

**Bicubic2D(vx,vy,Z,p,q)**

Interpolates between 2-D values in Z, with locations x and y, at intermediate points p and q. Example file.

**Binterp(x,b)**

Interpolates results b from Spline2 at point x, along with the first, second, and third derivatives.

**confidence(vx,vy,F,b,conf)**

Returns the confidence limits on the parameters b of a fitting function F(x,b) fit to the data vx and vy.

**contingbtl(M) **

Returns chi-squared, degrees of freedom, probability that chi-squared or larger would occur if variables had no association, Cramer’s V, and the contingency coefficient, C for a contingency table M.

**DWS(b) **

Takes a vector, b, the result vector from the Spline2 function and returns the Durbin-Watson statistic of the Spline.

**filterNaN(v) **

Trims the elements or rows or data that have NaNs.

**Ftest(v1,v2) **

Tests the hypothesis that v1 and v2 are drawn from distributions having the same variance. Returns the F statistic, and the probability that a value this large or larger would occur when the distributions have the same variance.

**Grubbs(v,a) **

Returns indices of suspected outliers, and their Grubbs test statistics for a confidence level a.

**GrubbsClassic(v,a) **

Returns index of the data point most likely to be an outlier and its Grubbs test statistic for a confidence level a.

**Hlookup(z,a,row,modifier) **

Looks in the first row of A for values matched by z according to the boolean modifier. Returns the value(s) in the matched column(s) in row r.

**IsNan **

Returns 1 if x is x is a NaN. Returns 0 otherwise.

**kendltau(v1,v2) **

Returns Kendall’s tau, number of standard deviations from 0, and the probability that a value this large or larger would occur if the samples were uncorrelated.

**kendltau2(M) **

Returns Kendall’s tau, number of standard deviations from 0, and the probability that a value this large or larger would occur if contingency table M were uncorrelated.

**LeastSquaresFit[vx,vy,F,guess,conf,(Stdy),(LBUB),(Acc)] **

Returns parameters and their confidence limits for the nonlinear fitting function F for the data vx and vy, for a confidence level conf, with optional standard deviations Stdy and optional lower and upper bounds on acceptable parameter values. Acc is the convergence accuracy.

**loadings(Nipals) **

Returns the loadings of the principal components (eigenvalues) from multivariate data returned by the Nipals function.

**localmax[M,(w)]
localmax[x,y,M,(w)] **

Returns the local maxima in data by nearest neighbor comparison, with an optional window width w of comparison points.

**localmin[M,(w)]
localmin[x,y,M,(w)] **

Returns the local minima in data by nearest neighbor comparison, with an optional window width w of comparison points.

**Lookup(z,A,B,modifier) **

Looks in A for values matched by z according to the boolean modifier. Returns the value(s) of the corresponding elements in B.

**markNaN(v,vindex) **

Changes each element in data specified by vindex to contain a NaN.

**Match(z,A,modifier) **

Returns the indices of entries in A which match z according to the boolean modifier.

**matchNaN(data) **

Returns the index or pair of indexes of the NaN entries in data.

**Nipals(DATA,numPC,maxiter,”scale/noscale”,ACC) **

Returns scores, loadings, accumulated variance explained, and principal components (eigenvalues) from multivariate data using a maximum of maxiter iterations. Acc specifies the termination accuracy used for eigenvalue generation. Data may be optionally scaled to the standard deviation.

**Nipals2(Nipals,numAddPC) **

Returns scores, loadings, accumulated variance explained, eigenvalues for numPC additional principal components (eigenvalues), given the results calculated by Nipals.

**order(v) **

Returns the index in which the entries of v occur if sorted, based on the current value of ORIGIN.

**PCAeigenvals(Nipals) **

Returns the principal components (eigenvalues) from multivariate data returned by the Nipals or Nipals2 function.

**PCAvariance(Nipals) **

Returns the accumulated percentage of variance explained by the calculated principal components (eigenvalues) returned by the Nipals or Nipals2 function.

**percentile(v,p)**

Returns the number of values in v below p percent of the total number of points.

**polycoeff(vx,vy)**

Returns the coefficients of the interpolating polynomial function.

**polyint(vx,vy,x)**

Returns interpolated value at x using a polynomial function, and the expected error.

**polyiter(vx,vy,x,N,?)**

Returns interpolated value at x using a polynomial function with maximum order N and maximum error, ?. Also returns the calculated error, and whether the function converged. (v1,[v2 or “distribution”])

**qqplot(v1,[v2 or “distribution”]) **

Returns points on a probability plot. If only v1 is specified, quantiles for v1 and the normal distribution are returned. If v2 is specifed, quantiles for v1 and v2 are returned. If ‘weibull’ is specified, returns natural log quantiles for v1 and the weibull quantiles.

**Rank(v) **

Returns the averaged position at which each value in v appears in a sorted list of the data.

**rationalfit[vy,vy,conf,m,n,(Stdy),(LBUB),(Acc),(“noscale”)] **

Returns parameters and their confidence limits for a rational polynomial fit of order m on the top and n on the bottom.

**rationalfitnp[vx,vy,conf,m,n,(Stdy),(LBUB),(Acc),(“noscale”)] **

same as rationalfit, but will return rational function parameters that have no poles in the data range, vx.

**rationalint(vx,vy,x) **

Returns interpolated value at x using rational functions, and the expected error.

**Scale(M,min,max) **

Scales all values in M between min and max.

**scores(Nipals)**

Returns the scores of the principal components (eigenvalues) from multivariate data returned by the Nipals or Nipals2 function.

**Spear(v1,v2) **

Returns Spearman’s rank correlation coefficient and associated statistics.

**Spline[vx,vy,n,(vw),(u),(level)] **

Returns the optimal set of order-n B-spline knots to interpolate on data vx and vy, with optional weights vw, optional desired knots u, and an optional reject level. Output is used with Binterp.

**Thiele(vx,coeff,x) **

Returns the interpolated data value at x using Thiele continued fraction interpolation. Requires the coefficients calculated by Thielecoeff.

**Thielecoeff(vx,vy) **

Returns the interpolation coefficients for x-y data using Thiele continued fraction interpolation. Output is used with Thiele.

**ThreeSigma(v) **

Returns indices of points in v whose mean divided by standard deviation is greater than three (outlier test), and the value of this quantity for each point.

**trim(v,vindex) **

Trims out the entries (rows) specified by vindex.

**VHlookup(z1,z2,A,c,modifier) **

Looks in the first row and column of A for values matched by z1 and z2 according to the boolean modifier. Returns the value(s) in the intersection of matched rows and columns.

**vhlookup(z1,z2,A) **

Looks in the first row and column of A for values matched by z1 and z2. Returns the value(s) in the intersection of matched rows and columns.

**Vlookup(z,A,c,modifier) **

Looks in the first column of a matrix, A, for values matched by z according to the boolean modifier. Returns the value(s) in the matched row(s) in column c.

**VSmooth(v,w) **

Takes a vector of complex-valued data, a vector of integer window-widths, w, and repeatedly median smooths data until no additional change has occurred for each window width.

**Availability**

The Mathcad Data Analysis Extension Pack is part of the Mathcad core product, available here.