【问题标题】:Regression in pandas大熊猫的回归
【发布时间】:2014-08-18 15:39:20
【问题描述】:

我有两个独立的数据库 - 一个带有每小时数据的温度数据库和一个带有用于 hvac 使用情况的每分钟数据的房屋数据库。我试图将暖通空调数据绘制为一周、一个月和一年的温度系列,但由于增量与温度数据库不匹配,我遇到了麻烦。我已经尝试过拟合最小二乘法,但是 a)无法弄清楚如何在 pandas 中进行拟合,并且 b)在一两天后变得非常不准确。有什么建议吗?

【问题讨论】:

  • 看起来你应该可以用 pandas 时间序列来做一些事情。如果您可以发布一些数据示例,您目前拥有的代码以及您期望的输出应该是什么,也许会更清楚问题是什么。

标签: python database pandas statistics regression


【解决方案1】:

pandas timeseries 非常适合此应用程序。您可以合并一系列不同的采样频率,pandas 将完美对齐它们。然后,您可以对数据进行下采样并进行回归,即使用statsmodels。一个模型示例:

In [288]:

idx1=pd.date_range('2001/01/01', periods=10, freq='D')
idx2=pd.date_range('2001/01/01', periods=500, freq='H')
df1 =pd.DataFrame(np.random.random(10), columns=['val1'])
df2 =pd.DataFrame(np.random.random(500), columns=['val2'])
df1.index=idx1
df2.index=idx2
In [291]:

df3=pd.merge(df1, df2, left_index=True, right_index=True, how='inner')
df4=df3.resample(rule='D')
In [292]:

print df4
                val1      val2
2001-01-01  0.399901  0.244800
2001-01-02  0.014448  0.423780
2001-01-03  0.811747  0.070047
2001-01-04  0.595556  0.679096
2001-01-05  0.218412  0.116764
2001-01-06  0.961310  0.040317
2001-01-07  0.058964  0.606843
2001-01-08  0.075129  0.407842
2001-01-09  0.833003  0.751287
2001-01-10  0.070072  0.559986

[10 rows x 2 columns]
In [294]:

import statsmodels.formula.api as smf
mod = smf.ols(formula='val1 ~ val2', data=df4)
res = mod.fit()
print res.summary()
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                   val1   R-squared:                       0.061
Model:                            OLS   Adj. R-squared:                 -0.056
Method:                 Least Squares   F-statistic:                    0.5231
Date:                Fri, 27 Jun 2014   Prob (F-statistic):              0.490
Time:                        10:46:34   Log-Likelihood:                -3.3643
No. Observations:                  10   AIC:                             10.73
Df Residuals:                       8   BIC:                             11.33
Df Model:                           1                                         
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept      0.5405      0.224      2.417      0.042         0.025     1.056
val2          -0.3502      0.484     -0.723      0.490        -1.467     0.766
==============================================================================
Omnibus:                        3.509   Durbin-Watson:                   2.927
Prob(Omnibus):                  0.173   Jarque-Bera (JB):                1.232
Skew:                           0.399   Prob(JB):                        0.540
Kurtosis:                       1.477   Cond. No.                         4.69
==============================================================================

【讨论】:

    猜你喜欢
    • 2014-06-02
    • 2019-11-16
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 2019-10-09
    • 2019-02-14
    相关资源
    最近更新 更多