首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多维数据的统计回归

多维数据的统计回归
EN

Stack Overflow用户
提问于 2017-07-08 08:12:20
回答 2查看 1.4K关注 0票数 2

我有一组(x, y, z)格式的数据,其中z是一些涉及xy的公式的输出。我想找出公式是什么,我的互联网研究表明,统计回归是做到这一点的方法。

然而,我在研究中发现的所有例子都只涉及到二维数据集(x, y),这对我的情况并不有用。上述示例似乎也没有提供一种方法来查看结果公式是什么,它们只是提供了一个函数,用于根据数据预测未来的输出,而不是在培训数据集中。

所需的精度级别是,z公式需要在实际值的+/- 0.5范围内产生结果。

有人能告诉我怎样才能做我想做的事吗?请注意,我并没有要求使用软件库的具体建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-08 09:09:10

如果公式是线性函数,请检查这个教程。它使用普通最小二乘来拟合您的数据,这是相当强大的。

假设您有数据点(x1、y1、z1)、(x2、y2、z2)、.、(xn、yn、zn),将它们转换为三个分离的numpy数组X、Y和Z。

代码语言:javascript
复制
import numpy as np
X = np.array([x1, x2, ..., xn])
Y = np.array([y1, y2, ..., yn])
Z = np.array([z1, z2, ..., zn])

然后,使用ols来适应它们!

代码语言:javascript
复制
import pandas
from statsmodels.formula.api import ols

# Your data.
# Z = a*X + b*Y + c
data = pandas.DataFrame({'x': X, 'y': Y, 'z': Z})

# Fit your data with ols model.
model = ols("Z ~ X + Y", data).fit()

# Get your model summary.
print(model.summary())

# Get your model parameters.
print(model._results.params)
# should be approximately array([c, a, b])

如果有更多的变量出现

DataFrame中添加任意数量的变量。

代码语言:javascript
复制
# Your data.
data = pandas.DataFrame({'v1': V1, 'v2': V2, 'v3': V3, 'v4': V4, 'z': Z})

参考文献

Python包StatsModel

票数 3
EN

Stack Overflow用户

发布于 2017-07-08 09:16:39

您需要使用的最基本的工具是多元线性回归。基本方法将z作为x和y的线性函数,在其上加一个高斯噪声e: f(x,y) = a1*x + a2*y + a3,然后z表示f(x,y) + e,其中e通常是方差未知的零均值高斯。你需要找到系数a1,a2和偏置a3,它们通常是用极大似然估计的,然后在高斯假设下归结为普通的最小二乘。它具有封闭形式的解析解。

既然您可以访问Python,那么请看一下scikit-learn:模型.least#普通-最小二乘中的线性回归。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44984035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档