/*
* HyTest1PopMeanDialog.java
*
* Created on May 27, 2008, 12:41 PM
*/
package org.statcato.dialogs.stat.hytest;
import org.statcato.*;
import org.statcato.spreadsheet.*;
import org.statcato.statistics.inferential.*;
import org.statcato.utils.HelperFunctions;
import java.util.*;
import javax.swing.*;
import org.statcato.statistics.BasicStatistics;
/**
* A dialog for testing claims about a population mean for the case
* population standard deviation is known and the case when it is unknown.
* Allows the user to specify data samples in a column of a Datasheet,
* or provide summary data values. The user must also provide
* the confidence level, alternative hypothesis, and hypothesized mean.
* Computes and displays in log window the significance level,
* critical value, test statistic, and p-Value.
*
* @author Margaret Yau
* @version %I%, %G%
* @see org.statcato.statistics.inferential.HypothesisTest1MeanSigmaUnknown
* @see org.statcato.statistics.inferential.HypothesisTest1MeanSigmaKnown
*
* @since 1.0
*/
public class HyTest1PopMeanDialog extends StatcatoDialog {
/** Creates new form HyTest1PopMeanDialog */
public HyTest1PopMeanDialog(java.awt.Frame parent, boolean modal,
Statcato mTab) {
super(parent, modal);
initComponents();
app = mTab;
ParentSpreadsheet = app.getSpreadsheet();
ButtonGroup group1 = new ButtonGroup();
group1.add(SampleRadioButton);
group1.add(SummaryRadioButton);
ButtonGroup group2 = new ButtonGroup();
group2.add(KnownRadioButton);
group2.add(UnknownRadioButton);
ButtonGroup group3 = new ButtonGroup();
group3.add(SigRadioButton);
group3.add(ConfRadioButton);
ParentSpreadsheet.populateComboBox(ColumnComboBox);
getRootPane().setDefaultButton(OKButton);
setHelpFile("stat-hytest-mean");
name = "Hypothesis Test: 1-Population Mean";
description = "For performing calculations for testing claims about a population mean.";
helpStrings.add("If individual samples are entered in a single column " +
"of the datasheet, select the Samples in column: radio button, " +
"and select the column name in the drop-down menu.");
helpStrings.add("To use summary statistics of the sample data, " +
"select the Summarized sample data: radio button, and " +
"input the sample size, mean, and standard deviation " +
"in the provided text fields.");
helpStrings.add("Indicate whether the population standard deviation " +
"is known.");
helpStrings.add("Specify the significance or confidence level.");
helpStrings.add("Select the form of the alternative hypothesis " +
"and enter the hypothesized population mean in the provided text box.");
}
/**
* Updates elements on the dialog so that they have the most
* current values. Called by {@link #setVisible} to make
* sure the dialog displays current values when made visible again.
*
* @see #setVisible(boolean)
*/
@Override
public void updateElements() {
updateComboBox(ColumnComboBox);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// //GEN-BEGIN:initComponents
private void initComponents() {
OKButton = new javax.swing.JButton();
CancelButton = new javax.swing.JButton();
jPanel1 = new javax.swing.JPanel();
sTextField = new javax.swing.JTextField();
SampleMeanTextField = new javax.swing.JTextField();
sLabel = new javax.swing.JLabel();
ColumnComboBox = new javax.swing.JComboBox();
SampleMeanLabel = new javax.swing.JLabel();
SampleSizeTextField = new javax.swing.JTextField();
SampleRadioButton = new javax.swing.JRadioButton();
SampleSizeLabel = new javax.swing.JLabel();
SummaryRadioButton = new javax.swing.JRadioButton();
jPanel2 = new javax.swing.JPanel();
SigmaTextField = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
KnownRadioButton = new javax.swing.JRadioButton();
jLabel4 = new javax.swing.JLabel();
UnknownRadioButton = new javax.swing.JRadioButton();
jPanel3 = new javax.swing.JPanel();
SigLabel = new javax.swing.JLabel();
ConfidenceTextField = new javax.swing.JTextField();
ConfRadioButton = new javax.swing.JRadioButton();
SigRadioButton = new javax.swing.JRadioButton();
SigTextField = new javax.swing.JTextField();
ConfLabel = new javax.swing.JLabel();
jPanel4 = new javax.swing.JPanel();
HyMeanTextField = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
AltComboBox = new javax.swing.JComboBox();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Hypothesis Test: 1-Population Mean");
OKButton.setText("OK");
OKButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
OKButtonActionPerformed(evt);
}
});
CancelButton.setText("Cancel");
CancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
CancelButtonActionPerformed(evt);
}
});
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Inputs"));
sTextField.setEnabled(false);
SampleMeanTextField.setEnabled(false);
sLabel.setText("Standard deviation:");
sLabel.setEnabled(false);
SampleMeanLabel.setText("Mean:");
SampleMeanLabel.setEnabled(false);
SampleSizeTextField.setEnabled(false);
SampleRadioButton.setSelected(true);
SampleRadioButton.setText("Samples in column:");
SampleRadioButton.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
SampleRadioButtonStateChanged(evt);
}
});
SampleSizeLabel.setText("Size:");
SampleSizeLabel.setEnabled(false);
SummaryRadioButton.setText("Summarized sample data:");
SummaryRadioButton.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
SummaryRadioButtonStateChanged(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(SampleRadioButton)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(21, 21, 21)
.addComponent(ColumnComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(SummaryRadioButton)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(13, 13, 13)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(SampleMeanLabel)
.addComponent(SampleSizeLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(SampleSizeTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE)
.addComponent(SampleMeanTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 68, Short.MAX_VALUE)
.addComponent(sTextField)))
.addComponent(sLabel))))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(SampleRadioButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(ColumnComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(SummaryRadioButton)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(SampleSizeLabel)
.addComponent(SampleSizeTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(SampleMeanLabel)
.addComponent(SampleMeanTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(sLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(sTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Population Standard Deviation"));
SigmaTextField.setEnabled(false);
jLabel5.setText("- use z distribution");
jLabel7.setText("- use t distribution");
KnownRadioButton.setText("Known:");
KnownRadioButton.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
KnownRadioButtonStateChanged(evt);
}
});
jLabel4.setText("Population standard deviation:");
UnknownRadioButton.setSelected(true);
UnknownRadioButton.setText("Unknown");
UnknownRadioButton.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
UnknownRadioButtonStateChanged(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(12, 12, 12)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(KnownRadioButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(SigmaTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(UnknownRadioButton))
.addGap(26, 26, 26)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel5)
.addComponent(jLabel7))))
.addContainerGap(20, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(SigmaTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(KnownRadioButton)
.addComponent(jLabel5))
.addGap(5, 5, 5)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(UnknownRadioButton)
.addComponent(jLabel7))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Significance"));
SigLabel.setText("0 - 1.00 (e.g. 0.05)");
ConfidenceTextField.setText("0.95");
ConfidenceTextField.setEnabled(false);
ConfidenceTextField.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
ConfidenceTextFieldFocusLost(evt);
}
});
ConfRadioButton.setText("Confidence Level:");
ConfRadioButton.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
ConfRadioButtonStateChanged(evt);
}
});
SigRadioButton.setSelected(true);
SigRadioButton.setText("Significance Level:");
SigRadioButton.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
SigRadioButtonStateChanged(evt);
}
});
SigTextField.setText("0.05");
SigTextField.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
SigTextFieldFocusLost(evt);
}
});
ConfLabel.setText("0 - 1.00 (e.g. 0.95)");
ConfLabel.setEnabled(false);
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addComponent(ConfRadioButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(ConfidenceTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(SigRadioButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(SigTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(SigLabel)
.addComponent(ConfLabel))
.addContainerGap())
);
jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {ConfidenceTextField, SigTextField});
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(6, 6, 6)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(SigRadioButton)
.addComponent(SigTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(SigLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ConfidenceTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ConfRadioButton)
.addComponent(ConfLabel))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Alternative Hypothesis"));
jLabel3.setText("Alternative Hypothesis:");
jLabel2.setText("Hypothesized Mean:");
AltComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Less than", "Not Equal to", "Greater than" }));
AltComboBox.setSelectedIndex(1);
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(AltComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(HyMeanTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(AltComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(HyMeanTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(7, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(33, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(OKButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(CancelButton)
.addGap(347, 347, 347))
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {CancelButton, OKButton});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(39, 39, 39)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(CancelButton)
.addComponent(OKButton))
.addContainerGap())
);
pack();
}// //GEN-END:initComponents
private void OKButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_OKButtonActionPerformed
app.compoundEdit = new DialogEdit("hypothesis test 1 mean");
int n = 0, typeTest = 0;
double s = 0, mean = 0, confidenceLevel = 0, mu = 0;
Vector ColumnVector = new Vector();
String heading = "Hypothesis Test - One Population Mean:";
String text = "";
if (ConfRadioButton.isSelected()) {
// get confidence level from dialog
try {
confidenceLevel = Double.parseDouble(ConfidenceTextField.getText());
} catch (NumberFormatException e) {
app.showErrorDialog("Enter a number between 0 and 1 for the confidence level.");
return;
}
if (confidenceLevel <= 0 || confidenceLevel >= 1) {
app.showErrorDialog("Enter a number between 0 and 1 for the confidence level.");
return;
}
}
else {
// get confidence level from dialog
try {
confidenceLevel = 1 - Double.parseDouble(SigTextField.getText());
} catch (NumberFormatException e) {
app.showErrorDialog("Enter a number between 0 and 1 for the significance level.");
return;
}
if (confidenceLevel <= 0 || confidenceLevel >= 1) {
app.showErrorDialog("Enter a number between 0 and 1 for the significance level.");
return;
}
}
heading += " confidence level = " +
String.format("%."+
HelperFunctions.getNumDecimalPlaces(ConfidenceTextField.getText())+"f",
confidenceLevel);
// get input
if (SampleRadioButton.isSelected()) {
// get data for selected input column
String columnLabel = ColumnComboBox.getSelectedItem().toString();
if (columnLabel.equals("")) { // no input variable
app.showErrorDialog("Select the input column.");
return;
}
int column = ParentSpreadsheet.parseColumnNumber(columnLabel);
Vector StrColumnVector = ParentSpreadsheet.getColumn(column);
ColumnVector = HelperFunctions.ConvertInputVectorToDoubles(StrColumnVector);
if (ColumnVector == null) {
app.showErrorDialog("Invalid input column " + columnLabel +
": all data must be numbers.");
return;
}
text += "Input: " + columnLabel + " ";
n = BasicStatistics.Nnonmissing(ColumnVector);
mean = BasicStatistics.mean(ColumnVector).doubleValue();
s = BasicStatistics.stdev(ColumnVector).doubleValue();
} else {
// get summary data
try {
n = Integer.parseInt(SampleSizeTextField.getText());
mean = Double.parseDouble(SampleMeanTextField.getText());
} catch (NumberFormatException e) {
app.showErrorDialog("Invalid summary data.");
return;
}
text += "Input: Summary data" + " ";
}
// get hypothesized mean
try {
mu = Double.parseDouble(HyMeanTextField.getText());
}
catch (NumberFormatException e) {
app.showErrorDialog("Enter a valid number for the hypothesized mean.");
return;
}
// get type of test
typeTest = AltComboBox.getSelectedIndex();
if (KnownRadioButton.isSelected()) { // sigma known
text += "σ known (using z distribution) ";
try {
double sigma = Double.parseDouble(SigmaTextField.getText());
text += "Assumed population standard deviation σ = " + sigma + " ";
HypothesisTest1MeanSigmaKnown ht = new
HypothesisTest1MeanSigmaKnown(n, mu, sigma,
confidenceLevel, typeTest);
text += "Null hypothesis: μ = " + mu + " ";
text += "Alternative hypothesis: μ ";
if (typeTest == HypothesisTest.LEFT_TAIL)
text += "<";
else if (typeTest == HypothesisTest.RIGHT_TAIL)
text += ">";
else
text += "≠";
text += " " + mu + " ";
text += "
";
text += "N Sample Mean Stdev σ ";
text += "Significance Level Critical Value " +
"Test Statistic " + "p-Value ";
text += "" + n + " " +
HelperFunctions.formatFloat(mean, 3) + " " +
HelperFunctions.formatFloat(sigma, 3) + " " +
HelperFunctions.formatFloat(1-confidenceLevel, 2) +
" " + ht.criticalValue()
+ " " + HelperFunctions.formatFloat(ht.testStatistics(mean), 3)
+ " " + HelperFunctions.formatFloat(ht.pValue(mean), 4)
+ " ";
} catch (NumberFormatException e) {
app.showErrorDialog("Enter a valid population standard deviation.");
return;
}
} else { // sigma unknown
text += "σ unknown (using t distribution) ";
if (SummaryRadioButton.isSelected()) {
try {
s = Double.parseDouble(sTextField.getText());
} catch (NumberFormatException e) {
app.showErrorDialog("Enter a valid sample standard deviation.");
return;
}
}
//text += "Sample standard deviation s = " + s + " ";
HypothesisTest1MeanSigmaUnknown ht = new
HypothesisTest1MeanSigmaUnknown(n, mu, s,
confidenceLevel, typeTest);
text += "Null hypothesis: μ = " + mu + " ";
text += "Alternative hypothesis: μ ";
if (typeTest == HypothesisTest.LEFT_TAIL)
text += "<";
else if (typeTest == HypothesisTest.RIGHT_TAIL)
text += ">";
else
text += "≠";
text += " " + mu + " ";
text += "
";
text += "N Sample Mean Stdev s ";
text += "Significance Level Critical Value " +
"Test Statistic " + "p-Value ";
text += "" + n + " " +
HelperFunctions.formatFloat(mean, 3) + " " +
HelperFunctions.formatFloat(s, 3) + " " +
HelperFunctions.formatFloat(1-confidenceLevel, 2) +
" " + ht.criticalValue()
+ " " + HelperFunctions.formatFloat(ht.testStatistics(mean), 3)
+ " " + HelperFunctions.formatFloat(ht.pValue(mean), 4)
+ " ";
}
app.addLogParagraph(heading, text);
app.compoundEdit.end();
app.addCompoundEdit(app.compoundEdit);
setVisible(false);
}//GEN-LAST:event_OKButtonActionPerformed
private void CancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CancelButtonActionPerformed
setVisible(false);
}//GEN-LAST:event_CancelButtonActionPerformed
private void SampleRadioButtonStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_SampleRadioButtonStateChanged
if (SampleRadioButton.isSelected()) {
ColumnComboBox.setEnabled(true);
} else {
ColumnComboBox.setEnabled(false);
}
}//GEN-LAST:event_SampleRadioButtonStateChanged
private void SummaryRadioButtonStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_SummaryRadioButtonStateChanged
if (SummaryRadioButton.isSelected()) {
SampleSizeLabel.setEnabled(true);
SampleSizeTextField.setEnabled(true);
SampleMeanLabel.setEnabled(true);
SampleMeanTextField.setEnabled(true);
if (UnknownRadioButton.isSelected()) {
sLabel.setEnabled(true);
sTextField.setEnabled(true);
} else {
sLabel.setEnabled(false);
sTextField.setEnabled(false);
}
} else {
SampleSizeLabel.setEnabled(false);
SampleSizeTextField.setEnabled(false);
SampleMeanLabel.setEnabled(false);
SampleMeanTextField.setEnabled(false);
sLabel.setEnabled(false);
sTextField.setEnabled(false);
}
}//GEN-LAST:event_SummaryRadioButtonStateChanged
private void UnknownRadioButtonStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_UnknownRadioButtonStateChanged
if (UnknownRadioButton.isSelected()) {
if (SummaryRadioButton.isSelected()) {
sLabel.setEnabled(true);
sTextField.setEnabled(true);
} else {
sLabel.setEnabled(false);
sTextField.setEnabled(false);
}
} else {
sLabel.setEnabled(false);
sTextField.setEnabled(false);
}
}//GEN-LAST:event_UnknownRadioButtonStateChanged
private void KnownRadioButtonStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_KnownRadioButtonStateChanged
if (KnownRadioButton.isSelected()) {
SigmaTextField.setEnabled(true);
} else {
SigmaTextField.setEnabled(false);
}
}//GEN-LAST:event_KnownRadioButtonStateChanged
private void SigRadioButtonStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_SigRadioButtonStateChanged
if (SigRadioButton.isSelected()) {
SigTextField.setEnabled(true);
SigLabel.setEnabled(true);
}
else {
SigTextField.setEnabled(false);
SigLabel.setEnabled(false);
}
}//GEN-LAST:event_SigRadioButtonStateChanged
private void ConfRadioButtonStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_ConfRadioButtonStateChanged
if (ConfRadioButton.isSelected()) {
ConfidenceTextField.setEnabled(true);
ConfLabel.setEnabled(true);
}
else {
ConfidenceTextField.setEnabled(false);
ConfLabel.setEnabled(false);
}
}//GEN-LAST:event_ConfRadioButtonStateChanged
private void SigTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_SigTextFieldFocusLost
try {
String sigString = SigTextField.getText();
double sig = Double.parseDouble(sigString);
double conf = 1 - sig;
ConfidenceTextField.setText(
String.format("%."+HelperFunctions.getNumDecimalPlaces(sigString)+"f", conf));
}
catch (NumberFormatException e) {
}
}//GEN-LAST:event_SigTextFieldFocusLost
private void ConfidenceTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_ConfidenceTextFieldFocusLost
try {
String confString = ConfidenceTextField.getText();
double conf = Double.parseDouble(confString);
double sig = 1.0 - conf;
SigTextField.setText(
String.format("%."+HelperFunctions.getNumDecimalPlaces(confString)+"f", sig));
}
catch (NumberFormatException e) {
}
}//GEN-LAST:event_ConfidenceTextFieldFocusLost
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JComboBox AltComboBox;
private javax.swing.JButton CancelButton;
private javax.swing.JComboBox ColumnComboBox;
private javax.swing.JLabel ConfLabel;
private javax.swing.JRadioButton ConfRadioButton;
private javax.swing.JTextField ConfidenceTextField;
private javax.swing.JTextField HyMeanTextField;
private javax.swing.JRadioButton KnownRadioButton;
private javax.swing.JButton OKButton;
private javax.swing.JLabel SampleMeanLabel;
private javax.swing.JTextField SampleMeanTextField;
private javax.swing.JRadioButton SampleRadioButton;
private javax.swing.JLabel SampleSizeLabel;
private javax.swing.JTextField SampleSizeTextField;
private javax.swing.JLabel SigLabel;
private javax.swing.JRadioButton SigRadioButton;
private javax.swing.JTextField SigTextField;
private javax.swing.JTextField SigmaTextField;
private javax.swing.JRadioButton SummaryRadioButton;
private javax.swing.JRadioButton UnknownRadioButton;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JLabel sLabel;
private javax.swing.JTextField sTextField;
// End of variables declaration//GEN-END:variables
}
|
Ads help maintain this website.