Below is the example of using the SetMs operation to edit equation parameters. The request contains an instance of opened modeling container, parameters of operation execution, equation settings for theARIMA method, and the pattern for getting changed data. After execution the operation returns the model that contains the changed equation.
{
"SetMs" :
{
"tMs" :
{
"id" : "ONDFKOICJHLBFOAEMAMOIGEBJKAFNFKELKAMBGOCBIMLMHNP!M!S!CBPKKEPICJHLBFOAEKGAEHCFEAMLKMLFELJEKHGMDDGIFELEG"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"item" :
{
"key" : "89669",
"problem" :
{
"metamodel" :
{
"calculationChain" : "Change"
}
}
}
},
"meta" :
{
"item" :
{
"k" : "89669",
"type" : "Problem",
"problemMd" :
{
"metamodel" :
{
"calculationChain" :
{
"its" :
{
"Item" :
{
"k" : "3",
"type" : "Model",
"model" :
{
"transform" :
{
"formulas" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"kind" : "Arima",
"method" :
{
"arima" :
{
"maxIteration" : "600",
"constantMode" : "ManualEstimate",
"constantValue" : "5.7",
"missingData" :
{
"method" : "SpecifiedValue",
"specifiedValue" : "4.7"
},
"confidenceLevel" : "0.96",
"ARMA" :
{
"parseAR" :
{
"value" : "1-3",
"assignOrder" : "true"
},
"parseMA" :
{
"value" : "1-3",
"assignOrder" : "true"
},
"parseARSeas" :
{
"value" : "1,4",
"assignOrder" : "true"
},
"parseMASeas" :
{
"value" : "1,3",
"assignOrder" : "true"
},
"initAR" :
{
"d" : "0.0025"
},
"initMA" :
{
"d" : "0.0025"
},
"initIntercept" : "3",
"estimationMethod" : "GaussNewton",
"diff" : "2",
"diffSeas" : "0",
"initARSeas" :
{
"d" : "0.003"
},
"initMASeas" :
{
"d" : "0.0015"
},
"periodSeas" : "4",
"useAnalyticDeriv" : "true",
"useBackCast" : "false"
}
},
"name" : "ARIMA",
"inversionInfo" :
{
"type" : "PCH",
"lag" : "PrecidingValue",
"previousLag" : "2"
}
}
}
]
}
}
}
}
}
}
}
}
}
}
},
"metaGet" :
{
"obInst" : "true",
"scenarios" : "Get",
"period" : "true",
"item" :
{
"key" : "89669",
"problem" :
{
"metamodel" :
{
"calculationChain" : "Get",
"mmParams" : "Get",
"tag" : "true",
"calcChainPattern" :
{
"modelPattern" :
{
"transform" :
{
"inputs" : "Get",
"outputs" : "Get",
"formulaCount" : "true",
"formulas" :
{
"method" : ""
},
"equationsFormula" :
{
"method" : ""
},
"series" : "Get",
"kind" : "true",
"transformVariable" :
{
"slices" : "Get",
"transformSlice" :
{
"selection" : "Get"
}
}
}
}
},
"visualControllerPattern" :
{
"variableRubricatorKey" : "true",
"useSourceName" : "false",
"levelFormat" : "Short"
}
},
"scenarios" : "Get",
"details" : "true",
"useSavedCoefficients" : "false"
}
}
}
}
}
}
{
"SetMsResult" :
{
"id" :
{
"id" : "ONDFKOICJHLBFOAEMAMOIGEBJKAFNFKELKAMBGOCBIMLMHNP!M!S!CBPKKEPICJHLBFOAEKGAEHCFEAMLKMLFELJEKHGMDDGIFELEG"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@fullUrl" : "http:\/\/v-shp-development.dev.fs.fsight.world\/",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "3",
"@hf" : "0",
"i" : "MODELSPACE",
"n" : "Modeling container",
"k" : "1581",
"c" : "5121",
"p" : "1580",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "0",
"period" :
{
"start" : "1990-01-01",
"end" : "2020-12-31"
},
"scenarios" :
{
"nodes" :
{
"it" :
[
{
"@isFolder" : "0",
"k" : "1628",
"id" : "OBJ1628",
"n" : "Basic",
"vis" : "1",
"scenDesc" :
{
"@fullUrl" : "http:\/\/v-shp-development.dev.fs.fsight.world\/",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "0",
"@hf" : "0",
"i" : "OBJ1628",
"n" : "Basic",
"k" : "1628",
"c" : "5124",
"p" : "1627",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
"internalKey" : "1629"
},
{
"@isFolder" : "0",
"k" : "5371",
"id" : "OBJ5371",
"n" : "Basic (copy1)",
"vis" : "1",
"scenDesc" :
{
"@fullUrl" : "http:\/\/v-shp-development.dev.fs.fsight.world\/",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "0",
"@hf" : "0",
"i" : "OBJ5371",
"n" : "Basic (copy1)",
"k" : "5371",
"c" : "5124",
"p" : "1627",
"h" : "0",
"hasPrv" : "0",
"ic" : "0"
},
"internalKey" : "5372"
}
]
}
},
"item" :
{
"k" : "89669",
"id" : "MODEL_NEW",
"n" : "MODEL_NEW",
"vis" : "1",
"type" : "Problem",
"problemMd" :
{
"metamodel" :
{
"k" : "89670",
"calculationChain" :
{
"its" :
{
"Item" :
[
{
"k" : "1",
"n" : "MyInputVavable",
"vis" : "1",
"type" : "Variable",
"excluded" : "0",
"graphMeta" : "{"Geometry":{"x":20,"y":10,"width":150,"height":50}}",
"chainVariable" :
{
"slice" :
{
"k" : "0",
"id" : "MyInputVavable|A",
"n" : "MyInputVavable|A",
"vis" : "1",
"variableKey" : "1",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "1"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"fullName" : "MyInputVavable|A",
"originalName" : "MyInputVavable",
"originalShortName" : "MyInputVavable",
"useCustomName" : "0"
}
},
{
"k" : "2",
"n" : "MyOutputVavable",
"vis" : "1",
"type" : "Variable",
"excluded" : "0",
"graphMeta" : "{"Geometry":{"x":30,"y":140,"width":150,"height":50}}",
"chainVariable" :
{
"slice" :
{
"k" : "0",
"id" : "MyOutputVavable|A",
"n" : "MyOutputVavable|A",
"vis" : "1",
"variableKey" : "2",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "2"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"fullName" : "MyOutputVavable|A",
"originalName" : "MyOutputVavable",
"originalShortName" : "MyOutputVavable",
"useCustomName" : "0"
}
},
{
"k" : "3",
"id" : "OBJ3",
"n" : "MyOutputVavable|A[t] = A0, (From parent)-(From parent)",
"vis" : "1",
"type" : "Model",
"excluded" : "0",
"graphMeta" : "",
"model" :
{
"transform" :
{
"inputs" :
{
"its" :
{
"Item" :
{
"k" : "2",
"id" : "VARIABLES_89670",
"n" : "Variables",
"vis" : "1",
"slices" :
{
"its" :
{
"Item" :
{
"k" : "0",
"id" : "MyInputVavable|A",
"n" : "MyInputVavable|A",
"vis" : "1",
"variableKey" : "2",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "1"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
}
}
},
"variableStubKey" : "89671",
"parameterID" : "",
"kind" : "Stub",
"attributeId" : "",
"attributeType" : "Series"
}
}
},
"outputs" :
{
"its" :
{
"Item" :
{
"k" : "1",
"id" : "VARIABLES_89670",
"n" : "Variables",
"vis" : "1",
"slices" :
{
"its" :
{
"Item" :
{
"k" : "0",
"id" : "MyOutputVavable|A",
"n" : "MyOutputVavable|A",
"vis" : "1",
"variableKey" : "1",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "2"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
}
}
},
"variableStubKey" : "89671",
"parameterID" : "",
"kind" : "Stub",
"attributeId" : "",
"attributeType" : "Series"
}
}
},
"formulaCount" : "1",
"formulas" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"kind" : "Arima",
"method" :
{
"arima" :
{
"maxIteration" : "600",
"constantMode" : "ManualEstimate",
"constantValue" : "5.7",
"missingData" :
{
"specifiedVector" : "",
"method" : "SpecifiedValue",
"methodParameter" : "5",
"specifiedValue" : "4.7",
"specifiedTerm" :
{
"k" : "4294967295"
}
},
"confidenceLevel" : "0.96",
"ARMA" :
{
"orderAR" :
{
"l" :
[
"1",
"2",
"3"
]
},
"orderMA" :
{
"l" :
[
"1",
"2",
"3"
]
},
"calcInitMode" : "Auto",
"initAR" :
{
"d" : "0.0025"
},
"initMA" :
{
"d" : "0.0025"
},
"initIntercept" : "3",
"estimationMethod" : "GaussNewton",
"tolerance" : "0.0001",
"maxIteration" : "600",
"coefficientsAR" :
{
"estimate" : "",
"standardError" : "",
"tStatistic" : "",
"probability" : ""
},
"coefficientsMA" :
{
"estimate" : "",
"standardError" : "",
"tStatistic" : "",
"probability" : ""
},
"diff" : "2",
"diffSeas" : "0",
"orderARSeas" :
{
"l" :
[
"1",
"4"
]
},
"orderMASeas" :
{
"l" :
[
"1",
"3"
]
},
"initARSeas" :
{
"d" : "0.003"
},
"initMASeas" :
{
"d" : "0.0015"
},
"periodSeas" : "4",
"coefficientsARSeas" :
{
"estimate" : "",
"standardError" : "",
"tStatistic" : "",
"probability" : ""
},
"coefficientsMASeas" :
{
"estimate" : "",
"standardError" : "",
"tStatistic" : "",
"probability" : ""
},
"useARMAasInstrums" : "1",
"useAnalyticDeriv" : "1",
"useBackCast" : "0"
},
"explained" :
{
"slice" :
{
"k" : "0",
"id" : "MyOutputVavable|A",
"n" : "MyOutputVavable|A",
"vis" : "1",
"variableKey" : "1",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "2"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"lag" : "",
"key" : "0",
"termToText" : "{MyOutputVavable|A[t]}",
"termToInnerText" : "@_1:0[]",
"termInfo" :
{
"k" : "4294967295",
"lag" : "0",
"inversion" :
{
"type" : "None",
"lag" : "PrecidingValue",
"previousLag" : "-1",
"seasonality" : "None",
"dependence" : "Linear",
"K" : "3"
},
"slice" :
{
"k" : "0",
"id" : "MyOutputVavable|A",
"n" : "MyOutputVavable|A",
"vis" : "1",
"variableKey" : "1",
"stubKey" : "89671",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "89683"
},
"variant" : "2"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "Year"
},
"date" : "1899-12-30"
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"included" : "0"
}
},
"inversionInfo" :
{
"type" : "PCH",
"lag" : "PrecidingValue",
"previousLag" : "2",
"seasonality" : "None",
"dependence" : "Linear",
"K" : "3"
},
"doUseR" : "0",
"supportsR" : "1"
},
"calendarLevel" : "Year",
"outputSliceKey" : "0"
}
]
}
},
"series" :
{
"its" : ""
},
"kind" : "Simple"
},
"warnings" : "",
"readOnly" : "0"
}
}
]
}
},
"mmParams" :
{
"its" : ""
},
"visualController" :
{
"variableRubricatorKey" : "89671",
"userRPath" : "",
"isRExist" : "0"
},
"suppressEmptyFilter" :
{
"suppressEmpty" : "0",
"suppressEmptyArea" : "SerieBounds"
},
"readOnly" : "0",
"variableTestUseR" : "0",
"calculateIdentOnFact" : "0"
},
"scenarios" :
{
"its" : ""
},
"details" :
{
"period" :
{
"identificationStartDate" : "1990-01-01",
"identificationEndDate" : "2018-04-24",
"forecastStartDate" : "2018-04-25",
"forecastEndDate" : "2020-01-01",
"identificationStartDateParamID" : "",
"identificationEndDateParamID" : "",
"forecastStartDateParamID" : "",
"forecastEndDateParamID" : "",
"autoPeriod" : "0",
"identificationStartOffset" : "0",
"identificationEndOffset" : "0",
"forecastEndOffset" : "0",
"isIdentStartCorrect" : "1",
"isIdentEndCorrect" : "1",
"isForecastEndCorrect" : "1"
},
"currentPoint" : "2018-04-25"
},
"useScenarios" : "0",
"readOnly" : "0"
}
}
}
}
}
The SetMsARIMA function changes the method of equation calculation. Input parameters:
ms. Opened modeling container instance.
modelKey. Key of the model that contains the equation.
eqKey. Equation key.
After executing the function returns a model that contains the equation.
public static MsItem SetMsARIMA(MsId ms, ulong modelKey, ulong eqKey)
{
var setMsOp = new SetMs();
// Set operation execution parameters
setMsOp.tMs = ms;
setMsOp.tArg = new SetMsArg()
{ // Set data change pattern
pattern = new MsMdPattern()
{
item = new MsItemPattern()
{ // Specify equation key
key = modelKey,
problem = new MsProblemPattern()
{
metamodel = new MsMetaModelPattern()
{
calculationChain = ListOperation.Change
}
}
}
},
// Set data that must be changed
meta = new MsMd()
{
item = new MsItem()
{ // Specify equation key
k = modelKey,
type = MsItemType.Problem,
problemMd = new MsProblem()
{
metamodel = new MsMetaModel()
{
calculationChain = new MsCalculationChainEntries()
{
its = new MsCalculationChainEntry[]
{
new MsCalculationChainEntry()
{
k = eqKey,
type = MsCalculationChainType.Model,
model = new MsModel()
{
transform = new MsFormulaTransform()
{
formulas = new TsFormulas()
{
its = new TsFormula[]
{
new TsFormula()
{
kind = TsFormulaKind.Arima,
method = new TsMethod()
{ // Set parameters of the ARIMA method
arima = new TsArimaMethod()
{ // Set confidence limits relevance
confidenceLevel = 0.96,
// Set constant
constantMode = StatInterceptMode.ManualEstimate,
constantValue = 5.7,
// Set maximum number of iterations
maxIteration = 600,
// Set missing data treatment method
missingData = new StatMissingData()
{
method = StatMissingDataMethod.SpecifiedValue,
specifiedValue = 4.7
},
// Set autoregression and moving average parameters
ARMA = new SlARMA()
{ // Set autoregression order
parseAR = new SlParseStr()
{
value = "1-3",
assignOrder = true,
}, // Set seasonal autoregression order
parseARSeas = new SlParseStr()
{
value = "1,4",
assignOrder = true
}, // Set moving average order
parseMA = new SlParseStr()
{
value = "1-3",
assignOrder = true,
}, // Set seasonal moving average order
parseMASeas = new SlParseStr()
{
value = "1,3",
assignOrder = true
},
// Set difference and seasonal difference
diff = 2,
diffSeas = 0,
// Set seasonal period value
periodSeas = 4,
// Set initial approximations and other parameters
initAR = new double[] {0.0025},
initARSeas = new double[] {0.0030},
initMA= new double[] {0.0025},
initMASeas = new double[] {0.0015},
initIntercept = 3,
// Set coefficient estimation parameters
useBackCast = false,
useAnalyticDeriv = true,
estimationMethod = ARMAEstimationMethodType.GaussNewton
}
}, // Set output variable transformation
inversionInfo = new TsInversion()
{
type = TsInversionType.PCH,
previousLag = 2,
lag = TsInversionLag.PrecidingValue
},
name = "ARIMA"
}
}
}
}
}
}
}
}
}
}
}
}
}, // Set changed data extraction pattern
metaGet = new MsMdPattern()
{
period = true,
scenarios = ListOperation.Get,
item = new MsItemPattern()
{
key = modelKey,
problem = new MsProblemPattern()
{
useSavedCoefficients = false,
scenarios = ListOperation.Get,
details = true,
metamodel = new MsMetaModelPattern()
{
calculationChain = ListOperation.Get,
tag = true,
mmParams = ListOperation.Get,
calcChainPattern = new MsCalculationChainPattern()
{
modelPattern = new MsModelPattern()
{
transform = new MsFormulaTransformPattern()
{
inputs = ListOperation.Get,
outputs = ListOperation.Get,
kind = true,
formulaCount = true,
formulas = new TsFormulaPattern()
{
method = new TsMethodPattern() { }
},
equationsFormula = new TsFormulaPattern()
{
method = new TsMethodPattern() { }
},
series = ListOperation.Get,
transformVariable = new MsFormulaTransformVariablePattern()
{
slices = ListOperation.Get,
transformSlice = new MsFormulaTransformSlicePattern()
{
selection = ListOperation.Get
}
}
}
}
},
visualControllerPattern = new MsMetaModelVisualControllerPattern()
{
variableRubricatorKey = true,
levelFormat = MsLevelFormat.Short,
useSourceName = false
}
}
}
}
}
};
// Create a proxy object for operation execution
var somClient = new SomPortTypeClient();
// Set operation execution parameters
var result = somClient.SetMs(setMsOp);
return result.meta.item;
}
See also:
SOAP