我有一个数据集,并希望使它们适合均匀分布并使用Matlab计算拟合优度.但是,我发现制服不包含在功能' fitdist '中.有没有什么方法可以在Matlab中进行均匀分布拟合?
我想知道使用 Scipy 来拟合 Pandas DataFrame 列的最佳方法。如果我有一个包含列 ( A, B, C, Dand Z_real)的数据表 (Pandas DataFrame),其中 Z 取决于 A、B、C 和 D,我想拟合每个 DataFrame 行(系列)的函数,该函数对 Z 进行预测(Z_pred)。
要拟合的每个函数的签名是
func(series, param_1, param_2...)
Run Code Online (Sandbox Code Playgroud)
其中 series 是对应于 DataFrame 每一行的 Pandas 系列。我使用 Pandas 系列,以便不同的函数可以使用不同的列组合。
我试过将 DataFrame 传递给scipy.optimize.curve_fit使用
curve_fit(func, table, table.loc[:, 'Z_real'])
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,每个 func 实例都将整个数据表作为其第一个参数而不是每一行的 Series 传递。我也尝试将 DataFrame 转换为 Series 对象列表,但这导致我的函数被传递了一个 Numpy 数组(我认为是因为 Scipy 执行了从 Series 列表到 Numpy 数组的转换,它不保留 Pandas系列对象)。
我有一个包含 1096 个数字的向量,这是一个测量站 3 年内测量的 NOx 的日平均浓度。您可以观察图像中的分布类型:

我使用这些命令来做直方图:
NOxV<-scan("NOx_Vt15-17.txt")
hist.NOxVt<-hist(NOxV, plot = FALSE, breaks = 24)
plot(hist.NOxVt, xlab = "[NOx]", ylab = "Frequenze assolute", main = "Istogramma freq. ass. NOx 15-17 Viterbo")
points(hist.NOxVt$mids, hist.NOxVt$counts, col= "red")
Run Code Online (Sandbox Code Playgroud)
我的教授建议我用泊松分布拟合直方图 - 注意转换:离散 -> 连续(我不知道这意味着什么) - 或“对数正态”分布。
我尝试使用她在课程中给我们的一些命令行来进行泊松拟合,但是在执行以下最后一行代码后,R 给了我一个错误:
my_poisson = function(params, x){
exp(-params)*params^x/factorial(x)
}
y<-hist.NOxVt$counts/1096;
x<-hist.NOxVt$mids;
z <- nls( y ~ exp(-a)*a^x/factorial(x), start=list(a=1) )
Run Code Online (Sandbox Code Playgroud)
numericDeriv(form[[3L]], names(ind), env) 中的错误:评估模型时产生的缺失值或无穷大此外:有 50 个或更多警告(使用警告()查看前 50 个)”
这个问题解决不了(在网上搜索类似问题)我决定用对数正态拟合分布,但我不知道怎么做,因为教授没有给我们解释,我仍然没有足够的 R 经验来自己解决。
我将不胜感激有关如何进行对数正态拟合和/或泊松拟合的任何建议或示例。
我正在寻找一个软件(python首选,但实际上是一个jupyter内核存在的任何东西)来将数据样本拟合到t分布的混合.
我已经搜索了很长一段时间,似乎这是一个不起眼的努力,因为大多数搜索结果都出现在高斯混合物中(我对这里不感兴趣).
迄今为止最有希望的候选人是"AdMit"和"MitSEM"R包.然而,我不知道R并且发现这些包的描述相当复杂,并且看起来它们的核心目标不是t的混合物的拟合,而是将其用作完成其他事物的步骤.
简而言之,我希望软件能够实现:
将t分布的混合拟合到一些数据并估计每个的"位置""比例"和"自由度".
我希望有人能指出我一个简单的包,我不敢相信这是一个如此模糊的用例.
52.3210481666667 52.3841781666667 52.4938248333333 52.6234071666667 52.9058301666667 53.2846095000000 53.8162295000000 54.4442056666667 55.2349903333333 56.0556786666667 56.9660778333333 57.8731546666667 58.7802311666667 59.6142101666667 60.4249306666667 61.1559080000000 61.7971748333333 62.3387626666667 62.8205433333333 63.2259036666667 63.4950361666667 63.7807816666667 63.9203320000000 64.0964311666667 64.1794968333334 64.2625625000000 64.3323375000000 64.3888223333333 64.5117591666667 64.5017913333333 64.6147606666667 64.6878583333334 64.7476660000000 64.8307311666667 64.9038291666667 65.0334115000000 65.1131545000000 65.2261236666667 65.2792856666667 65.3789643333333 65.4387716666667 65.5052241666667 65.5417731666667 65.5949351666667 65.6248388333333 65.6181933333333 65.6580648333333 65.6181935000000 65.6115481666667 65.5716766666667 65.4985790000000 65.4321263333333 65.3291250000000 65.2394141666667 65.1065091666667 64.9470231666667 64.7709240000000 64.5715665000000 64.3622411666667 64.0764953333333 63.7342651666667 63.3920346666667 62.9899973333333 62.6078951666667 62.1460503333333 61.7207541666667 61.2987811666667 60.9166793333333 60.5478676666667 60.2355410000000 59.9398273333333 59.7703733333333 59.5809840000000 59.5112088333333 59.4281431666667 59.3949168333333 59.4015621666667 59.3616906666667 59.3683361666667 59.3749811666667 …Run Code Online (Sandbox Code Playgroud) data-fitting ×2
matlab ×2
r ×2
scipy ×2
statistics ×2
distribution ×1
gaussian ×1
kernel ×1
numpy ×1
pandas ×1
poisson ×1
python ×1