Ticket #55: SCC.py

File SCC.py, 2.4 KB (added by willaume@…, 4 years ago)
Line 
1from openturns import *
2from math import *
3
4def getColumn( numericalSample, idColumn ) :
5    output=NumericalSample(0,1)
6    for i in range( 0, numericalSample.getSize() ) :
7        output.add(NumericalPoint(1,numericalSample[i][idColumn]))
8    return output
9
10stochasticDimension = 2
11RandomGenerator().SetSeed(0)
12# Analytical construction : Input
13inputFunction = Description(2)
14inputFunction[0] = "R"
15inputFunction[1] = "S"
16
17# Analytical construction : Output
18outputFunction = Description(1)
19outputFunction[0] = "G"
20
21formulas = Description(outputFunction.getSize())
22formulas[0] = "R-S"
23
24LimitState = NumericalMathFunction(inputFunction, outputFunction, formulas)
25
26dim = LimitState.getInputNumericalPointDimension()
27
28# Mean
29mean = NumericalPoint(dim, 0.0)
30mean[0] = 3.0
31mean[1] = 2.0
32
33# Standard deviation
34sigma = NumericalPoint(dim, 0.0)
35sigma[0] = 0.3
36sigma[1] = 0.2
37
38corr = CorrelationMatrix(dim)
39corr[0,0]=1.0
40corr[1,1]=1.0
41corr[1,0]=0.3
42corr[0,1]=0.3
43
44myDistribution = Normal(mean, sigma, corr)
45
46vect = RandomVector(Distribution(myDistribution))
47
48G = RandomVector(LimitState, vect)
49
50pointNumber = 1000
51print " From a stochastic experiment place of size = ", pointNumber
52
53inputSample = vect.getNumericalSample(pointNumber)
54RSample=getColumn( inputSample, 0 )
55SSample=getColumn( inputSample, 1 )
56
57stdev_R=sqrt(inputSample.computeVariancePerComponent()[0])
58stdev_S=sqrt(inputSample.computeVariancePerComponent()[1])
59mean_RS=inputSample.computeMean()
60stdev_RS=inputSample.computeStandardDeviationPerComponent()
61PearsonCorr=inputSample.computePearsonCorrelation()
62
63PearsonCorrAnalysis=CorrelationAnalysis().PearsonCorrelation(RSample,SSample)
64SpearmanCorrAnalysis=CorrelationAnalysis().SpearmanCorrelation(RSample,SSample)
65RSSCC=CorrelationAnalysis().SCC(RSample,SSample)
66
67outputSample = LimitState(inputSample)
68minValue = outputSample.getMin()[0]
69maxValue = outputSample.getMax()[0]
70mean = outputSample.computeMean()[0]
71stdev_G = sqrt(outputSample.computeCovariance()[0,0])
72
73print ""
74print "mean R et S = ", mean_RS
75print "st dev R et S = ", stdev_RS
76print "st dev R = ", stdev_R
77print "st dev S = ", stdev_S
78print "Pearson correlation = ", PearsonCorr
79print ""
80print "Pearson correlation analysis = ", PearsonCorrAnalysis
81print "Spearman correlation analysis = ", SpearmanCorrAnalysis
82print "SCC", RSSCC
83print ""
84print "min Value G = ", minValue
85print "max Value G = ", maxValue
86print "mean G = ", mean
87print "st dev G = ", stdev_G
88print ""