Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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进行GARCH建模时出错_Python_Numpy_Model_Scipy - Fatal编程技术网

使用Python进行GARCH建模时出错

使用Python进行GARCH建模时出错,python,numpy,model,scipy,Python,Numpy,Model,Scipy,我有一个用于GARCH建模的示例python代码,它创建了随机生成的数字数据。我想用我自己的csv文件替换这些数字,该文件包含一个列向量,但这根本不起作用 import numpy as np from scipy import optimize r=np.array([0.945532630498276, 0.614772790142383, 0.834417758890680, 0.862344782601800, 0.555858715401929, 0.641058419842652,

我有一个用于GARCH建模的示例python代码,它创建了随机生成的数字数据。我想用我自己的csv文件替换这些数字,该文件包含一个列向量,但这根本不起作用

import numpy as np
from scipy import optimize

r=np.array([0.945532630498276,
0.614772790142383,
0.834417758890680,
0.862344782601800,
0.555858715401929,
0.641058419842652,
0.720118656981704,
0.643948007732270,
0.138790608092353,
0.279264178231250,
0.993836948076485,
0.531967023876420,
0.964455754192395,
0.873171802181126,
0.937828816793698])

print r

f=open('main_ax.csv')
b=f.read()
r=np.array(b)
print r
def GARCH11_logL(param, r):
    omega, alpha, beta = param
    n = len(r)
    s = np.ones(n)
    for i in range(3,n):
        s[i] = omega + alpha*r[i-1]**2 + beta*(s[i-1]) # GARCH(1,1) model
    logL = -( (-np.log(s) - r**2/s).sum() )            # calculate the sum 
    return logL
R = optimize.fmin(GARCH11_logL,np.array([.1,.1,.1]),args=(r,),full_output=1)
print R
print
print("omega = %.6f\nbeta  = %.6f\nalpha = %.6f\n") % (R[0][0],R[0][2],R[0][1])
此程序向我抛出以下错误:

Traceback (most recent call last):
  File "C:\Users\Gaurav\Desktop\Ram\garch_model.py", line 35, in <module>
    R = optimize.fmin(GARCH11_logL,np.array([.1,.1,.1]),args=(r,),full_output=1)
  File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line 377, in fmin
    res = _minimize_neldermead(func, x0, args, callback=callback, **opts)
  File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line 435, in _minimize_neldermead
    fsim[0] = func(x0)
  File "C:\Python27\lib\site-packages\scipy\optimize\optimize.py", line 285, in function_wrapper
    return function(*(wrapper_args + args))
  File "C:\Users\Gaurav\Desktop\Ram\garch_model.py", line 32, in GARCH11_logL
    s[i] = omega + alpha*r[i-1]**2 + beta*(s[i-1]) # GARCH(1,1) model
TypeError: unsupported operand type(s) for ** or pow(): 'numpy.string_' and 'int'
回溯(最近一次呼叫最后一次):
文件“C:\Users\Gaurav\Desktop\Ram\garch\u model.py”,第35行,在
R=optimize.fmin(GARCH11_logL,np.array([1,1,1]),args=(R,),full_输出=1)
文件“C:\Python27\lib\site packages\scipy\optimize\optimize.py”,第377行,在fmin中
res=\u最小化\u neldermead(func,x0,args,callback=callback,**选项)
文件“C:\Python27\lib\site packages\scipy\optimize\optimize.py”,第435行,在neldermead中
fsim[0]=func(x0)
文件“C:\Python27\lib\site packages\scipy\optimize\optimize.py”,第285行,在函数包装器中
返回函数(*(包装器参数+参数))
文件“C:\Users\Gaurav\Desktop\Ram\garch_model.py”,第32行,在GARCH11_logL中
s[i]=omega+alpha*r[i-1]**2+beta*(s[i-1])#GARCH(1,1)模型
TypeError:不支持**或pow()的操作数类型:'numpy.string_'和'int'
任何有关修复此代码的帮助都将非常有用。

f=open('main_ax.csv')
b=f.read()
r=np.array(b)
使用单个字符串元素创建数组。您尚未将文件内容转换为数字数组

您可以将该代码替换为调用:

r = np.loadtxt('main_ax.csv')