下面是我正在做的事情:
$ python
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
>>> import statsmodels.api as sm
>>> statsmodels.__version__
'0.5.0'
>>> import numpy
>>> y = numpy.array([1,2,3,4,5,6,7,
在Python的statsmodels.formula.api中,ols功能自动包含和估计一个拦截:
results = sm.ols(formula="s ~ x + y + z", data=somedata).fit()
results.params
(* Intercept 0.632646, x -1.258761, y 0.465076, z 0.497991 *)
因为我把它用在线性概率模型中,有没有办法把截距修正到0.5?
在读入Stata数据后,我在Python中运行OLS时遇到了问题。以下是我的代码和错误消息
import pandas as pd # To read data
import numpy as np
import statsmodels.api as sm
gss = pd.read_stata("gssSample.dta", preserve_dtypes=False)
X = gss[['age', 'impinc' ]]
y = gss[['educ']]
X = sm.add_constant(X) # adding
如何从适合python状态模型的WLS模型中获得杠杆/ get _影响力
以为例
# Load data
dat = sm.datasets.get_rdataset("Guerry", "HistData").data
# Fit regression model (using the natural log of one of the regressors)
results_ols = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit()
results_w = sm
我无法在python StatsModels中得到线性回归来拟合具有负斜率的数据序列--无论是RLM还是OLS都不适合我。举个非常简单的例子,我预计坡度为-1:
In [706]: ts12 = pandas.TimeSeries(data=[5,4,3,2,1],index=[1,2,3,4,5])
In [707]: ts12_h = sm.RLM(ts12.values, ts12.index, M=sm.robust.norms.HuberT())
In [708]: ts12_fit = ts12_h.fit()
In [710]: ts12_fit.fittedvalues
Out
我的项目有问题,我从twitter上提取了数据,将其保存为csv,还执行了数据情绪分析,但当我试图绘制它们时,我无法绘制它们。
#statmodels OLS first
y, X = dmatrices('retweet_count_l ~ surge_pricing + free_rides + promo+ driver + food + controversy + regulations', data=training, return_type='dataframe')
# Define the model from above Patsy-crea
我对编程非常陌生,我正在使用python来熟悉数据分析和机器学习。
我正在学习一个关于多元线性回归后向消除的教程。下面是现在的代码:
# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Importing the dataset
dataset = pd.read_csv('50_Startups.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 4].values
我正在学习多元线性回归,我正在使用后向消去法来优化我的模型,并使用python作为编程语言。 我重复使用了三行代码来删除有效值>0.05的列(即p>0.05)。我想对这些行应用一个循环或一个函数,这样就可以避免重复。 import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#importing the dataset
dataset=pd.read_csv('50_Startups.csv')
x=dataset.iloc[:,:-1].values #taking all
我正在试验一个时间序列(如,一个浮标列表)是否与自身相关。我已经玩过状态模型()中的函数了,现在我来看看Durbin的统计数据是否有价值。
这类事情似乎应该有效:
from statsmodels.regression.linear_model import OLS
import numpy as np
data = np.arange(100) # this should be highly correlated
ols_res = OLS(data)
dw_res = np.sum(np.diff(ols_res.resid.values))
如果你要运行这个程序,你会得到:
Trac
我不太明白如何在维度为?×2的矩阵中存储值。这就是我在R中取得的进展: 我的回归:?=?0+?1?+?,其中B0= 1和B1 = -1 set.seed(123)
n = 20
nreps=10000
beta_0 = -1
beta_1 = 1
ols = vector(mode="numeric", length=nreps)
##Start MC
for (r in 1:nreps) {
u = rnorm(n, mean = 0, sd = 1)
x = rnorm(n, mean = 1, sd = 2^2)
y = beta_0 + be
R中的I()函数用于在线性回归中创建新的预测器,例如X^2: lm.fit2=lm(medv∼lstat +I(lstat ^2)) 这里给出了一个很好的解释(What does the capital letter "I" in R linear regression formula mean?)。 我试图用Python用同样的公式做线性回归,但我似乎找不到等价的公式。此代码适用于单个变量 fit3 = smf.ols('medv~lstat', data=data).fit()
print(fit3.summary()) 但是,如果我尝试,下面的代码片段,
我正在使用statsmodels.api应用向后消除,代码给出了这个错误:‘`TypeError: ufunc 'isfinite’不支持输入类型,并且根据强制转换规则''safe'‘,输入不能被安全地强制为任何支持的类型。
我不知道如何解决这个问题。
以下是代码
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection i
我很难按照我想要的方式保存for循环的结果。
我当前运行的循环如下所示:
# Setup objects
n = 100
R = (1:1000)
P = seq(-.9, .9, .1)
betahat_OLS = rep(NA, 1000)
Bhat_OLS = rep(NA, 19)
# Calculate betahat_OLS for each p in P and each r in R
for (p in P) {
for (r in R) {
# Simulate data
v = rnorm(n)
e = rnorm(n)
z = rno
我试图拟合在statsmodels库中实现的线性回归模型。
我对fit()方法有疑问。假设我有尺寸为15的数据样本,我将其分解为3部分,并与模型相匹配。对每个fit()的调用将适当地适应模型,或者它会覆盖以前的值。
import numpy as np
import statsmodels.api as sm
# First call
X = [377, 295, 457, 495, 9] # independent variable
y = [23, 79, 16, 41, 40] # dependent variable
X = sm.add_constant(X)
ols = s