Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sensivity Analysis

These scripts allow you to perform a sensitivity analysis for a given function, using the Sobol method. The parameters of the function to be analyzed are sampled according to the LHS method, considering that each parameter is derived from a continuous uniform law. It is therefore necessary to know the range of variation of each parameter. Each of the calculated indices is framed using the bootstrap method.

The two scripts SensitivityAnalysis.R and SensitivityAnalysisLowerComplexity.R perform the same analysis but the method of calculating the total indices differs: the first script calculates these indices by complementarity whereas the second script calculates them by opposite.

The following was obtained using the script SensitivityAnalysis.R.

Running the tests

The given script is configured for the example of the Ishigami function with a=7 and b=0.1. The sensivity indices obtained approximate the theoretical results, namely:

S1 : 0.3139
S2 : 0.4424
S3 : 0
S12 : 0
S23 : 0
S13 : 0.2437
S123: 0
ST1 : 0.5576
ST2 : 0.4424
ST3 : 0.2437

Outputs

The script manages the post-processing of sensitivity indices by creating a graphic that represents first-order sensitivity indices. A raw text file is also created and summarizes the script inputs, x-th order sensitivity indices, total sensitivity indices as well as the intermediate execution times of the script steps.

The example above shows the outputs obtained for the Ishigami function defined earlier and for a sample size s=8000.

Graphic output

output

Raw output

------------------------------------------------------------
------------------- Sensitivity analysis -------------------
------------------------------------------------------------
------------------- Function parameters --------------------
function(x,y,z){
return(sin(x)+7*sin(y)^2+0.1*z^4*sin(x))
}
------------- Sensitivity analysis parameters --------------
Number of samples : 8000 Maximum order of indices : 3 Number of factors : 3 -> x, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> y, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> z, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
----------- Results of the sensitivity analysis ------------
Sensivity indices of 1st order :
x : 0.311
y : 0.4346
z : -0.03017
Sensivity indices of 2nd order :
x,y : 0.01387
x,z : 0.2706
y,z : 0.01387
Sensivity indice of 3rd order :
x,y,z : -0.01387
Sum of sensitivity indices of 1st order : 0.7155
Sum of sensitivity indices of 2nd order : 0.2984
Sum of sensitivity indices of 3rd order : -0.01387
Calculation by complementarity
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
Calculation by sum
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
------------- Cumulative script execution time -------------
Initialization : 0ms
Creation of matrices A and B : 0ms
Creation of matrices C : 1s26ms
Collection of the outputs Y : 1s89ms
Calculation of sensitivity indices : 43m33s99ms
Estimation of confidence intervals by bootstrap : 43m34s57ms
Creation of the output graph : 44m00s20ms
Storage of the info.txt file : 44m00s71ms
End : 44m00s71ms

Results comparison

IndicesTheoriticalss=1000s=2000s=4000s=8000s=16000s=32000
S10.31390.28220.29200.29890.31100.31290.3111
S20.44240.43410.44270.45940.43460.45680.4397
S30-0.0387-0.03000.0252-0.03010.0161-0.0038
S1200.01620.00730.00190.0139-0.01910.0074
S130.24370.30630.28810.21460.27060.23330.2457
S2300.01620.00730.00190.0139-0.01910.0074
S1230-0.0161-0.0073-0.0019-0.01380.0192-0.0075
ST10.55760.58850.58010.51350.58170.54630.5567
ST20.44240.45020.45000.46130.44850.43760.4472
ST30.24370.26760.25800.23980.24050.24950.2418
Distances from theoriticals resultss=1000s=2000s=4000s=8000s=16000s=32000
Indices of x-th order0.08530.05930.04480.04780.04160.0141
Total order indices0.03980.02770.04810.02510.01360.0052

About

Sensitivity Analysis script using Sobol method implemented in R.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sensivity Analysis

These scripts allow you to perform a sensitivity analysis for a given function, using the Sobol method. The parameters of the function to be analyzed are sampled according to the LHS method, considering that each parameter is derived from a continuous uniform law. It is therefore necessary to know the range of variation of each parameter. Each of the calculated indices is framed using the bootstrap method.

The two scripts SensitivityAnalysis.R and SensitivityAnalysisLowerComplexity.R perform the same analysis but the method of calculating the total indices differs: the first script calculates these indices by complementarity whereas the second script calculates them by opposite.

