public void getReport(double alpha) { Forms.RunningProcess.frmRunningProcessDialog rd = new Forms.RunningProcess.frmRunningProcessDialog(false); rd.Text = "GLM Results"; rd.TopLevel = true; rd.pgbProcess.Visible = false; rd.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable; rd.addMessage("Dependent field = " + DependentFieldNames[0]); rd.addMessage("Independent fields = " + String.Join(", ", IndependentFieldNames)); rd.addMessage("Sample size = " + SampleSize.ToString()); rd.addMessage("Iteration = " + Iterations.ToString()); rd.addMessage("Delta Convergence " + DeltaC.ToString()); rd.addMessage("Chi-Sqr = " + ChiSquare.ToString() + " p-value = " + PValue.ToString()); rd.addMessage("Deviance = " + Deviance.ToString()); rd.addMessage("Log Likelihood = " + LogLikelihood.ToString()); rd.addMessage("Log Likelihood Ratio = " + LogLikelihoodratio.ToString() + "\n\nCoefficents and standard errors:\n"); rd.addMessage("Param: Intercept, " + String.Join(", ", IndependentFieldNames)); rd.addMessage("Coef: " + string.Join(", ", (from double d in Coefficients select d.ToString()).ToArray())); rd.addMessage("STE: " + string.Join(", ", (from double d in StdError select d.ToString()).ToArray()) + "\n"); try { if (ModelHelper.chartingAvailable() && System.Windows.Forms.MessageBox.Show("Do you want to build distribution graphs?", "Graphs", System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { createRegChart(); } } catch { System.Windows.Forms.MessageBox.Show("Cannot create charts."); } rd.Show(); rd.enableClose(); }
public string writeModel(string outModelPath) { outPath = outModelPath; using (System.IO.StreamWriter sw = new System.IO.StreamWriter(outPath)) { sw.WriteLine(modelTypes.GLM.ToString()); sw.WriteLine(InTablePath); sw.WriteLine(String.Join(",", IndependentFieldNames)); sw.WriteLine(String.Join(",", DependentFieldNames)); sw.WriteLine(String.Join(",", ClassFieldNames)); sw.WriteLine(SampleSize.ToString()); sw.WriteLine(NumberOfVariables.ToString()); sw.WriteLine(Iterations.ToString()); sw.WriteLine(DeltaC.ToString()); sw.WriteLine(LogLikelihood); sw.WriteLine(LogLikelihoodratio); sw.WriteLine(PValue.ToString()); sw.WriteLine(Deviance.ToString()); sw.WriteLine(ChiSquare.ToString()); sw.WriteLine(linkfunction.ToString()); sw.WriteLine(String.Join(" ", (from double d in Coefficients select d.ToString()).ToArray())); sw.WriteLine(String.Join(" ", (from double d in StdError select d.ToString()).ToArray())); sw.WriteLine(String.Join(" ", (from double d in waldTestValues select d.ToString()).ToArray())); sw.WriteLine(String.Join(" ", (from double d in waldTestPValues select d.ToString()).ToArray())); sw.WriteLine(String.Join(" ", (from double d in minValues select d.ToString()).ToArray())); sw.WriteLine(String.Join(" ", (from double d in maxValues select d.ToString()).ToArray())); sw.WriteLine(String.Join(" ", (from double d in sumValues select d.ToString()).ToArray())); sw.Close(); } return(outPath); }
public override void SaveParamsForReport() { ReportGenerator g = ReportGenerator.Instance; g.ClearReflModelInfo(); int arrayconst = 2; List <string> ginfo = new List <string>(); if (HoldsigmaCB) { ginfo.Add("The reflectivity curve was fit with a single roughness parameter\n"); } else { ginfo.Add(String.Format("The reflectivity curve was fit with {0} roughness parameters\n", BoxCountTB + 1)); arrayconst = 3; } ginfo.Add("Percent Error in Q: " + QSpreadTB.ToString() + "\n"); ginfo.Add("Normalization Factor: " + NormalizationFactor.ToString() + "\n"); ginfo.Add("Low Q Offset: " + LowQOffset.ToString() + "\n"); ginfo.Add("High Q Offset: " + HighQOffset.ToString() + "\n"); ginfo.Add("Superphase SLD: " + SubphaseSLDTB.ToString() + "\n"); ginfo.Add("Subphase SLD: " + SubphaseSLD.ToString() + "\n"); ginfo.Add("Wavelength: " + WavelengthTB.ToString() + "\n"); ginfo.Add("Chi Square for reflectivity fit: " + ChiSquare.ToString() + "\n"); ginfo.Add(string.Format("The subphase roughness was: {0:#.### E-0} " + (char)0x00B1 + " {1:#.### E-0}\n", SubRoughTB, CovarArray[0])); for (int i = 0; i < BoxCountTB; i++) { ginfo.Add((i + 1).ToString()); ginfo.Add(LengthArray[i].ToString("#.### E-0") + " " + (char)0x00B1 + " " + CovarArray[arrayconst * i + 1].ToString("#.### E-0")); if (!m_bUseSLD) { ginfo.Add(RhoArray[i].ToString("#.### E-0") + " " + (char)0x00B1 + " " + CovarArray[arrayconst * i + 2].ToString("#.### E-0")); } else { ginfo.Add((RhoArray[i] * SubphaseSLDTB).ToString("#.### E-0") + " " + (char)0x00B1 + " " + (CovarArray[arrayconst * i + 2] * SubphaseSLDTB).ToString("#.### E-0")); } if (HoldsigmaCB) { ginfo.Add(SigmaArray[i].ToString("#.### E-0") + " " + (char)0x00B1 + " " + CovarArray[0].ToString("#.### E-0")); } else { ginfo.Add(SigmaArray[i].ToString("#.### E-0") + " " + (char)0x00B1 + " " + CovarArray[arrayconst * i + 3].ToString("#.### E-0")); } } g.SetReflModelInfo = ginfo; }
public override string StochFit(double[] parampercs, int iterations) { double[] parameters = null; string chosenchisquare = string.Empty; MakeParameters(ref parameters, false); double[] ParamArray = new double[1000 * parameters.Length]; double[] ChiSquareArray = new double[1000]; double[] CovarArray = new double[1000 * parameters.Length]; double[] locinfo = new double[9 * 1000]; int Size = 0; InfoStruct = new BoxModelSettings(); SetInitStruct(ref InfoStruct, parampercs); InfoStruct.Iterations = iterations; NativeMethods.ConstrainedStochFit(InfoStruct, parameters, CovarArray, parameters.Length, locinfo, ParamArray, ChiSquareArray, ref Size); //Not ideal, will always back up regardless of whether the new model is accepted or not BackupArrays(); if (ModelChooser != null) { if (ModelChooser(ParamArray, ChiSquareArray, CovarArray, locinfo, Size, parameters.Length, InfoStruct)) { } } UpdateProfile(); InfoStruct.Dispose(); return(ChiSquare.ToString("##.### E-0")); }
public void ValidateToString() { var n = new ChiSquare(1.0); Assert.AreEqual("ChiSquare(DoF = 1)", n.ToString()); }
public override string MakeChiSquare() { ChiSquare = HelperFunctions.MakeChiSquare(ReflData.Instance.GetReflData, ReflectivityMap, ReflData.Instance.GetRErrors, HighQOffset, LowQOffset, ParamSize()); return(ChiSquare.ToString("#.### E-0")); }
public override string MakeChiSquare() { ChiSquare = HelperFunctions.MakeChiSquare(RealRho, ElectronDensityArray, null, 0, 0, ParamSize()); return(ChiSquare.ToString("##.### E-0")); }