- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据 R 中提供的一些代码来拟合一些模型(空间交互模型)。我已经能够使用 python 框架中的 statsmodels 使一些代码工作,但其中一些不匹配根本。我相信我为 R 和 Python 编写的代码应该会给出相同的结果。有没有人看到任何差异?或者是否存在一些可能会导致失败的根本差异? R 代码是与教程中给出的数字相匹配的原始代码(在此处找到:http://www.bartlett.ucl.ac.uk/casa/pdf/paper181)。
R示例代码:
library(mosaic)
Data = fetchData('http://dl.dropbox.com/u/8649795/AT_Austria.csv')
Model = glm(Data~Origin+Destination+Dij+offset(log(Offset)), family=poisson(link="log"), data = Data)
cor = cor(Data$Data, Model$fitted, method = "pearson", use = "complete")
rsquared = cor * cor
rsquared
R输出:
> Model = glm(Data~Origin+Destination+Dij+offset(log(Offset)), family=poisson(link="log"), data = Data)
Warning messages:
1: glm.fit: fitted rates numerically 0 occurred
2: glm.fit: fitted rates numerically 0 occurred
> cor = cor(Data$Data, Model$fitted, method = "pearson", use = "complete")
> rsquared = cor * cor
> rsquared
[1] 0.9753279
Python 代码:
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
import statsmodels.api as sm
from scipy.stats.stats import pearsonr
Data= pd.DataFrame(pd.read_csv('http://dl.dropbox.com/u/8649795/AT_Austria.csv'))
Model = smf.glm('Data~Origin+Destination+Dij', data=Data, offset=np.log(Data['Offset']), family=sm.families.Poisson(link=sm.families.links.log)).fit()
cor = pearsonr(doubleConstrained.fittedvalues, Data["Data"])[0]
print "R-squared for doubly-constrained model is: " + str(cor*cor)
Python 输出:
R-squared for doubly-constrained model is: 0.104758481123
最佳答案
看起来 GLM 在统计模型中存在收敛问题。也许在 R 中也是如此,但 R 只给出这些警告。
Warning messages:
1: glm.fit: fitted rates numerically 0 occurred
2: glm.fit: fitted rates numerically 0 occurred
这可能意味着 Logit/Probit 上下文中的完美分离。对于泊松模型,我必须考虑它。
R 做得更好,虽然很微妙,但它会告诉您您的验配可能有问题。例如,如果您查看 statsmodels 中的拟合似然,则为 -1.12e27。这应该是有问题的线索。
直接使用泊松模型(在可能的情况下,我总是更喜欢最大似然法而不是 GLM),我可以复制 R 结果(但我收到收敛警告)。值得注意的是,默认的 newton-raphson 求解器失败了,所以我使用 bfgs。
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
import statsmodels.api as sm
from scipy.stats.stats import pearsonr
data= pd.DataFrame(pd.read_csv('http://dl.dropbox.com/u/8649795/AT_Austria.csv'))
mod = smf.poisson('Data~Origin+Destination+Dij', data=data, offset=np.log(data['Offset'])).fit(method='bfgs')
print mod.mle_retvals['converged']
关于python - Statsmodels Poisson glm 与 R 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21785049/
是否有 statsmodels API 可以从 statsmodels 时间序列模型中检索预测区间? 目前,我正在使用以下方法手动计算预测区间: 这是我的代码。首先,获取一些示例数据... ! pyt
我有:statsmodels 0.5.0(正式名称为 scikits.statsmodels) Pandas 0.12.0。(全部从源安装) 我收到这个错误: File "/home/userna
所有内容的格式都与 Statsmodels 网站上的一样,但是 Spyder 以某种方式返回了这个: TypeError: ztest_ind() got multiple values for ar
所有内容的格式都与 Statsmodels 网站上的一样,但是 Spyder 以某种方式返回了这个: TypeError: ztest_ind() got multiple values for ar
谁能给我解释一下 statsmodel.formula.api 中的 ols 和 statsmodel.api 中的 ols 之间的区别? 使用 ISLR 文本中的广告数据,我使用两者运行了一个 ol
我用python处理一个线性回归模型,json数据如下: {"Y":[1,2,3,4,5],"X":[[1,43,23],[2,3,43],[3,23,334],[4,43,23],[232,234,
我正在使用 Python 中的 statsmodels MixedLM 包估计一个混合线性模型。拟合模型后,我现在想进行预测,但很难理解“预测”方法。 statsmodels 文档 (http://w
使用状态模型的逻辑回归模型: log_reg = st.logit(formula = 'label ~ pregnant + glucose + bp + insulin + bmi + pedig
我有一个包含 3 列的数据框 ['X', 'Y', 'Z'] 我想研究一下 X 和 Y影响Z的分布。为此,我想使用 nadaraya watson 的非参数回归器。在 statsmodels 中有一个
我正在尝试使用 statsmodel 中的 statsmodels.discrete.conditional_models.ConditionalLogit 类。 在jupyter笔记本中导入模块时,
我安装 statsmodels: apt-get install python python-dev python-setuptools python-numpy python-scipy curl
import statsmodels.formula.api as sm import numpy as np import pandas url = "http://vincentarelbundo
我正在尝试在 x-y 数据的简单测试集上使用 statsmodels 中的稳健线性模型。然而,作为 model.params 的返回值,我只得到一个值。如何获得拟合的斜率和截距?最小示例(其中我试图从
我正在使用库statsmodels.tsa.stattools.grangercausalitytests来测试两个时间序列之间的相似性。我知道列表 a 和 b 都是合法列表,没有任何 None 或
以下代码使用 statsmodels 拟合了一个过度简化的广义线性模型 model = smf.glm('Y ~ 1', family=sm.families.NegativeBinomial(),
在Python库Statsmodels中,可以用print(results.summary())打印出回归结果,如何打印出超过的摘要一张表中的一个回归,以便更好地比较? 线性回归,代码取自 stats
我有一个 pandas DataFrame,其行包含多种类型的数据。我想使用 statsmodels.formula.api 根据这些数据拟合一个模型,然后做出一些预测。对于我的应用程序,我想一次预测
我正在尝试使用 statsmodels 中的 logit 模块对包含 bool 值(“默认”)目标变量和两个特征(“fico_interp”、“home_ownership_int”)的数据集执行逻辑
这个问题类似于confidence and prediction intervals with StatsModels但有一个额外的细微差别: 我的数据是异方差的,我想使用 statsmodels 提
我正在使用 Pandas 的混合物和 StatsModels绘制时间序列分解图。我关注了this answer但是当我调用 plot() 时,它似乎在绘制一个副本。 我的 DataFrame 看起来像
我是一名优秀的程序员,十分优秀!