public List <IntervalEstimation> ResponsePointIntervalEstimate(double[] x, int[] v, double reponseProbability, double confidenceLevel, double fq, double favg, double fsigma)
            {
                List <IntervalEstimation> intervalEstimations = new List <IntervalEstimation>();

                if (fq != 0)
                {
                    reponseProbability = DistributionSelection.PointIntervalDistribution(StandardSelection.InverseProcessValue(fq), StandardSelection.InverseProcessValue(favg), fsigma);
                }
                var Single = SingleSideEstimation(x, v, reponseProbability, confidenceLevel);

                intervalEstimations.Add(GetIntervalEstimationValue(Single));
                var Double = DoubleSideEstimation(x, v, reponseProbability, confidenceLevel);

                intervalEstimations.Add(GetIntervalEstimationValue(Double));
                return(intervalEstimations);
            }
Esempio n. 2
0
            public SideReturnData BatchIntervalCalculate(double Y_Ceiling, double Y_LowerLimit, int Y_PartitionNumber, double ConfidenceLevel, double favg, double fsigma, double[] xArray, int[] vArray, int intervalChoose)
            {
                SideReturnData sideReturnData = new SideReturnData();
                double         Y_ScaleLength  = (DistributionSelection.QnormAndQlogisDistribution(Y_Ceiling) - DistributionSelection.QnormAndQlogisDistribution(Y_LowerLimit)) / Y_PartitionNumber;

                sideReturnData.responseProbability = new double[Y_PartitionNumber + 1];
                for (int i = 0; i <= Y_PartitionNumber; i++)
                {
                    if (i == 0)
                    {
                        sideReturnData.responseProbability[i] = Y_LowerLimit;
                    }
                    else
                    {
                        sideReturnData.responseProbability[i] = DistributionSelection.PointIntervalDistribution(DistributionSelection.QnormAndQlogisDistribution(Y_LowerLimit) + i * Y_ScaleLength, 0, 1);
                    }
                }
                sideReturnData.Y_Ceilings     = new double[sideReturnData.responseProbability.Length];
                sideReturnData.Y_LowerLimits  = new double[sideReturnData.responseProbability.Length];
                sideReturnData.responsePoints = new double[sideReturnData.responseProbability.Length];

                for (int i = 0; i < sideReturnData.responseProbability.Length; i++)
                {
                    IntervalEstimation ie = new IntervalEstimation();
                    if (intervalChoose == 0)
                    {
                        ie = SingleSideEstimation(xArray, vArray, sideReturnData.responseProbability[i], ConfidenceLevel);
                    }
                    else
                    {
                        ie = DoubleSideEstimation(xArray, vArray, sideReturnData.responseProbability[i], ConfidenceLevel);
                    }
                    sideReturnData.Y_LowerLimits[i] = ie.Confidence.Down;
                    sideReturnData.Y_Ceilings[i]    = ie.Confidence.Up;
                    double fq = sideReturnData.responseProbability[i];
                    sideReturnData.responsePoints[i] = StandardSelection.ProcessValue(StandardSelection.InverseProcessValue(favg) + (DistributionSelection.QnormAndQlogisDistribution(fq) * fsigma));
                }
                return(sideReturnData);
            }
Esempio n. 3
0
 public double ResponseProbabilityCalculate(double fq, double favg, double fsigma) => DistributionSelection.PointIntervalDistribution(StandardSelection.InverseProcessValue(fq), StandardSelection.InverseProcessValue(favg), fsigma);