The following was obtained using the script SensitivityAnalysis.R.

Running the tests

The given script is configured for the example of the Ishigami function with a=7 and b=0.1. The sensivity indices obtained approximate the theoretical results, namely:

S1 : 0.3139
S2 : 0.4424
S3 : 0
S12 : 0
S23 : 0
S13 : 0.2437
S123: 0
ST1 : 0.5576
ST2 : 0.4424
ST3 : 0.2437

Outputs

The script manages the post-processing of sensitivity indices by creating a graphic that represents first-order sensitivity indices. A raw text file is also created and summarizes the script inputs, x-th order sensitivity indices, total sensitivity indices as well as the intermediate execution times of the script steps.

The example above shows the outputs obtained for the Ishigami function defined earlier and for a sample size s=8000.

Graphic output

output

Raw output

------------------------------------------------------------
------------------- Sensitivity analysis -------------------
------------------------------------------------------------
------------------- Function parameters --------------------
function(x,y,z){
return(sin(x)+7*sin(y)^2+0.1*z^4*sin(x))
}
------------- Sensitivity analysis parameters --------------
Number of samples : 8000 Maximum order of indices : 3 Number of factors : 3 -> x, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> y, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> z, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
----------- Results of the sensitivity analysis ------------
Sensivity indices of 1st order :
x : 0.311
y : 0.4346
z : -0.03017
Sensivity indices of 2nd order :
x,y : 0.01387
x,z : 0.2706
y,z : 0.01387
Sensivity indice of 3rd order :
x,y,z : -0.01387
Sum of sensitivity indices of 1st order : 0.7155
Sum of sensitivity indices of 2nd order : 0.2984
Sum of sensitivity indices of 3rd order : -0.01387
Calculation by complementarity
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
Calculation by sum
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
------------- Cumulative script execution time -------------
Initialization : 0ms
Creation of matrices A and B : 0ms
Creation of matrices C : 1s26ms
Collection of the outputs Y : 1s89ms
Calculation of sensitivity indices : 43m33s99ms
Estimation of confidence intervals by bootstrap : 43m34s57ms
Creation of the output graph : 44m00s20ms
Storage of the info.txt file : 44m00s71ms
End : 44m00s71ms

Results comparison

IndicesTheoriticalss=1000s=2000s=4000s=8000s=16000s=32000
S10.31390.28220.29200.29890.31100.31290.3111
S20.44240.43410.44270.45940.43460.45680.4397
S30-0.0387-0.03000.0252-0.03010.0161-0.0038
S1200.01620.00730.00190.0139-0.01910.0074
S130.24370.30630.28810.21460.27060.23330.2457
S2300.01620.00730.00190.0139-0.01910.0074
S1230-0.0161-0.0073-0.0019-0.01380.0192-0.0075
ST10.55760.58850.58010.51350.58170.54630.5567
ST20.44240.45020.45000.46130.44850.43760.4472
ST30.24370.26760.25800.23980.24050.24950.2418
Distances from theoriticals resultss=1000s=2000s=4000s=8000s=16000s=32000
Indices of x-th order0.08530.05930.04480.04780.04160.0141
Total order indices0.03980.02770.04810.02510.01360.0052

About

Sensitivity Analysis script using Sobol method implemented in R.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sensivity Analysis

These scripts allow you to perform a sensitivity analysis for a given function, using the Sobol method. The parameters of the function to be analyzed are sampled according to the LHS method, considering that each parameter is derived from a continuous uniform law. It is therefore necessary to know the range of variation of each parameter. Each of the calculated indices is framed using the bootstrap method.

The two scripts SensitivityAnalysis.R and SensitivityAnalysisLowerComplexity.R perform the same analysis but the method of calculating the total indices differs: the first script calculates these indices by complementarity whereas the second script calculates them by opposite.

The following was obtained using the script SensitivityAnalysis.R.

Running the tests

The given script is configured for the example of the Ishigami function with a=7 and b=0.1. The sensivity indices obtained approximate the theoretical results, namely:

S1 : 0.3139
S2 : 0.4424
S3 : 0
S12 : 0
S23 : 0
S13 : 0.2437
S123: 0
ST1 : 0.5576
ST2 : 0.4424
ST3 : 0.2437

Outputs

The script manages the post-processing of sensitivity indices by creating a graphic that represents first-order sensitivity indices. A raw text file is also created and summarizes the script inputs, x-th order sensitivity indices, total sensitivity indices as well as the intermediate execution times of the script steps.

