繁体   English   中英

时间序列回归模型问题

[英]Time Series Regression Model Issue

我是Python的新手,它尝试创建时间序列回归模型。 我有3列,X,Y和日期。 我在下面导入了所有内容,但遇到了错误。

import numpy as np
from sklearn import linear_model
import matplotlib.pyplot as plt
import pandas as pd
%matplotlib inline
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 15, 6
import statsmodels.api as sm
import statsmodels.formula.api as smf
from statsmodels.tsa.stattools import adfuller
raw_data = pd.read_csv("IMF and BBG Fair Values.csv")
ISO_TH = raw_data[["IMF_VALUE", "BBG_FV", "IMF_DATE"]]

过滤以摆脱NaaN

filtered_TH = ISO_TH[np.isfinite(raw_data['BBG_FV'])]

我得到这个错误

C:\\ Program Files \\ Anaconda3 \\ lib \\ site-packages \\ pandas \\ core \\ generic.py:2698:SettingWithCopyWarning:试图在DataFrame的切片副本上设置一个值。 尝试改用.loc [row_indexer,col_indexer] = value

请参阅文档中的警告: http : //pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self [name] = value

您的问题与所链接的熊猫文档中的问题完全相同。 查看他们在此处提供的最小示例:

def do_something(df):
   foo = df[['bar', 'baz']]  # Is foo a view? A copy? Nobody knows!
   # ... many lines here ...
   foo['quux'] = value       # We don't know whether this will modify df or not!
   return foo 

问题在于foo可能是数据帧df的副本或视图。 如果是视图,则对foo更改还将影响原始数据帧df 如果foo是副本,则foo['quux'] = value行将对df无效。

现在如何解决您的问题?

首先从*.csv文件创建数据框:

raw_data = pd.read_csv("IMF and BBG Fair Values.csv")

然后,通过以下方式从数据帧raw_data中选择列“ IMF_VALUE”,“ BBG_FV”,“ IMF_DATE”:

ISO_TH = raw_data[["IMF_VALUE", "BBG_FV", "IMF_DATE"]]

现在,这看起来与文档的第二行非常相似:

foo = df[['bar', 'baz']]

您的ISO_TH是视图还是raw_data的副本? 我们现在不行! 那么,如果我们更改ISO_TH的列会发生什么? raw_data是否也会更改? 我们现在不这样做,因此发出警告。

玩具示例:

import pandas as pd
import numpy as np
raw_data=pd.DataFrame([[np.inf,22,333,44], [3,4,5,2],[1,2,3,4],[np.inf,0,0,0]],columns=["BBG_FV", "IMF_VALUE", "IMF_DATE", "unused"])
ISO_TH = raw_data[["IMF_VALUE", "BBG_FV", "IMF_DATE"]]
# if we now change ISO_TH, we get a warning
ISO_TH.IMF_VALUE=[0,0,0,0] # SettingWithCopyWarning

您从ISO_TH创建中间对象filtered_TH的事实在这里没有任何改变。

我们该如何解决呢? 容易,我们阅读了文档,然后做那里写的!

ISO_TH = raw_data.loc[:,["IMF_VALUE", "BBG_FV", "IMF_DATE"]]

并像以前一样继续。

附加信息: 熊猫使用什么规则生成视图与副本?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM