Почему он дает SyntaxError: недопустимый синтаксис во второй последней строке for jindx in xrange(1, 10):
? Это происходит с любой командой я попробоватьНеожиданный синтаксисError: недопустимый синтаксис в вложенных циклах
import numpy as np
from __future__ import division
def olsgmm(lhv, rhv, lags, wight):
global Exxprim
global inner
if len(rhv[:,]) != len(lhv[:,]):
print ("olsgmm: leftand right sides must have same number of rows. Currentlyrows are:")
len(lhv)
len(rhv)
T = len(lhv[:,])
N = len(lhv[:,1])
K = len(rhv[:,1])
sebv = np.zeros()
Exxprim = np.linalg.inv((rhv.T * rhv)/T)
bv = np.linalg.lstsq(rhv, lhv)
if (len(weight[:,]) == 1 & len(lhv[:,1]) > 1):
weight = weight * np.ones(len(lhv[:,1]),)
if (len(lags[:,]) == 1 & len(lhv[:,1]) > 1):
lags = lags * np.ones(len(lhv[:,1]),)
if weight == -1:
sebv = float('nan')
R2v = float('nan')
R2vadj = float('nan')
v = float('nan')
F = float('nan')
else:
errv = lhv - rhv * bv
s2 = np.mean(np.power(err, 2))
vary = lhv - np.ones(T, 1)
vary = np.mean(np.power(vary, 2))
R2v = (1 - np.divide(s2, vary))
R2adj = (1 - (np.divide(s2, vary)) * (T - 1)/(T - K)).T
for indx in xrange(1, N + 1):
err = errv[:,indx]
if (weight[indx] == 0 | weight[indx] == 1):
inner = (np.multiply(rhv, (err * np.ones(1,k))).T * (np.multiply(rhv, np.ones(1, K)))/T
for jindx in xrange(1, 10):
inneradd = ([np.multiply(rhv, err) for j in xrange(1, T - jindx)] * np.ones(1, k)).T
В дополнении к этому, когда я бегу numpy.linalg.lstsq()
в линии 16, RHV и LHV оба К й N матрицы (RHV первой строки перехват и вторая строка регрессор), он дает мне 4 N x N массива коэффициентов. Кто-нибудь знает, как выполнить правильную совместную выходную регрессию ls, чтобы в итоге получить 2 K x N массив коэффициентов?
Какой дурак я – chabert