The example above shows the outputs obtained for the Ishigami function defined earlier and for a sample size s=8000.

Graphic output

output

Raw output

------------------------------------------------------------
------------------- Sensitivity analysis -------------------
------------------------------------------------------------
------------------- Function parameters --------------------
function(x,y,z){
return(sin(x)+7*sin(y)^2+0.1*z^4*sin(x))
}
------------- Sensitivity analysis parameters --------------
Number of samples : 8000 Maximum order of indices : 3 Number of factors : 3 -> x, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> y, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> z, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
----------- Results of the sensitivity analysis ------------
Sensivity indices of 1st order :
x : 0.311
y : 0.4346
z : -0.03017
Sensivity indices of 2nd order :
x,y : 0.01387
x,z : 0.2706
y,z : 0.01387
Sensivity indice of 3rd order :
x,y,z : -0.01387
Sum of sensitivity indices of 1st order : 0.7155
Sum of sensitivity indices of 2nd order : 0.2984
Sum of sensitivity indices of 3rd order : -0.01387
Calculation by complementarity
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
Calculation by sum
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
------------- Cumulative script execution time -------------
Initialization : 0ms
Creation of matrices A and B : 0ms
Creation of matrices C : 1s26ms
Collection of the outputs Y : 1s89ms
Calculation of sensitivity indices : 43m33s99ms
Estimation of confidence intervals by bootstrap : 43m34s57ms
Creation of the output graph : 44m00s20ms
Storage of the info.txt file : 44m00s71ms
End : 44m00s71ms

Results comparison

IndicesTheoriticalss=1000s=2000s=4000s=8000s=16000s=32000
S10.31390.28220.29200.29890.31100.31290.3111
S20.44240.43410.44270.45940.43460.45680.4397
S30-0.0387-0.03000.0252-0.03010.0161-0.0038
S1200.01620.00730.00190.0139-0.01910.0074
S130.24370.30630.28810.21460.27060.23330.2457
S2300.01620.00730.00190.0139-0.01910.0074
S1230-0.0161-0.0073-0.0019-0.01380.0192-0.0075
ST10.55760.58850.58010.51350.58170.54630.5567
ST20.44240.45020.45000.46130.44850.43760.4472
ST30.24370.26760.25800.23980.24050.24950.2418
Distances from theoriticals resultss=1000s=2000s=4000s=8000s=16000s=32000
Indices of x-th order0.08530.05930.04480.04780.04160.0141
Total order indices0.03980.02770.04810.02510.01360.0052

About

Sensitivity Analysis script using Sobol method implemented in R.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sensivity Analysis

These scripts allow you to perform a sensitivity analysis for a given function, using the Sobol method. The parameters of the function to be analyzed are sampled according to the LHS method, considering that each parameter is derived from a continuous uniform law. It is therefore necessary to know the range of variation of each parameter. Each of the calculated indices is framed using the bootstrap method.

The two scripts SensitivityAnalysis.R and SensitivityAnalysisLowerComplexity.R perform the same analysis but the method of calculating the total indices differs: the first script calculates these indices by complementarity whereas the second script calculates them by opposite.

The following was obtained using the script SensitivityAnalysis.R.

Running the tests

The given script is configured for the example of the Ishigami function with a=7 and b=0.1. The sensivity indices obtained approximate the theoretical results, namely:

S1 : 0.3139
S2 : 0.4424
S3 : 0
S12 : 0
S23 : 0
S13 : 0.2437
S123: 0
ST1 : 0.5576
ST2 : 0.4424
ST3 : 0.2437

Outputs

The script manages the post-processing of sensitivity indices by creating a graphic that represents first-order sensitivity indices. A raw text file is also created and summarizes the script inputs, x-th order sensitivity indices, total sensitivity indices as well as the intermediate execution times of the script steps.

The example above shows the outputs obtained for the Ishigami function defined earlier and for a sample size s=8000.

Graphic output

output

Raw output

