Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyMC3中多个测量值的融合_Python_Measurement_Pymc3 - Fatal编程技术网

Python pyMC3中多个测量值的融合

Python pyMC3中多个测量值的融合,python,measurement,pymc3,Python,Measurement,Pymc3,我有两个不同测量类型的数据帧(A,B),测量相同的未知变量。我试图通过将测量值线性回归到我精确知道的另一个变量(C),然后将两者中的不确定度结合起来,以减少测量中的不确定度,从而对隐藏变量进行更精确的测量。 So(x1*A0+x2*A1~C)和(y1*B0+y2*B1~C) 这看起来像pymc3中的一个层次模型,所以我已经尝试过了 with pm.Model() as model: ACalFactor = pm.Lognormal('ACalFactor', mu = 0, sd =

我有两个不同测量类型的数据帧(A,B),测量相同的未知变量。我试图通过将测量值线性回归到我精确知道的另一个变量(C),然后将两者中的不确定度结合起来,以减少测量中的不确定度,从而对隐藏变量进行更精确的测量。
So(x1*A0+x2*A1~C)和(y1*B0+y2*B1~C)

这看起来像pymc3中的一个层次模型,所以我已经尝试过了

with pm.Model() as model:
    ACalFactor = pm.Lognormal('ACalFactor', mu = 0, sd = 1,\
                              shape = len(A.columns))

    BCalFactor = pm.Cauchy('BCalFactor', alpha = 0, beta = 100,\
                            shape = len(B.columns))

    AtoBStdDev = pm.HalfCauchy('BStdDev', 10)
    BTotalStdDev = pm.HalfCauchy('BStdDev', 10)

    AtoBEst = pm.Normal('AtoB', mu = A.multiply(ACalFactor), sd = AtoBStdDev,\
                     shape = len(B.Columns))

    BtoTotalEst = pm.Normal('BtoTotal', mu = tt.dot(B, BCalFactor),\  
                            sd = BTotalStdDev, observed = C)
但这不起作用,所以我试了一下

with pm.Model() as model:
    ACalFactor = pm.Lognormal('ACalFactor', mu = 0, sd = 1,\
                              shape = len(A.columns))

    BCalFactor = pm.Cauchy('BCalFactor', alpha = 0, beta = 100,\
                            shape = len(B.columns))

    AtoCStdDev = pm.HalfCauchy('BStdDev', 10)
    BtoCStdDev = pm.HalfCauchy('BStdDev', 10)

    AtoTotalEst = pm.Normal('AtoTotal', mu = tt.dot(A, ACalFactor), sd = AtoCStdDev,\
                     observed = C)

    BtoTotalEst = pm.Normal('BtoTotal', mu = tt.dot(B, BCalFactor),\  
                            sd = BTotalStdDev, observed = C)
首先,有一种方法可以使第一种方法发挥作用。我认为它遵循了 P(C | A,B)=P(A | C,B)*P(C | B)/P(A | B)

如果没有的话,有没有一种方法可以让我认为接下来的第二种方法发挥作用 P(0 | A0,B0)=P(0 | A0)*P(0 | B0)

谢谢你的帮助。这是我的第一篇帖子,如果我没有很好地解释问题或者把其他事情搞砸了,我很抱歉。如果我这样做了,请告诉我,我将确保不再犯错误

with pm.Model() as model:
    ACalFactor = pm.Lognormal('ACalFactor', mu = 0, sd = 1,\
                              shape = len(A.columns))

    BCalFactor = pm.Cauchy('BCalFactor', alpha = 0, beta = 100,\
                            shape = len(B.columns))

    AtoCStdDev = pm.HalfCauchy('BStdDev', 10)
    BtoCStdDev = pm.HalfCauchy('BStdDev', 10)

    AtoTotalEst = pm.Normal('AtoTotal', mu = tt.dot(A, ACalFactor), sd = AtoCStdDev,\
                     observed = C)

    BtoTotalEst = pm.Normal('BtoTotal', mu = tt.dot(B, BCalFactor),\  
                            sd = BTotalStdDev, observed = C)