我试图使用Patsy来生成内源数据和外生数据,用于二元logistic回归。我在设定内生性方面的参考水平时遇到了问题。
下面的代码的问题是,内源方有两个层次,在二元逻辑回归中它应该只有一个层次。
import pandas as pd
import statsmodels.api as sm
import patsy
# data:
url = 'http://vincentarelbundock.github.io/Rdatasets/csv/datasets/iris.csv'
df = pd.read_csv(url)
df = df.iloc[:10,1:]
df = df.loc[ ( df.Species == 'setosa') | ( df.Species == 'versicolor' ) ,]
df.columns = ['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width', 'Species' ]
y, X = patsy.dmatrices("C(Species,Treatment('versicolor')) ~ Sepal_Length",data = df, return_type = 'dataframe')Y的形状是(100,2),但我只需要1列。那么,我如何让Patsy输出内源性方面,以便我可以直接使用它在二元逻辑回归?
发布于 2014-07-31 15:39:30
嗯,我的建议是在你做完上面的事后,把钱分给Y。Patsy并不是真正考虑到LHS变量的。在这种情况下,Statsmodels应该可以工作(目前,它不起作用,但这是状态模型的一个缺陷,海事组织)。如果您在github上提交错误报告,我可以查看它。)
FYI,你可以用
import statsmodels.api as sm
dta = sm.datasets.get_rdataset('iris', cache=True)作为获取Rdatasets集数据的快捷方式。
https://stackoverflow.com/questions/25055539
复制相似问题