------------------------------------------------------------
------------------- Sensitivity analysis -------------------
------------------------------------------------------------
------------------- Function parameters --------------------
function(x,y,z){
return(sin(x)+7*sin(y)^2+0.1*z^4*sin(x))
}
------------- Sensitivity analysis parameters --------------
Number of samples : 8000 Maximum order of indices : 3 Number of factors : 3 -> x, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> y, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> z, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
----------- Results of the sensitivity analysis ------------
Sensivity indices of 1st order :
x : 0.311
y : 0.4346
z : -0.03017
Sensivity indices of 2nd order :
x,y : 0.01387
x,z : 0.2706
y,z : 0.01387
Sensivity indice of 3rd order :
x,y,z : -0.01387
Sum of sensitivity indices of 1st order : 0.7155
Sum of sensitivity indices of 2nd order : 0.2984
Sum of sensitivity indices of 3rd order : -0.01387
Calculation by complementarity
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
Calculation by sum
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
------------- Cumulative script execution time -------------
Initialization : 0ms
Creation of matrices A and B : 0ms
Creation of matrices C : 1s26ms
Collection of the outputs Y : 1s89ms
Calculation of sensitivity indices : 43m33s99ms
Estimation of confidence intervals by bootstrap : 43m34s57ms
Creation of the output graph : 44m00s20ms
Storage of the info.txt file : 44m00s71ms
End : 44m00s71ms

Results comparison

IndicesTheoriticalss=1000s=2000s=4000s=8000s=16000s=32000
S10.31390.28220.29200.29890.31100.31290.3111
S20.44240.43410.44270.45940.43460.45680.4397
S30-0.0387-0.03000.0252-0.03010.0161-0.0038
S1200.01620.00730.00190.0139-0.01910.0074
S130.24370.30630.28810.21460.27060.23330.2457
S2300.01620.00730.00190.0139-0.01910.0074
S1230-0.0161-0.0073-0.0019-0.01380.0192-0.0075
ST10.55760.58850.58010.51350.58170.54630.5567
ST20.44240.45020.45000.46130.44850.43760.4472
ST30.24370.26760.25800.23980.24050.24950.2418
Distances from theoriticals resultss=1000s=2000s=4000s=8000s=16000s=32000
Indices of x-th order0.08530.05930.04480.04780.04160.0141
Total order indices0.03980.02770.04810.02510.01360.0052

About

Sensitivity Analysis script using Sobol method implemented in R.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sensivity Analysis

These scripts allow you to perform a sensitivity analysis for a given function, using the Sobol method. The parameters of the function to be analyzed are sampled according to the LHS method, considering that each parameter is derived from a continuous uniform law. It is therefore necessary to know the range of variation of each parameter. Each of the calculated indices is framed using the bootstrap method.

The two scripts SensitivityAnalysis.R and SensitivityAnalysisLowerComplexity.R perform the same analysis but the method of calculating the total indices differs: the first script calculates these indices by complementarity whereas the second script calculates them by opposite.

The following was obtained using the script SensitivityAnalysis.R.

Running the tests

The given script is configured for the example of the Ishigami function with a=7 and b=0.1. The sensivity indices obtained approximate the theoretical results, namely:

S1 : 0.3139
S2 : 0.4424
S3 : 0
S12 : 0
S23 : 0
S13 : 0.2437
S123: 0
ST1 : 0.5576
ST2 : 0.4424
ST3 : 0.2437

Outputs

The script manages the post-processing of sensitivity indices by creating a graphic that represents first-order sensitivity indices. A raw text file is also created and summarizes the script inputs, x-th order sensitivity indices, total sensitivity indices as well as the intermediate execution times of the script steps.

The example above shows the outputs obtained for the Ishigami function defined earlier and for a sample size s=8000.

Graphic output

output

Raw output

------------------------------------------------------------
------------------- Sensitivity analysis -------------------
------------------------------------------------------------
------------------- Function parameters --------------------
function(x,y,z){
return(sin(x)+7*sin(y)^2+0.1*z^4*sin(x))
}
------------- Sensitivity analysis parameters --------------
Number of samples : 8000 Maximum order of indices : 3 Number of factors : 3 -> x, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> y, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> z, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
----------- Results of the sensitivity analysis ------------
Sensivity indices of 1st order :
x : 0.311
y : 0.4346
z : -0.03017
Sensivity indices of 2nd order :
x,y : 0.01387
x,z : 0.2706
y,z : 0.01387
Sensivity indice of 3rd order :
x,y,z : -0.01387
Sum of sensitivity indices of 1st order : 0.7155
Sum of sensitivity indices of 2nd order : 0.2984
Sum of sensitivity indices of 3rd order : -0.01387
Calculation by complementarity
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
Calculation by sum
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
------------- Cumulative script execution time -------------
Initialization : 0ms
Creation of matrices A and B : 0ms
Creation of matrices C : 1s26ms
Collection of the outputs Y : 1s89ms
Calculation of sensitivity indices : 43m33s99ms
Estimation of confidence intervals by bootstrap : 43m34s57ms
Creation of the output graph : 44m00s20ms
Storage of the info.txt file : 44m00s71ms
End : 44m00s71ms

