2

我的 csv 文件包含离散变量和连续变量,我想找到“模型方程”,它根据我的离散变量(x,y,z)解释我的连续变量(a);->a=f(x,y,z)。问题是我正在尝试这段代码,但它失败了。当我想查看 print([f_value, p_value] stats.f_oneway = (x, y, z)) 的结果时,我得到 [nan, nan]。从我的代码中提取:

from numpy import (genfromtxt,hstack,arange)
#Pr linear regression
from scipy import stats
import scipy
#Pr ANOVA
from statsmodels.stats.multicomp import (pairwise_tukeyhsd,MultiComparison)

from pylab import savefig
from matplotlib.pyplot import (figure,setp)

fname="G:/table.csv"
my_data = genfromtxt(fname,delimiter=',')

#Transformation of file into table

x= my_data[:,3]
y= my_data[:,4]
z= my_data[:,6]


#one way anova
[f_value, p_value] = stats.f_oneway(x, y, z)

我想估计模型 R=u+f(x,y,z)+ e 其中 R(连续变量),u(常数),e(测量误差)。我想要离散变量如何影响我的连续结果的系数。

4

1 回答 1

3

我最好的猜测是您的数据包含 NaN 值或错误值。您可以尝试使用以下代码检测是:

for i in range(1,len(x)):
    (f_val,p_val) = stats.f_oneway(x[:i],y[:i],z[:i])
    if numpy.isnan(f_val) or numpy.isnan(p_val):
        print i-1,x[i-1],y[i-1],z[i-1],f_val,p_val
于 2013-08-14T09:19:52.360 回答