小编Pri*_*mer的帖子

如何在Statsmodels中为稳健回归(RLM)获得R平方?

在测量拟合优度时,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)

python regression linear-regression statsmodels

7
推荐指数
1
解决办法
5538
查看次数

使用 SQLAlchemy 从 SQL Server 返回受影响的行数

我使用 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一个 …

python sql-server sqlalchemy

5
推荐指数
0
解决办法
1943
查看次数