Results comparison

IndicesTheoriticalss=1000s=2000s=4000s=8000s=16000s=32000
S10.31390.28220.29200.29890.31100.31290.3111
S20.44240.43410.44270.45940.43460.45680.4397
S30-0.0387-0.03000.0252-0.03010.0161-0.0038
S1200.01620.00730.00190.0139-0.01910.0074
S130.24370.30630.28810.21460.27060.23330.2457
S2300.01620.00730.00190.0139-0.01910.0074
S1230-0.0161-0.0073-0.0019-0.01380.0192-0.0075
ST10.55760.58850.58010.51350.58170.54630.5567
ST20.44240.45020.45000.46130.44850.43760.4472
ST30.24370.26760.25800.23980.24050.24950.2418
Distances from theoriticals resultss=1000s=2000s=4000s=8000s=16000s=32000
Indices of x-th order0.08530.05930.04480.04780.04160.0141
Total order indices0.03980.02770.04810.02510.01360.0052

About

Sensitivity Analysis script using Sobol method implemented in R.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sensivity Analysis

These scripts allow you to perform a sensitivity analysis for a given function, using the Sobol method. The parameters of the function to be analyzed are sampled according to the LHS method, considering that each parameter is derived from a continuous uniform law. It is therefore necessary to know the range of variation of each parameter. Each of the calculated indices is framed using the bootstrap method.

The two scripts SensitivityAnalysis.R and SensitivityAnalysisLowerComplexity.R perform the same analysis but the method of calculating the total indices differs: the first script calculates these indices by complementarity whereas the second script calculates them by opposite.

The following was obtained using the script SensitivityAnalysis.R.

Running the tests

The given script is configured for the example of the Ishigami function with a=7 and b=0.1. The sensivity indices obtained approximate the theoretical results, namely:

S1 : 0.3139
S2 : 0.4424
S3 : 0
S12 : 0
S23 : 0
S13 : 0.2437
S123: 0
ST1 : 0.5576
ST2 : 0.4424
ST3 : 0.2437

Outputs

The script manages the post-processing of sensitivity indices by creating a graphic that represents first-order sensitivity indices. A raw text file is also created and summarizes the script inputs, x-th order sensitivity indices, total sensitivity indices as well as the intermediate execution times of the script steps.

The example above shows the outputs obtained for the Ishigami function defined earlier and for a sample size s=8000.

Graphic output

output

Raw output

------------------------------------------------------------
------------------- Sensitivity analysis -------------------
------------------------------------------------------------
------------------- Function parameters --------------------
function(x,y,z){
return(sin(x)+7*sin(y)^2+0.1*z^4*sin(x))
}
------------- Sensitivity analysis parameters --------------
Number of samples : 8000 Maximum order of indices : 3 Number of factors : 3 -> x, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> y, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> z, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
----------- Results of the sensitivity analysis ------------
Sensivity indices of 1st order :
x : 0.311
y : 0.4346
z : -0.03017
Sensivity indices of 2nd order :
x,y : 0.01387
x,z : 0.2706
y,z : 0.01387
Sensivity indice of 3rd order :
x,y,z : -0.01387
Sum of sensitivity indices of 1st order : 0.7155
Sum of sensitivity indices of 2nd order : 0.2984
Sum of sensitivity indices of 3rd order : -0.01387
Calculation by complementarity
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
Calculation by sum
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
------------- Cumulative script execution time -------------
Initialization : 0ms
Creation of matrices A and B : 0ms
Creation of matrices C : 1s26ms
Collection of the outputs Y : 1s89ms
Calculation of sensitivity indices : 43m33s99ms
Estimation of confidence intervals by bootstrap : 43m34s57ms
Creation of the output graph : 44m00s20ms
Storage of the info.txt file : 44m00s71ms
End : 44m00s71ms

Results comparison

