private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { _smi = listBox1.SelectedIndex; if (_smi != _pmi) { if (_pmi == -1) { _state = _mlrState.clean; } else { _state = _mlrState.dirty; } _pmi = _smi; } else { _state = _mlrState.clean; } listView1.Items.Clear(); listView2.Items.Clear(); int idx = listBox1.SelectedIndex; MLRIndividual ind = (MLRIndividual)_list[idx]; _selectedModelIndex = idx; //tell the main form to enable the model save/saveas menu selection buttons OnModelSelected(null); string[] item = null; ListViewItem lvi = null; int numColumns = ind.Parameters.Columns.Count; for (int i = 0; i < ind.Parameters.Rows.Count; i++) { item = new string[numColumns]; item[0] = ind.Parameters.Rows[i][0].ToString(); item[1] = formatNumber((double)ind.Parameters.Rows[i][1]); item[2] = formatNumber((double)ind.Parameters.Rows[i][2]); item[3] = formatNumber((double)ind.Parameters.Rows[i][3]); item[4] = formatNumber((double)ind.Parameters.Rows[i][4]); item[5] = formatNumber((double)ind.Parameters.Rows[i][5]); lvi = new ListViewItem(item); listView1.Items.Add(lvi); } DataTable dt = _projMgr.ModelDataTable; int numRecords = dt.Rows.Count; if (numRecords != ind.PredictedValues.Length) return; List<double[]> data = new List<double[]>(); double[] record = null; for (int i = 0; i < numRecords; i++) { record = new double[2]; record[0] = Convert.ToDouble(dt.Rows[i][1].ToString()); record[1] = ind.PredictedValues[i]; data.Add(record); } //for plotting xyplot when transform radio buttons changed _XYPlotdata = data; item = new string[2]; item[0] = "R Squared"; item[1] = String.Format("{0:F4}", ind.R2); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Adjusted R Squared"; item[1] = String.Format("{0:F4}", ind.AdjustedR2); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Akaike Information Criterion"; item[1] = String.Format("{0:F4}", ind.AIC); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Corrected AIC"; item[1] = String.Format("{0:F4}", ind.AICC); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Bayesian Info Criterion"; item[1] = String.Format("{0:F4}", ind.BIC); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "PRESS"; item[1] = String.Format("{0:F4}", ind.Press); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "RMSE"; item[1] = String.Format("{0:F4}", ind.RMSE); lvi = new ListViewItem(item); listView2.Items.Add(lvi); if ((ind.DecisionThreshold != Double.NaN) && (ind.MandatedThreshold != Double.NaN)) { item = new string[2]; item[0] = ""; item[1] = ""; lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Decision Criterion"; item[1] = string.Format("{0:F4}", ind.DecisionThreshold); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Regulatory Standard"; item[1] = string.Format("{0:F4}", ind.MandatedThreshold); lvi = new ListViewItem(item); listView2.Items.Add(lvi); ModelErrorCounts mec = new ModelErrorCounts(); mec.getCounts(ind.DecisionThreshold, ind.MandatedThreshold, ind.PredictedValues, ind.ObservedValues); int fp = mec.FPCount; int fn = mec.FNCount; item = new string[2]; item[0] = "False Positives"; item[1] = string.Format("{0:n}", fp); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Specificity"; item[1] = String.Format("{0:F4}", ind.Specificity); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "False Negatives"; item[1] = string.Format("{0:n}", fn); lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Sensitivity"; item[1] = String.Format("{0:F4}", ind.Sensitivity); lvi = new ListViewItem(item); listView2.Items.Add(lvi); //item = new string[2]; //item[0] = "Specificity"; //item[1] = String.Format("{0:F4}", ind.Specificity); //lvi = new ListViewItem(item); //listView2.Items.Add(lvi); item = new string[2]; item[0] = "Accuracy"; item[1] = String.Format("{0:F4}", ind.Accuracy); lvi = new ListViewItem(item); listView2.Items.Add(lvi); //for reporting/plotting ThresholdChecked = true; } else { //for reporting/plotting ThresholdChecked = false; } item = new string[2]; item[0] = ""; item[1] = ""; lvi = new ListViewItem(item); listView2.Items.Add(lvi); item = new string[2]; item[0] = "Number of Observations"; item[1] = string.Format("{0}", numRecords); lvi = new ListViewItem(item); listView2.Items.Add(lvi); UpdateResults(data); mlrPredObs1.UpdateResults(data); //UpdateResults2(data); _projMgr.Model = ind.Model; _projMgr.ModelIndependentVariables = new List<string>(_projMgr.GetIndependentVariableList(ind.Chromosome)); SaveModelingInfo(); //if user selects a model in list.... _projMgr._comms.sendMessage("Show the MLR Prediction form.", this); //also want to show the residuals tab but don't need another call //_proj._comms.sendMessage("Show the Residuals form.", this); }
private void btnRun_Click(object sender, EventArgs e) { //Cursor curTmp = this.Cursor; //this.Cursor = Cursors.WaitCursor; //btnViewReport.Enabled = false; //btnViewRptChangeStatus(false); if (verifyGlobalModelingParams() == false) return; _state = _mlrState.dirty; _pmi = -1; if (btnRun.Text == "Run") { if (tabControlModelGeneration.SelectedTab.Name == "tabGA") { if (VerifyGAModelParams() == false) return; _projMgr.ModelDataTable = CreateModelDataTable(); _cancelRun = false; btnRun.Text = "Cancel"; changeControlStatus(false); RunGA(); } else if (tabControlModelGeneration.SelectedTab.Name == "tabManual") { if (VerifyManualModelParams() == false) return; _projMgr.ModelDataTable = CreateModelDataTable(); _cancelRun = false; btnRun.Text = "Cancel"; changeControlStatus(false); RunManual(); } else if (tabControlModelGeneration.SelectedTab.Name == "tabStepwise") { _projMgr.ModelDataTable = CreateModelDataTable(); //if (ForwardStepwise //RunStepwise(); } VBLogger.getLogger().logEvent("0", VBLogger.messageIntent.UserOnly, VBLogger.targetSStrip.ProgressBar); Application.DoEvents(); //bool validParams = SetModelData(); //if (validParams == false) // return; } else if (btnRun.Text == "Cancel") { _cancelRun = true; if (_gaManager != null) _gaManager.Cancel = true; if (_esManager != null) _esManager.Cancel = true; btnRun.Text = "Run"; changeControlStatus(true); Application.DoEvents(); return; } //if (tabControlModelGeneration.SelectedTab.Name == "tabGA") // RunGA(); //else if (tabControlModelGeneration.SelectedTab.Name == "tabManual") // RunManual(); //VBLogger.getLogger().logEvent("0", VBLogger.messageIntent.UserOnly, VBLogger.targetSStrip.ProgressBar); //this.Cursor = curTmp; //btnRun.Text = "Run"; Application.DoEvents(); }
private void btnRemoveInputVariable_Click(object sender, EventArgs e) { List<ListItem> items = new List<ListItem>(); for (int i = 0; i < lbIndVariables.SelectedIndices.Count; i++) { ListItem li = (ListItem)lbIndVariables.Items[lbIndVariables.SelectedIndices[i]]; items.Add(li); } foreach (ListItem li in items) { lbIndVariables.Items.Remove(li); bool foundIdx = false; int j = 0; for (j = 0; j < lbAvailableVariables.Items.Count; j++) { ListItem li2 = (ListItem)lbAvailableVariables.Items[j]; if (Convert.ToInt32(li2.ValueItem) > Convert.ToInt32(li.ValueItem)) { lbAvailableVariables.Items.Insert(j, li); foundIdx = true; break; } } if (foundIdx == false) lbAvailableVariables.Items.Insert(j, li); } SetCombinations(); lblAvailVars.Text = "(" + lbAvailableVariables.Items.Count.ToString() + ")"; lblDepVars.Text = "(" + lbIndVariables.Items.Count.ToString() + ")"; _state = _mlrState.dirty; initControls(); if (ResetIPyProject != null) { EventArgs args = new EventArgs(); ResetIPyProject(this, e); } }
private void btnAddInputVariable_Click(object sender, EventArgs e) { List<ListItem> items = new List<ListItem>(); int selectedIndices = lbAvailableVariables.SelectedIndices.Count; for (int i = 0; i < selectedIndices; i++) { ListItem li = (ListItem)lbAvailableVariables.Items[lbAvailableVariables.SelectedIndices[i]]; items.Add(li); } foreach (ListItem li in items) { lbAvailableVariables.Items.Remove(li); lbIndVariables.Items.Add(li); } SetCombinations(); lblAvailVars.Text = "(" + lbAvailableVariables.Items.Count.ToString() + ")"; lblDepVars.Text = "(" + lbIndVariables.Items.Count.ToString() + ")"; _state = _mlrState.dirty; initControls(); if (ResetIPyProject != null) { EventArgs args = new EventArgs(); ResetIPyProject(this, e); } }
//remove a variable from the independent listbox back to the available listbox private void btnRemoveInputVariable_Click(object sender, EventArgs e) { List<ListItem> items = new List<ListItem>(); //add all indep variables to the items list for (int i = 0; i < lbIndVariables.SelectedIndices.Count; i++) { ListItem li = (ListItem)lbIndVariables.Items[lbIndVariables.SelectedIndices[i]]; items.Add(li); } //add the selected variables back into available listbox foreach (ListItem li in items) { lbIndVariables.Items.Remove(li); bool boolFoundIdx = false; int intJ = 0; for (intJ = 0; intJ < lbAvailableVariables.Items.Count; intJ++) { ListItem li2 = (ListItem)lbAvailableVariables.Items[intJ]; if (Convert.ToInt32(li2.ValueItem) > Convert.ToInt32(li.ValueItem)) { lbAvailableVariables.Items.Insert(intJ, li); boolFoundIdx = true; break; } } if (boolFoundIdx == false) lbAvailableVariables.Items.Insert(intJ, li); } //SetCombinations(); lblAvailVars.Text = "(" + lbAvailableVariables.Items.Count.ToString() + ")"; lblDepVars.Text = "(" + lbIndVariables.Items.Count.ToString() + ")"; _state = _mlrState.dirty; }
//input variables are selected and ready to be added private void btnAddInputVariable_Click_1(object sender, EventArgs e) { List<ListItem> items = new List<ListItem>(); int intSelectedIndices = lbAvailableVariables.SelectedIndices.Count; //add each selected variable to items for (int i = 0; i < intSelectedIndices; i++) { ListItem li = (ListItem)lbAvailableVariables.Items[lbAvailableVariables.SelectedIndices[i]]; items.Add(li); } //remove from available variable list box to independent variable list box foreach (ListItem li in items) { lbAvailableVariables.Items.Remove(li); lbIndVariables.Items.Add(li); } //SetCombinations(); lblAvailVars.Text = "(" + lbAvailableVariables.Items.Count.ToString() + ")"; lblDepVars.Text = "(" + lbIndVariables.Items.Count.ToString() + ")"; _state = _mlrState.dirty; }