2010-10-28 6 views
4

Есть ли хорошая библиотека для вычисления линейных наименьших квадратов OLS (Обычные наименьшие квадраты) в python?Расчет Python OLS

Спасибо.

Edit:

Спасибо за SciKits и SciPy. @ars: Может ли X быть матрицей? Пример:

y(1) = a(1)*x(11) + a(2)*x(12) + a(3)*x(13) 
y(2) = a(1)*x(21) + a(2)*x(22) + a(3)*x(23) 
........................................... 
y(n) = a(1)*x(n1) = a(2)*x(n2) + a(3)*x(n3) 

Затем как передать параметры для матриц Y и X в вашем примере?

Кроме того, у меня мало опыта в алгебре, я был бы признателен, если вы, ребята, можете сообщить мне хороший учебник по таким проблемам.

Большое спасибо.

ответ

4

Вы посмотрели на SciPy? Я не знаю, если это так, но я бы подумал, что так будет.

+2

+1: Scipy - это * стандарт де-факто для такого рода вычислений и многие другие. – EOL

+2

Не обесценивайте экосистему пакетов [scikits] (http://scikits.appspot.com/), созданных вокруг SciPy, из которых [statsmodels] (http://scikits.appspot.com/statsmodels) является одним из , – ars

9

Попробуйте statsmodels. Вот простой пример:

import pylab 
import numpy as np 
import statsmodels.api as sm 

x = np.arange(-10, 10) 
y = 2*x + np.random.normal(size=len(x)) 

# model matrix with intercept 
X = sm.add_constant(x) 

# least squares fit 
model = sm.OLS(y, X) 
fit = model.fit() 

print fit.summary() 

pylab.scatter(x, y) 
pylab.plot(x, fit.fittedvalues) 

Update В ответ на обновленный вопрос, да он работает с матрицами. Обратите внимание, что приведенный выше код имеет данные x в форме массива, но мы строим матрицу X (столица X), чтобы перейти к OLS. Функция add_constant просто строит матрицу с первым столбцом, инициализированным на единицы для перехвата. В вашем случае вы просто передадите свою матрицу X без необходимости этого промежуточного шага, и это сработает.

+0

(+1) Есть ли шанс увидеть вас на stats.stackexchange.com? – chl

+0

@chl: Определенно - занят какой-то работой по программированию и периодически заходил сюда, но должен скоро вернуться к статистике. Рад снова Вас слышать. :) – ars