Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        //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;
        }
Ejemplo n.º 6
0
        //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;
        }