IndicesTheoriticalss=1000s=2000s=4000s=8000s=16000s=32000
S10.31390.28220.29200.29890.31100.31290.3111
S20.44240.43410.44270.45940.43460.45680.4397
S30-0.0387-0.03000.0252-0.03010.0161-0.0038
S1200.01620.00730.00190.0139-0.01910.0074
S130.24370.30630.28810.21460.27060.23330.2457
S2300.01620.00730.00190.0139-0.01910.0074
S1230-0.0161-0.0073-0.0019-0.01380.0192-0.0075
ST10.55760.58850.58010.51350.58170.54630.5567
ST20.44240.45020.45000.46130.44850.43760.4472
ST30.24370.26760.25800.23980.24050.24950.2418
Distances from theoriticals resultss=1000s=2000s=4000s=8000s=16000s=32000
Indices of x-th order0.08530.05930.04480.04780.04160.0141
Total order indices0.03980.02770.04810.02510.01360.0052

About

Sensitivity Analysis script using Sobol method implemented in R.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sensivity Analysis

These scripts allow you to perform a sensitivity analysis for a given function, using the Sobol method. The parameters of the function to be analyzed are sampled according to the LHS method, considering that each parameter is derived from a continuous uniform law. It is therefore necessary to know the range of variation of each parameter. Each of the calculated indices is framed using the bootstrap method.

The two scripts SensitivityAnalysis.R and SensitivityAnalysisLowerComplexity.R perform the same analysis but the method of calculating the total indices differs: the first script calculates these indices by complementarity whereas the second script calculates them by opposite.

The following was obtained using the script SensitivityAnalysis.R.

Running the tests

The given script is configured for the example of the Ishigami function with a=7 and b=0.1. The sensivity indices obtained approximate the theoretical results, namely:

S1 : 0.3139
S2 : 0.4424
S3 : 0
S12 : 0
S23 : 0
S13 : 0.2437
S123: 0
ST1 : 0.5576
ST2 : 0.4424
ST3 : 0.2437

Outputs

The script manages the post-processing of sensitivity indices by creating a graphic that represents first-order sensitivity indices. A raw text file is also created and summarizes the script inputs, x-th order sensitivity indices, total sensitivity indices as well as the intermediate execution times of the script steps.

The example above shows the outputs obtained for the Ishigami function defined earlier and for a sample size s=8000.

Graphic output

output

Raw output

------------------------------------------------------------
------------------- Sensitivity analysis -------------------
------------------------------------------------------------
------------------- Function parameters --------------------
function(x,y,z){
return(sin(x)+7*sin(y)^2+0.1*z^4*sin(x))
}
------------- Sensitivity analysis parameters --------------
Number of samples : 8000 Maximum order of indices : 3 Number of factors : 3 -> x, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> y, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> z, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
----------- Results of the sensitivity analysis ------------
Sensivity indices of 1st order :
x : 0.311
y : 0.4346
z : -0.03017
Sensivity indices of 2nd order :
x,y : 0.01387
x,z : 0.2706
y,z : 0.01387
Sensivity indice of 3rd order :
x,y,z : -0.01387
Sum of sensitivity indices of 1st order : 0.7155
Sum of sensitivity indices of 2nd order : 0.2984
Sum of sensitivity indices of 3rd order : -0.01387
Calculation by complementarity
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
Calculation by sum
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
------------- Cumulative script execution time -------------
Initialization : 0ms
Creation of matrices A and B : 0ms
Creation of matrices C : 1s26ms
Collection of the outputs Y : 1s89ms
Calculation of sensitivity indices : 43m33s99ms
Estimation of confidence intervals by bootstrap : 43m34s57ms
Creation of the output graph : 44m00s20ms
Storage of the info.txt file : 44m00s71ms
End : 44m00s71ms

Results comparison

IndicesTheoriticalss=1000s=2000s=4000s=8000s=16000s=32000
S10.31390.28220.29200.29890.31100.31290.3111
S20.44240.43410.44270.45940.43460.45680.4397
S30-0.0387-0.03000.0252-0.03010.0161-0.0038
S1200.01620.00730.00190.0139-0.01910.0074
S130.24370.30630.28810.21460.27060.23330.2457
S2300.01620.00730.00190.0139-0.01910.0074
S1230-0.0161-0.0073-0.0019-0.01380.0192-0.0075
ST10.55760.58850.58010.51350.58170.54630.5567
ST20.44240.45020.45000.46130.44850.43760.4472
ST30.24370.26760.25800.23980.24050.24950.2418
Distances from theoriticals resultss=1000s=2000s=4000s=8000s=16000s=32000
Indices of x-th order0.08530.05930.04480.04780.04160.0141
Total order indices0.03980.02770.04810.02510.01360.0052

