public class WilcoxonSignedRankGUI
extends javax.swing.JFrame
implements java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.event.ItemListener
WilcoxonSignedRank - GUI Version |
The Wilcoxon Signed-Rank test is a non-parametric statistical procedure to assess the difference between two correlated samples, which is to say, between two conditions assigned within-subjects. The relationship with other non-parametric tests is illustrated below:
Design Conditions (samples) 2 3 or more Between-subjects
(independent samples)Mann-Whitney U Kruskal Wallis Within-subjects
(correlated samples)Wilcoxon
Signed-RankFriedman
The test is also called the Wilcoxon Matched-Pairs Signed-Rank Test. Without "Matched-Pairs" the test assumes one of the samples is a default or assumed score against which variations in the other sample are compared. Either way, the computations are identical.
The procedure involves first building an array of difference scores (the difference between pairs of values for each participant). Differences equal to zero are ignored (i.e., no difference). An array of ranks is then built from the array of difference scores. The ranks are tested to determine if there is a significant difference between the two conditions. More formally, the hypothesis evaluated is "whether or not in the underlying populations represented by the samples/experimental conditions, the median of the difference scores equals zero. If a significant difference is obtained it indicates there is a high likelihood the two samples/conditions represent two different populations" (D. J. Sheskin, Handbook of Parametric and Non-parametric Statistical Procedures, 5th ed., CRC Press, 2011, p. 809).
The test is intended for ordinal data, such as rankings, assessments, or questionnaire responses (where the responses are non-linear). Using the Wilcoxon Signed-Rank test (or other non-parametric tests) for interval or ratio data might be preferred over a parametric ANOVA if there is a concern over the underlying assumptions in the distribution of the data. The researcher must bear in mind, however, that the data transformation bears a cost: Information is sacrificed. For example, interval or ratio scores of 80, 79, and 49 are converted to ranks 1, 2, and 3. Yes, information is sacrificed.
Launch WilcoxonSignedRankGUI from GoStats as follows:
Example. Consider an experiment seeking to evaluate the "cool appeal" for two new designs of media players. Young tech-savvy individuals are of particular interest. Ten young tech enthusiasts are recruited and then given a demo of, and allowed to play with, each media player. At the end, they are asked to rate the media players on a 10-point scale (1 = not cool at all, 10 = really cool) with the assessments stored in a text file as a table, one row per participant, one column per media player (see wilcoxonsignedranks-ex1.txt ):
3 3 6 6 4 3 10 3 6 5 5 6 9 2 7 4 6 2 8 3
The mean responses (not shown) were 6.4 for media player #1 (left) and 3.7 for media player #2 (right). Evidently, the participants preferred media player #1 over media player #2. But, was the difference in responses statistically significant or was it just a chance outcome? To determine this, the Wilcoxon Signed-Rank test is used as follows:
The test statistic is a z-score. Since the customary threshold for statistical significance is exceeded ( p < .05), we conclude there is indeed a difference between the two media players in their "cool appeal".
The test also provides z' which is corrected for ties. The difference is minor. NOTE: Correcting for ties is with reference to the difference scores, not to the raw scores. For example, the 3rd and 5th rows have difference scores of 1 (4 - 3 = 1, 6 - 5 = 1), thus generating a tie in the ranks.
StatView provides the following output using the above data set:
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Modifier and Type | Method and Description |
---|---|
void |
actionPerformed(java.awt.event.ActionEvent ae) |
void |
focusGained(java.awt.event.FocusEvent fe) |
void |
focusLost(java.awt.event.FocusEvent fe) |
double |
getP1()
Return the p statistic (probability) for this
WilcoxonSignedRank object. |
double |
getP2()
Return the p statistic (probability) for this
WilcoxonSignedRank object. |
double[] |
getRanks(double[] d)
Given an array of data, return an array of ranks (handles ties).
|
double |
getZ1()
Return the z statistic for this
WilcoxonSignedRank object. |
double |
getZ2()
Return the z statistic for this
WilcoxonSignedRank object. |
void |
itemStateChanged(java.awt.event.ItemEvent ie) |
double |
mean(double[] n)
Calculate the mean of the values in a double array.
|
getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setTransferHandler, update
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public void actionPerformed(java.awt.event.ActionEvent ae)
actionPerformed
in interface java.awt.event.ActionListener
public void focusGained(java.awt.event.FocusEvent fe)
focusGained
in interface java.awt.event.FocusListener
public void focusLost(java.awt.event.FocusEvent fe)
focusLost
in interface java.awt.event.FocusListener
public void itemStateChanged(java.awt.event.ItemEvent ie)
itemStateChanged
in interface java.awt.event.ItemListener
public double getZ1()
WilcoxonSignedRank
object.public double getZ2()
WilcoxonSignedRank
object. The statistic is corrected for
ties.public double getP1()
WilcoxonSignedRank
object.public double getP2()
WilcoxonSignedRank
object. The statistic is
corrected for ties.public double[] getRanks(double[] d)
25, 75, 80, 81, 75the returned array contains
1.0, 2.5, 4.0, 5.0, 2.5
d
- a double arraypublic double mean(double[] n)
n
- a double array