- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用了 Matlab,但我也欢迎使用 python 来解决这个问题。
我有一个随机变量 Var
的预测 CDF(即 CDF^)并且想使用这个预测的 CDF (CDF^) 生成 N 个场景。这是我所做的。我想知道这种方法是否有意义,以及如何在步骤 3 中自动生成 N 个场景。
1)我在 CDF^ 上使用 MLE 拟合假设的累积分布函数(假设为 Weibull)并获得拟合函数的相应参数。
2) 使用这些参数,我绘制了假定分布的 pdf。
3)在这一步中,我不确定要做什么以及如何做!基本上我想,我应该离散化 var
并通过计算每个矩形的面积,找到每个线段对应的概率。
4)我怎样才能以 PMF 形式绘制我的原始数据(var),因为它已经是 CDF 形式了?!
var= [ 0.001 0.01 97 145 150 189 202 183 248 305 492 607 1013];
cdf_prob = [0.01, 0.05, 0.15, 0.25, 0.35, 0.45, 0.50, 0.55, 0.65, 0.75, 0.85, 0.95, 0.99];
% cumulative prob.
a= mle(var, 'distribution', 'wbl');
plot(var, cdf_prob, 'o-') % my data
hold on
xgrid = linspace (0, 1.1*max(var));
plot (xgrid, wblcdf(xgrid,a(1),a(2))); % fitted cdf
figure(2) % fitted PDF
pd= makedist('wbl', 'a', a(1),'b', a(2));
y=pdf(pd, xgrid);
plot(xgrid,y)
最佳答案
生成样本:
您可以通过多种方式从分布中生成样本。如果您已经知道要使用特定的发行版,例如 Weibull distribution ,那么两个简单的选择是:
makedist()
和 random()
,[1] 或 wblrnd()
. var
因为它掩盖了
var()
功能。
% MATLAB R2019a
a = [209.2863 0.5054]; % a = mle(var, 'distribution', 'wbl'); % from OP code
NumSamples = 500;
pd = makedist('Weibull',a(1),a(2))
% Method 1
X = random(pd,NumSamples,1);
% Method 2
X2 = wblrnd(a(1),a(2),NumSamples,1);
'Normalization','pdf'
来完成
histogram()
中的名称-值对特性。为了获得更好的结果,通常建议调整直方图 bin 的数量(在属性中),但只有 13 个数据点,这值(value)有限。
h = histogram(var,'Normalization','pdf')
h.NumBins = 13;
figure, hold on
h = histogram(var,'Normalization','pdf','DisplayName','Data');
xLimits = xlim;
Xrng = 0:.01:xLimits(2);
plot(Xrng,pdf(pd,Xrng),'r--','DisplayName','Fit')
xlabel('Var')
ylabel('Probability Density Function (PDF)')
legend('show')
% Adjust these manually
ylim([0 0.02])
h.NumBins = 13;
fitdist()
哪个适合
kernel density并且仍然允许使用
Probability distribution objects 的所有功能,包括
random()
和
pdf()
.
[0, inf]
上有支撑.
pd2 = fitdist(X,'Kernel')
pd2t = truncate(pd2,0,inf)
figure, hold on
h = histogram(var,'Normalization','pdf','DisplayName','Data');
xLimits = xlim;
Xrng = 0:.01:xLimits(2);
plot(Xrng,pdf(pd2t,Xrng),'r--','DisplayName','Fit')
xlabel('Var')
ylabel('Probability Density Function (PDF)')
legend('show')
h.NumBins = 13;
ksdensity()
得到情节。
关于python - 如何在 Matlab 或 Python 中使用预测的 cdf 生成一些场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59971640/
为什么反 Gamma 函数不产生原始 x 值? 代码 x = 0.2 alpha = 2 u = sp.stats.gamma.cdf(x, alpha) x1 = sp.stats.invgamma
我想使用 CDF 匹配来纠正降水的原始模型预测(但该应用程序相当通用)。 假设下面的 CDF B 是观测到的 CDF(我信任的 CDF),我想计算 CDF A 和 B 之间的差异,以便在给定的一天我可
这些函数(标准正态累积分布函数、正态累积分布函数或误差函数)中的任何一个都可以用 JavaScript 可靠地计算吗? 考虑到 Windows 上缺乏 PECL 可用性,我希望有一个完全客户端的解决方
我在这里有一些旧的 Microsoft Word 文件(可能是 Word 97),并注意到标准的 Unix 文件实用程序将此类文件标识为“CDF”。它实际上更精确,转储详细的元数据,例如: CDF V
我只是在 linux 上尝试 CDF 播放器并比较 same demo在 Windows 上使用 CDF 插件看起来。我注意到了一些奇怪的事情。相同的演示,相同的初始值,但在 Windows 上,相同
我有以下值: Day 1: X11 X12 X13 X14 X15 ... Day 2: X21 X22 X23 X24 X25 ... Day 3: X31 X32 X33 X34 X35 ...
我有以下值: Day 1: X11 X12 X13 X14 X15 ... Day 2: X21 X22 X23 X24 X25 ... Day 3: X31 X32 X33 X34 X35 ...
如果我得到随机样本数据: X=np.random.random(100)*100 我需要获取 CDF = 34% 或其他值的 X_i 值。我现在能想到的唯一方法是使用逆 CDF。我认为百分位数是等效的
我想计算给定 pdf 的逆累积密度函数(逆 cdf)。 pdf 直接作为直方图给出,即 N 个等距分量的向量。 我目前的做法是: cdf = cumsum(pdf); K = 3; %// som
我想在同一个图中绘制多个变量的 CDF 图。变量的长度不同。为了简化细节,我使用以下示例代码: library("ggplot2") a1 df ggplot(df, aes(x, colour
我想画一个看起来像这样的图: 数据在 .csv 文件中给出,我已经将其导入到data 并用作图中的 x。 Y 计算如下: y = np.arange(1, len(data)+1)/len(data)
如何使用 Plotly 在 Pandas DataFrame 中绘制频率分布数据的 CDF 图?假设以下玩具数据 value freq 1 3 2 2 3
我想使用 ggplot 绘制加权 CDF。一些旧的非 SO 讨论(例如 2012 年的 this)表明这是不可能的,但我想我会重新加注。 例如,考虑以下数据: df <- data.frame(x=s
我有2个CDF并且必须找到最大的逐点距离。我创建了直方图并绘制了两者。这些值由随机函数生成,该函数将两个随机数 1-6 相加 100 次,类似于两个骰子。但是,我无法找到绘图上两条线之间的最大距离。
我正在 Java 中开发 CDF(文件万事达卡使用)文件解析器,并且我正在使用找到的 API here 。为了使用这个 API,您需要 jar 文件.. 我不明白我是如何得到这个异常的,因为它应该在
尝试使用 matplotlib 的 hist 函数绘制累积分布函数 (CDF) 时,最后一个点会返回到零。我读到一些帖子解释说这是因为类似直方图的格式,但找不到适合我的情况的解决方案。 这是我的代码:
这个问题已经有答案了: 奥 git _a (1 个回答) 已关闭 9 年前。 我想通过从文本文件读取数据来制作 CCDF 图。 CCDF表示互补累积分布函数。 我尝试搜索CCDF,但我不太了解它。 所
背景 我需要使用已知的累积分布函数 (CDF) 从相当复杂的概率密度函数 (PDF) 中随机采样,并且我正在尝试使用 inverse transform sampling 。这应该很容易做到,因为我有
我正在将代码从 Matlab 转换为 C++,出于某些重要原因,我必须获得均值为 0 且方差为“正态”函数(在 Matlab 中为“norm”)的累积分布函数=1. 在Matlab中的实现是这样的:
我有一个复杂的(非标准)分布函数,我想对其进行采样以使用逆 cdf 技术生成模拟数据点。 为了这个例子,我将考虑高斯分布 var=100 def f(x,a): def g(y):
我是一名优秀的程序员,十分优秀!