在测量拟合优度时,R平方似乎是“简单”线性模型的一种普遍理解(和接受)的度量。但是statsmodels(与其他统计软件一样)RLM不包含R平方和回归结果。是否有一种方法可以“手动”进行计算,也许类似于在Stata中进行的计算?
还是有其他方法可用于/由其产生的结果来计算sm.RLS?
这是Statsmodels产生的:
import numpy as np
import statsmodels.api as sm
# Sample Data with outliers
nsample = 50
x = np.linspace(0, 20, nsample)
x = sm.add_constant(x)
sig = 0.3
beta = [5, 0.5]
y_true = np.dot(x, beta)
y = y_true + sig * 1. * np.random.normal(size=nsample)
y[[39,41,43,45,48]] -= 5 # add some outliers (10% of nsample)
# Regression with Robust Linear Model
res = sm.RLM(y, x).fit()
print(res.summary())
Run Code Online (Sandbox Code Playgroud)
哪个输出:
Robust linear Model …Run Code Online (Sandbox Code Playgroud) 我使用 sqlalchemy 对 SQL Server 数据库中的表进行更改,并希望取回受影响的行数。
我知道有.rowcount属性ResultProxy,但例如,这个答案所演示的.rowcount不一定与受影响的行数相同。
SQL Server 用于@@ROWCOUNT访问上一个语句执行中受影响的行数。
有没有办法修改使用 insert/update 语句结尾的 sqlalchemy 表达式SELECT @@ROWCOUNT?
例如,给定:
from sqlalchemy import Table, Column, Integer, String, MetaData, create_engine
url = 'mssql+pyodbc://dsn'
engine = create_engine(url)
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String),
Column('fullname', String),
)
ins = users.insert().values(name='jack', fullname='Jack Jones')
upd1 = users.update().values(fullname='Jack Doe').where(users.c.name == 'jack')
upd2 = users.update().values(fullname='Jack Doe').where(users.c.name == 'jack')
Run Code Online (Sandbox Code Playgroud)
我可以在前面添加SELECT @@ROWCOUNT一个 …