Я использую rpy2 для регрессий. Возвращаемый объект имеет список, который включает в себя коэффициенты, остатки, установленные значения, ранг установленной модели и т. Д.)Получение стандартных ошибок из регрессий с использованием rpy2
Однако я не могу найти стандартные ошибки (и R^2) в подходящем объекте. Запуск прямой модели lm в R, стандартные ошибки отображаются с помощью команды summary, но я не могу получить к ним доступ непосредственно в кадре данных модели.
Как я могу получить эту информацию, используя rpy2?
Пример кода питон
from scipy import random
from numpy import hstack, array, matrix
from rpy2 import robjects
from rpy2.robjects.packages import importr
def test_regress():
stats=importr('stats')
x=random.uniform(0,1,100).reshape([100,1])
y=1+x+random.uniform(0,1,100).reshape([100,1])
x_in_r=create_r_matrix(x, x.shape[1])
y_in_r=create_r_matrix(y, y.shape[1])
formula=robjects.Formula('y~x')
env = formula.environment
env['x']=x_in_r
env['y']=y_in_r
fit=stats.lm(formula)
coeffs=array(fit[0])
resids=array(fit[1])
fitted_vals=array(fit[4])
return(coeffs, resids, fitted_vals)
def create_r_matrix(py_array, ncols):
if type(py_array)==type(matrix([1])) or type(py_array)==type(array([1])):
py_array=py_array.tolist()
r_vector=robjects.FloatVector(flatten_list(py_array))
r_matrix=robjects.r['matrix'](r_vector, ncol=ncols)
return r_matrix
def flatten_list(source):
return([item for sublist in source for item in sublist])
test_regress()
Hey Dan! Я действительно не использую RPy2, но не должен ли вы делать что-то вроде 'modSummary = base.summary (fit)' и извлекать из этого коэффициенты? – joran
Могу сделать modsummary = base.summary (fit). Тогда modsummary $ coefficieints [(n + 2) :(2 * n + 2)] содержат стандартные ошибки (где n - количество объясняющих переменных). Но я не могу понять, как вернуть modsummary $ коэффициенты в python. – DanB