WordPress vs. Google Analytics in top 10 posts

In a previous blog post, I looked at how the top 10 JMP blog posts from 2011 held up over time and hinted toward the discrepancy between WordPress counts and Google Analytics. While I didn’t have historic WordPress counts for those blog posts, it's much easier for the posts released in 2014 since all started with view counts of zero -- much easier to make a direct comparison. I thought the Google Analytics Pageviews over the same period of time would presumably be highly correlated with the WordPress views. In particular, when the Top 10 JMP Blogs of 2014 via WordPress views were revealed last month, I expected the Google Analytics list should look the same. If the lists were identical, there wouldn’t be much point in writing up a blog entry. So without further ado, let’s take a look at the top 10 JMP blog posts of 2014 according to Google Analytics:

  1. Determining chemical concentration with standard addition: An application of linear regression in JMP by Eric Cai
  2. Strengths and weaknesses of spreadsheets – part 2 by Charles Pirrello
  3. #OneLessPie chart on Pi Day by Xan Gregg
  4. An eggciting designed eggsperiment by Ryan Lekivetz
  5. Why spreadsheets can lead to error - part 1 by Charles Pirrello
  6. The eggciting results of my designed eggsperiment by Ryan Lekivetz
  7. Two kinds of dot plots by Xan Gregg
  8. Holiday book gift ideas for the analytically minded by Anne Milley
  9. JMP Pro for linear mixed models - part 1 by Jian Cao
  10. What is an Alias Matrix? by Ryan Lekivetz

The differences

Four of the top 10 are different. What’s also striking is that the blog post with the most WordPress views doesn’t even show up on the Google Analytics list (to be fair, it is No. 11), whereas the No. 2 post, according to Google Analytics, didn’t show up on the WordPress list.

If you read through how WordPress calculates views and how Google Analytics makes calculations, you would think these would be closer. However, taking a look at a scatterplot of WordPress vs. Google views for the JMP blogs from 2014 (top 10 via Google are bolded), we see that’s not really the case.


What’s even more alarming is the scale of the number of views. Over the course of the year, the total number of WordPress views are about nine times that of Google Analytics.

Any readers with experience between the discrepancies? How do your counts compare? Next time, I’ll take a further look at the data to see if any information can highlight some of these differences.

Post a Comment

Coming in JMP 12: Interactive HTML Profiler

The Prediction Profiler, or simply Profiler, allows you to explore cross sections of predicted responses across multiple factors. It gives you a wealth of information about your model, and in JMP 12, you can export it to interactive HTML pages to share with others who do not have JMP. The Profiler shown below was created using the Drug.jmp data set.

Interactive HTML Profiler

Two predicted Y variables versus 3 Drugs and a continuous factor, x.

The new Interactive HTML Profiler provides the options that were previously available in exporting to Flash (the same subset of JMP functions, categorical and continuous reference factors, mixture constraints, etc.) plus the following new features:

  • Using HTML5 technology, you can use the interactive Profiler on mobile devices that were unable to display the Flash version.
  • You can export Remembered Settings that you apply to the Profiler to communicate to your audience model prediction profiles for key factor settings.
  • Prediction Profilers that appear embedded within the Fit Model Least Squares platform can be exported as part of the larger interactive report (as seen below).
Interactive HTML mixture constraint profiler

Fit model results for a famous mixture experiment

The figure above is created using the Fish Patty.jmp data set and resulted from running the included Model script. It shows off a number of the new features in JMP 12, including an embedded Profiler with mixture constraints, and highlights the mobile-friendly user interface.

Editor's note: This post is part of a series of previews of JMP 12 written by the people who develop the software.

Post a Comment

What aspiring data analysts need to know

hildebrandWe have featured many academic thought leaders on our Analytically Speaking webcast series over the last three years. “Academic” may be a primary way to categorize these notable professors and researchers, but they are also often accomplished authors and consultants, giving them some very interesting perspectives on a wide variety of topics.

A few good reasons to tune in to see our next Analytically Speaking guest, Christian Hildebrand, post-doctoral research fellow and project leader at the University of St. Gallen in Switzerland, one of the Financial Times top-ranked business schools: Christian shares what it takes to prepare students for efficient and effective data analysis in the real world. He also talks about synergies with business and academic collaborations, the growing opportunities with social data, and more.

Because most of Christian’s research springs from real business problems and because he is passionate about engaging students with data and problem-solving skills as well as presentation skills, it’s no surprise that a wide variety of viewers are registering. These are the sorts of titles we typically attract to view Analytically Speaking webcasts.

Screen Shot 2015-02-02 at 12.25.13 PM

(As we are in the midst of a blog series featuring new things in JMP 12, we wanted to highlight a few more. Creating this tree map with JMP 12 was greatly streamlined by the handy enhanced Recode feature, which developer James Preiss posted about recently. It’s also nice to now have the squarify option for tree maps in Graph Builder to order the areas by size to more easily see largest and smallest groups.)

Christian is a fan of experimenting in the classroom and in industrial settings as part of his research, but he may not always use the word, “experiment.” In this preview video below, you can hear him talk about why many managers think of “experiment” as a red flag. He suggests other terminology that managers may more readily accept. Christian was also kind enough to do a German-version preview video and webcast, which will air this summer.


If you can’t tune in for the webcast premiere on Feb. 18, you can always catch the on-demand version, which usually posts the next day. And for those of you who want to hear it auf deutsch, please check the live and on-demand links on our German site.

Post a Comment

Coming in JMP 12: Interactive HTML Bubble Plot

JMP 11 provided the ability to create an interactive Flash version of the Bubble Plot platform. Our customers wanted us to provide the same functionality using interactive HTML so they would be able to share their bubble plots with colleagues using iPads. They would no longer need to tell their colleagues to download and install a plugin to interact with our browser-based bubble plots. So, JMP 12 includes Interactive HTML Bubble Plots.

The Bubble Plot platform in JMP provides rich customizability and more user interaction than any report previously supported in interactive HTML reports. Our goal in JMP 12 was to provide as much of this functionality as possible while keeping the user interface familiar and easy to use on mobile devices.

In developing the Interactive HTML Bubble Plot, our approach was to:

  • Replicate the most important features of the desktop experience.
  • Replace user controls with more mobile-friendly controls.
  • Take advantage of the interactive HTML mobile improvements mentioned in Heman Robinson's blog post.

Here's a side-by-side comparison of a desktop Bubble Plot platform and the interactive HTML version.


This is just one of many types of bubble plots you can create with JMP 12. To get a better sense of the extent of customizability and interaction available with the Interactive HTML Bubble Plot, we've prepared a gallery of samples at our website.

Please try these samples using your favorite desktop or mobile web browser and let us know what you think. Thanks.

Post a Comment

New JMP Journal Packager Add-In now available

JMP Journals are a great way to share the results of your analyses. One particularly nice feature of using a journal is that you can include links to as many supporting files as you like.

These supporting files do not have to be in the same directory — they can be anywhere. While this increases the flexibility of the file-linking feature, it does introduce some potential complications; perhaps at one time or another you have asked yourself one or both of the following:

  • What should I do when I would like to share my journal with others? Is it possible to “package” the journal automatically?
  • I might have moved some of the linked files. How can I tell whether all of the links in my journal are intact, without testing them all?

The new Journal Packager Add-In, now available at the JMP User Community’s File Exchange (a free SAS.com profile is required to get the add-in), addresses both of these needs.

The add-in allows you to package a journal for easy sharing: After you select a journal to be packaged, the add-in creates a timestamped folder in the location of your choosing, and copies into it all of the files needed by the journal, along with a copy of the journal, modified to use localized file references.

All that remains is for you to zip up all of the files in the folder and share as desired. When a recipient unzips the compressed file, the journal and the files it refers to will all be in the same folder. And the journal will work as intended, provided the recipient has JMP, of course.

If a broken link is encountered during the copying process, a “file did not exist” error will be written to an error log. If a file has more than one link in the journal, it will be copied only once: An “already present” error will be written to the log as subsequent links are encountered.

Even if you’re not planning on sharing your journal, the logging feature can be used to determine whether all of the links in your journal are intact: If a log containing at least one “file did not exist” error is written, the original journal has one or more broken links.

I hope this add-in will make your life a little easier as you work with and share JMP journals — head over to the File Exchange and try it out!

Post a Comment

Using JSL to select the first or last record in a set

When considering my professional life, I'm a relative newcomer to JMP. In fact, my JMP and JSL (JMP Scripting Language) experience began the day I became a developer here in the JMP Life Sciences group, about four years ago. In contrast, I've been using SAS since I was an undergraduate student in mathematics, giving me more than 20 years of experience. Though there are a lot of differences between the two languages, one of the things I enjoy most about my job is using this very large and rich toolset to develop cool new features for JMP Clinical.

Even though I have access to both JMP and SAS, I sometimes find myself wondering how to replicate a feature in SAS using JSL. The subject of this blog post is how to replicate the SAS data step behavior to select first and last records within by groups. In SAS, this is performed by first sorting the data and using special keywords within the data step. For example, if I had the Big Class data table formatted in SAS and wanted to choose the first boy and girl alphabetically, the program below would accomplish this:

proc sort data = bigclass;
   by sex name;
data first;
   set bigclass;
   by sex name;
   if first.sex;

To choose the last boy and girl alphabetically, I would use if last.sex;.   Similar logic applies if I wanted to select first and last within additional by groups. Say, I wanted to pick the shortest person for each name within gender, the following would do that:

proc sort data = bigclass;
   by sex name height;
data first;
   set bigclass;
   by sex name height;
   if first.name;

My colleague Brady Brady was kind enough to help me solve this within JSL using Col Min() and Col Max(). Figure 1 contains a sample data set. The original data only included Letter (A through J) and Letter 2 (A through D). The data table is sorted by these two variables. You can see below that First.Letter is equal to 1 for the first instance of each letter in Letter (0 otherwise); Last.Letter is a 1 for the last instance of each letter in Letter (0 otherwise). The formulas for these variables is as follows:

First.Letter = If( Row() == Col Minimum( Row(), :Letter ),
Last.Letter = If( Row() == Col Maximum( Row(), :Letter ),

To interpret these formulas, the Col M**imum() functions are using :Letter as a by group and getting the minimum or maximum row numbers within each value of Letter. The If() function sets First.Letter = 1 if the current row number equals the :Letter-specific minimum row number. Note that if a particular value for :Letter only had a single row, that record would be considered both the first and the last, with First.Letter = 1 and Last.Letter = 1 

Figure 1. Data Table FirstLast

Figure 1. Data Table FirstLast

Similar to the above code for SAS, this can be extended for multiple by variables. Say I wanted to select the first instance of each letter of Letter2 within Letter, I simply add an additional byvar to the function.

First.Letter2 = If( Row() == Col Minimum( Row(), :Letter, :Letter2 ),
Last.Letter2 = If( Row() == Col Maximum( Row(), :Letter, :Letter2 ),

These functions have a useful feature in that it allows you to easily subset to by groups where duplicates occur.  Selecting rows where First.Letter = 0 or Last.Letter = 0 will select all rows where :Letter is repeated. In the context of Big Class, using these functions on :Height can allow you to create a subtable where specific heights may be repeated.

Note that in SAS, a sort is required to create the special first.XX last.XX variables.  Though the data table above is sorted, this is not a requirement for the JSL code above to work.

Many thanks to Brady Brady for his help!

Post a Comment

Coming in JMP 12: Process Capability

Process capability analysis is an essential part of Six Sigma and many other quality initiatives that are used in a wide variety of industries. It assesses how well a stable process is performing relative to its specifications and helps quality practitioners understand the current state of their process so they can make adjustments and reduce process variation, thereby improving quality and consistency.

Because process capability analysis is so important for achieving and maintaining high quality, we decided to make improvements to process capability in JMP 12. We designed a new Process Capability platform to make process capability analysis easier and more effective by adding more options, increasing flexibility and modernizing the graphs. The two central ideas that steered our development in the new platform were the following:

  1. Process capability analysis should reflect the type of control chart used in the statistical process control program.
  2. The potential performance of a process (sometimes referred to as short-term capability) and the past performance of the process (sometimes referred to as long-term capability) should be available alongside each other.

The new Process Capability platform that will be introduced in JMP 12 provides all of the options that are available in the current Capability platform (the goal plot, capability box plots, normalized box plots, summary reports and individual detail reports) plus the following new features:

  1. A process can be subgrouped by grouping columns or constant subgroup sizes, reflecting X-Bar control charts.
  2. Both within and overall variation are computed. Within variation is the variation within subgroups and is used to analyze potential performance (sometimes referred to as short-term variation). Within variation is the process variation computed in X-Bar and R, X-Bar and S, and I-MR charts. Overall variation is the variation of the total process and is used to analyze past performance (sometimes referred to as long-term variation).
  3. The capability indices reports and most graphs are available for both types of variation. In the individual detail report, the distributions for both within and overall variation can be graphed on a histogram of the data.
  4. Data table values that are outside of specifications can be selected and colored.

The Process Capability platform is designed to help users analyze multiple processes at one time. However, because it is important to analyze process capability in conjunction with process control charts, we have also added the individual detail report that is given in the new Process Capability Platform to the Control Chart Builder platform. The figure below shows this individual detail report that is available in both the new Process Capability Platform and Control Chart Builder Platform. This example uses the coating.jmp sample data table and gives the process capability analysis for weight using the sample column as the subgrouping column.


Individual Detail Report in the Process Capability Platform


Editor's note: This post is part of a series of previews of JMP 12 written by the people who develop the software.

Post a Comment

JMP for ethanol producers

JMP for ethanol producers

JMP for ethanol producers

I recently presented at a webinar on "The Power of Data: Harnessing Ethanol Plant Information for Increased Profitability." This talk followed on the heels of an article, "Putting Data to Work," in Ethanol Producer Magazine in December. The article discussed JMP use at Phibro Ethanol Performance Group, Heron Lake Bioenergy and Novozymes.

Ethanol customers find that JMP is a huge time saver. It speeds up the access, analysis and reporting of ethanol data. That, in turn, helps improve quality, increase yields and create better experiments. My presentation covered several case studies in the ethanol and bioenergy fields where JMP was used to great effect to quickly find results that can improve profitability.

Slides from my presentation are available online. And you can watch the full webinar at your convenience -- my presentation is the first 15 minutes or so.

Post a Comment

Coming in JMP 12: Selection Filtering

Interactivity has always been a key feature of JMP that enables discovery through both data exploration and report generation. Transform Columns keep you "in the flow" during initial exploration. Interactive features in reports, such as brushing and selection linking between tables and reports, allow you to continue to ask questions throughout the analysis. The Local Data Filter and Column Switcher streamline this process, allowing you to interactively subset or change analysis variables without having to recreate a report. JMP 12 introduces the Selection Filter, which further enhances the interactive report generation process by filtering one set of graphs or reports based on the selection performed in another set of graphs.

Data Filters 


Figure 1: A Local Data Filter controls the subset for a single report

Data filters are commonly used to explore subsets of data based on specified criteria. As shown in Figure 1, the Local Data Filter in JMP provides interfaces for filtering data based on the values in one or more columns. Using a Local Data Filter allows you to explore subsets of the data within a given report without affecting the source data table or other reports that are dependent on the same table.

Common workflow scenarios often involve multiple analyses linked together. For example, you may want to see a distribution of values in a column before deciding which subset to analyze. In previous versions of JMP, this process could be performed manually by creating subset tables and multiple reports. The manual approach can lead to a large number of windows being created for data tables and reports, requiring more mental bookkeeping to understand the analysis. With JSL scripting, it would be possible to streamline the process and provide a more cohesive workflow presentation. Using Selection Filters in JMP 12, this type of workflow can be configured interactively within JMP and saved for future use and sharing with colleagues.

 Selection Filters


Figure 2: Selection in the Treemap determines the data to be analyzed in the Oneway report

Selection Filters are similar to Local Data Filters, but they use one or more graphs in place of the traditional filter interface. Rather than using selection linking to share the selection state with the data table and other reports, a Selection Filter uses a private selection state that is independent of the data table and other reports. This private selection is then used to determine which rows to include in the filtered graph.

Figure 2 demonstrates the use of a treemap as a filter for a Oneway analysis. The treemap shows all of the data, while the Oneway report is filtered to show only the rows that are selected in the treemap. As in the case of the traditional data filter, if nothing is selected in the filter, then all of the data will be shown in the filtered platform.

Figure 3: Two filter graphs provide multiple way to select and visualize the subset of interest.

Figure 3: Two filter graphs provide multiple ways to select and visualize the subset of interest.

Selection Filters are not limited to using a single graph within the filter or a single report that is being filtered. Figure 3 illustrates the use of two platforms within the same Selection Filter. The map provides a way to select individual states, while the region histogram provides a way to select states by group. In this example, the two reports are linked to the same selection, so that selection in either graph is reflected in the other, while the filtered Graph Builder shows only the selected data. It is also possible to link selection filters hierarchically, creating a filter that successively narrows the subset of interest based on selection in multiple graphs.

Linking multiple platforms together using a Selection Filter provides a streamlined analysis flow -- you choose both how to select the data of interest and how to view or analyze the subset. The combination enhances the power of each platform. Consider the possibility of using a hierarchical clustering platform as a Selection Filter. By linking another platform to the selection in the cluster hierarchy, you can interactively create a customized application that displays meaningful cluster diagnostics.

In a future blog post, I will demonstrate the process for creating a Selection Filter in JMP 12. Please comment on combinations of graphs or analyses that you frequently use together or would like to see explored. The combinations and applications are vast. I look forward to hearing your ideas!

Editor's note: This post is part of a series of previews of JMP 12 written by the people who develop the software.

Post a Comment

Coming in JMP 12: Interactive HTML for mobile devices

Our goals for interactive HTML reports in JMP 12 were to support the Bubble Plot, the Profiler and mobile devices. Many customers want to share JMP reports with colleagues on iPad or Android tablets, but these devices have different requirements than the desktops.

In JMP 11, we exported interactive HTML as a desktop web app. Like most websites, this functioned on tablets but was not optimal. For example, buttons and other controls were difficult to hit on touch screens, especially on the smaller devices. In JMP 12, we built a mobile user interface that ensures that buttons and other controls are sized and positioned appropriately.

In JMP 11, we could not support multiple selection or brushing on tablets, because tablets support different interactions than desktops, and they do not have Ctrl or Shift keys. In JMP 12, we support multiple selection and brushing by toggle buttons, in a header at the top of the interactive HTML report. (In desktop browsers, you can still use your Ctrl or Shift key, and it will do what you expect.)


In JMP 11, we relied on mobile devices to simulate desktop interactions, which introduces a 1/3 second delay on every interaction. In JMP 12, we respond to mobile interactions directly, eliminating the delay. This makes performance snappier, much more pleasurable, because our software works at the customer's speed.

Finally, in JMP 11, we focused on publishing the basic features of JMP reports. In JMP 12, we added a mobile-friendly menu system, to enable customers to interact with our interactive HTML Bubble Plot and Profiler and other platforms. This menu system also gives us a growth path to support even more interactivity in future releases.


These static images give you a look at the reports, but there is no substitute for interacting with them directly. To see more, please try our examples, and let us know what you think!

We look forward to hearing customer reaction to our JMP 12 interactive HTML reports, and your suggestions for future improvements. Thanks!

Editor's note: This post is part of a series of previews of JMP 12 written by the people who develop the software.

Post a Comment