About

Sensitivity Analysis script using Sobol method implemented in R.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Sensivity Analysis

These scripts allow you to perform a sensitivity analysis for a given function, using the Sobol method. The parameters of the function to be analyzed are sampled according to the LHS method, considering that each parameter is derived from a continuous uniform law. It is therefore necessary to know the range of variation of each parameter. Each of the calculated indices is framed using the bootstrap method.

The two scripts SensitivityAnalysis.R and SensitivityAnalysisLowerComplexity.R perform the same analysis but the method of calculating the total indices differs: the first script calculates these indices by complementarity whereas the second script calculates them by opposite.

The following was obtained using the script SensitivityAnalysis.R.

Running the tests

The given script is configured for the example of the Ishigami function with a=7 and b=0.1. The sensivity indices obtained approximate the theoretical results, namely:

S1 : 0.3139
S2 : 0.4424
S3 : 0
S12 : 0
S23 : 0
S13 : 0.2437
S123: 0
ST1 : 0.5576
ST2 : 0.4424
ST3 : 0.2437

Outputs

The script manages the post-processing of sensitivity indices by creating a graphic that represents first-order sensitivity indices. A raw text file is also created and summarizes the script inputs, x-th order sensitivity indices, total sensitivity indices as well as the intermediate execution times of the script steps.

The example above shows the outputs obtained for the Ishigami function defined earlier and for a sample size s=8000.

Graphic output

output

Raw output

------------------------------------------------------------
------------------- Sensitivity analysis -------------------
------------------------------------------------------------
------------------- Function parameters --------------------
function(x,y,z){
return(sin(x)+7*sin(y)^2+0.1*z^4*sin(x))
}
------------- Sensitivity analysis parameters --------------
Number of samples : 8000 Maximum order of indices : 3 Number of factors : 3 -> x, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> y, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
-> z, sampled by LHS according to uniform continuous law of parameters min = -3.141593 and max = 3.141593
----------- Results of the sensitivity analysis ------------
Sensivity indices of 1st order :
x : 0.311
y : 0.4346
z : -0.03017
Sensivity indices of 2nd order :
x,y : 0.01387
x,z : 0.2706
y,z : 0.01387
Sensivity indice of 3rd order :
x,y,z : -0.01387
Sum of sensitivity indices of 1st order : 0.7155
Sum of sensitivity indices of 2nd order : 0.2984
Sum of sensitivity indices of 3rd order : -0.01387
Calculation by complementarity
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
Calculation by sum
Total sensitivity index of x : 0.5817
Total sensitivity index of y : 0.4485
Total sensitivity index of z : 0.2405
------------- Cumulative script execution time -------------
Initialization : 0ms
Creation of matrices A and B : 0ms
Creation of matrices C : 1s26ms
Collection of the outputs Y : 1s89ms
Calculation of sensitivity indices : 43m33s99ms
Estimation of confidence intervals by bootstrap : 43m34s57ms
Creation of the output graph : 44m00s20ms
Storage of the info.txt file : 44m00s71ms
End : 44m00s71ms

Results comparison

IndicesTheoriticalss=1000s=2000s=4000s=8000s=16000s=32000
S10.31390.28220.29200.29890.31100.31290.3111
S20.44240.43410.44270.45940.43460.45680.4397
S30-0.0387-0.03000.0252-0.03010.0161-0.0038
S1200.01620.00730.00190.0139-0.01910.0074
S130.24370.30630.28810.21460.27060.23330.2457
S2300.01620.00730.00190.0139-0.01910.0074
S1230-0.0161-0.0073-0.0019-0.01380.0192-0.0075
ST10.55760.58850.58010.51350.58170.54630.5567
ST20.44240.45020.45000.46130.44850.43760.4472
ST30.24370.26760.25800.23980.24050.24950.2418
Distances from theoriticals resultss=1000s=2000s=4000s=8000s=16000s=32000
Indices of x-th order0.08530.05930.04480.04780.04160.0141
Total order indices0.03980.02770.04810.02510.01360.0052

About

Sensitivity Analysis script using Sobol method implemented in R.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages