我正在尝试从 python 中的线性回归(OLS)中获取 beta 和误差项。我被困在声明中X=sm.add_constant(X, prepend=True)
,该声明返回一个
错误:“AttributeError:‘模块’对象没有属性‘add_constant’”
我已经安装了statsmodels模块。
我正在对与房屋有关的数据进行线性回归分析。目前我有 23 个功能。其中一些显然是有序的(例如年份、房间数、楼层)。有些功能是分类的,我对在编码为数字格式时如何处理它们感到困惑。我对使用哪种编码方法犹豫不决:one-hot 编码(用于分类)或只是序数映射(用于序数数据)。我知道诸如颜色、性别、地区、国籍等分类特征显然必须使用虚拟编码进行编码。而且很明显,诸如可能值为“旧”、“翻新”、“新”的条件这样的分类特征可以分别排序和编码为1、2、3。
但我不确定如何编码不太明显的特征。该特征的性质不会立即引人注目,并且在某种程度上可以同时归因于序数数据和分类数据。让我们看一下例子:
Strongly Agree
Agree
Undecided
Disagree
Strongly Disagree
Run Code Online (Sandbox Code Playgroud)
作者决定按顺序对它们进行编码。有些人建议使用虚拟编码。不清楚。
另一个例子(材料):
Plastic
Wood
Metal
Armored
Run Code Online (Sandbox Code Playgroud)
从我的角度来看,这些数据可以按顺序排序和编码为 1,2,3,4。简单装甲比金属更贵。金属比木材等贵。但我在 youtube 上看到了一个讲座,据说不要仅仅因为看到一些升序或降序模式就对特征进行常规编码。这些模式可能是幻觉和错误的。
另一个例子(互联网连接类型):
DSL
ADSL
SDSL
Cable
Broadband
Run Code Online (Sandbox Code Playgroud)
其中一些比其他更快,一些比其他慢,但没有“明确的顺序”。如何处理此类“不清楚”的分类数据。
如何区分分类数据和序数数据?或者我只需要按序编码非常简单的序数变量,例如“条件”,并将其余不清楚的变量保留为分类和虚拟编码。
encoding regression machine-learning linear-regression categorical-data
I have a dataframe as below (obtained after lot of preprocessing)
Please find dataframe
d = {'token': {361: '180816_031', 119: '180816_031', 101: '180816_031', 135: '180816_031', 292: '180816_031',
133: '180816_031', 99: '180816_031', 270: '180816_031', 19: '180816_031', 382: '180816_031',
414: '180816_031', 267: '180816_031', 218: '180816_031', 398: '180816_031', 287: '180816_031',
155: '180816_031', 392: '180816_031', 265: '180816_031', 239: '180816_031', 237: '180816_031'},
'station': {361: 'deneb', 119: 'callisto', 101: 'callisto', 135: 'callisto', 292: 'callisto', 133: 'deneb',
99: 'callisto', 270: 'callisto', 19: 'deneb', 382: 'callisto', 414: 'deneb', …
Run Code Online (Sandbox Code Playgroud) 我的模型是
lm(formula = medv ~ crim + indus + rm + dis + crim * indus)
我必须将rm*rm
2 阶多项式项添加到上述模型中。我们如何在 R 中做到这一点?
如何找出回归中使用了多少个观察值?
model_simple <- as.formula("completion_yesno ~ ac + ov + UCRate + FirstWeek + LastWeek + DayofWeekSu + DayofWeekMo + DayofWeekTu + DayofWeekWe + DayofWeekTh + DayofWeekFr + MonthofYearJan + MonthofYearFeb + MonthofYearMar + MonthofYearApr +MonthofYearMay+ MonthofYearJun + MonthofYearJul + MonthofYearAug + MonthofYearSep + MonthofYearOct + MonthofYearNov")
clog_simple1 = glm(model_simple,data=cllw,family = binomial(link = cloglog))
summary(clog_simple1)
Run Code Online (Sandbox Code Playgroud)
我已经尝试了fitted
没有导致具体数量的观察 N 的命令
我想将我的数据拟合到已使用 Matlab 优化的特定函数中。
我收到以下错误:“警告消息:计算失败stat_smooth()
:奇异梯度”
请帮忙!这是我的 R 代码:
tibble
x y SEM
1 1 0.0342 0.00532
2 3 0.0502 0.00639
3 5 0.0700 0.0118
4 10 0.123 0.0269
5 20 0.154 0.0125
6 30 0.203 0.0190
7 40 0.257 0.0255
8 50 0.287 0.0266
9 60 0.345 0.0347
10 90 0.442 0.0398
11 120 0.569 0.0570
12 180 0.726 0.0406
13 240 0.824 0.0150
14 360 0.868 0.00821
15 1440 0.890 0.0246
tibble %>%
ggplot(aes(x, y)) +
geom_point()+
geom_errorbar(aes(ymin=y-SEM, …
Run Code Online (Sandbox Code Playgroud) 我在互联网上找到了以下代码
mod1 <- lm(mpg ~ weight + I(weight^2) + foreign, auto)
功能是什么I()
?似乎结果weight^2
是一样的I(weight^2)
.
我正在研究一个拥有超过300K元素的大数据集,并运行一些回归分析,尝试使用预测变量Distance来估计一个名为Rate的参数.我有回归方程.现在我想获得信心和预测间隔.我可以通过命令轻松获得系数的置信区间:
> confint(W1500.LR1, level = 0.95)
2.5 % 97.5 %
(Intercept) 666.2817393 668.0216072
Distance 0.3934499 0.3946572
Run Code Online (Sandbox Code Playgroud)
它给出了系数CI的上限和下限.现在我想获得预测间隔的相同上限和下限.到目前为止我唯一学到的是,我可以使用以下代码获取距离的特定值(例如200,500等)的预测间隔:
predict(W1500.LR1, newdata, interval="predict")
Run Code Online (Sandbox Code Playgroud)
这对我没用,因为我有超过300K的不同距离值,需要为每个距离值运行此代码.获取预测间隔的任何简单方法,如上面显示的confint命令?
关于理解线性回归模型我有一个非常基本的问题.考虑简单的情况,当$ y = a + bx + e $时,其中$ e $是错误术语.我使用OLS估算系数$ a $和$ b $.然后拟合值为$\hat y =\hat a +\hat bx $.他们不应该躺在同一条线上,因为它是线性关系吗?我问,因为我在R中进行简单的操作并且具有违反直觉的结果
x <- rnorm(20, 3, 1)
y <- 12 + 4*x + rnorm(20, 0, 0.5)
m <- lm(y ~ x)
a <- coef(m)[1]
b = coef(m)[2]
plot(x, y) #plot initial data
abline(a = a, b = b, lwd = 2, col = 2) #plot fitted line
points(x = m$fitted.values, col = 4, pch = 4) #plot fitted values
legend('topleft', c("Actual", …
Run Code Online (Sandbox Code Playgroud) 我必须每天对包含600万行和20多列的数据集运行回归.我想加快计算速度并将其移入云端.是tensorflow.rstudio目前我的目的是最好的选择?
我想在R中绘制多个图形。但是,我不想使用par()或layout()函数。我想通过按Enter来更改图,就像用于回归的内置图函数一样。我该如何编写自己的代码?
我可以使用该anova
函数来获得线性模型的ANOVA表.然而,这给出了每个解释变量对响应变量的单独影响.我想知道R中是否有任何函数可以获得overall ANOVA
所有解释变量对响应变量的总体影响.在此先感谢您的帮助.
set.seed(12345)
X1 <- 10*abs(rnorm(n=10, mean = 5, sd = 1))
X2 <- 20*abs(rnorm(n=10, mean = 4, sd = 2))
Y <- 50*abs(rnorm(n=10, mean = 10, sd = 4))
df <- data.frame(X1, X2, Y)
fm1 <- lm(formula=Y~X1+X2, data=df)
anova(fm1)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 37842 37842 0.7815 0.406
X2 1 115774 115774 2.3910 0.166
Residuals 7 338941 48420
Run Code Online (Sandbox Code Playgroud)
编辑(2017-10-23)
所需的输出是
Analysis of Variance …
Run Code Online (Sandbox Code Playgroud) 以下是逗号分隔形式的数据集示例(顶行中包含变量名称)...
LABEL,X,Y
bimmy,1,2
bimmy,2,4
bimmy,3,6
jimmy,2,8
jimmy,5,4
jimmy,6,10
marian,3,10
marian,4,9
marian,5,5
Run Code Online (Sandbox Code Playgroud)
我想对每个LABEL进行X和Y的线性回归分析.所以,我会对'bimmy'分析X和Y,然后分析'jimmy',然后分析'marian'.
这在SPSS中是否可行?R更容易吗?
我用类似措辞查询了Google和Stack Overflow,但没有发现任何相关内容.
regression ×13
r ×10
python ×2
statistics ×2
amazon-ec2 ×1
anova ×1
dataframe ×1
encoding ×1
ggplot2 ×1
ggplotly ×1
gpu ×1
lm ×1
nls ×1
pandas ×1
plot ×1
prediction ×1
scatter-plot ×1
spss ×1
tensorflow ×1