我试图用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),但我只需要一列。那么,如何让Patsy输出内生的一面,以便我可以直接在二元logistic回归中使用它呢?你知道吗
嗯,我的建议是在你做了以上的事之后再切到y。Patsy的设计并没有考虑LHS变量。在这种情况下,Statsmodels应该可以工作(目前没有,但这是Statsmodels IMO中的一个bug。如果您在github上提交一个bug报告,我可以查看它)
仅供参考,你可以用
作为获取Rdatasets数据的快捷方式。你知道吗
相关问题 更多 >
编程相关推荐