如何找到每个系数的p值(显着性)?
lm = sklearn.linear_model.LinearRegression()
lm.fit(x,y)
Run Code Online (Sandbox Code Playgroud) 我有一个pandas
数据框,我希望能够从B列和C列中的值预测A列的值.这是一个玩具示例:
import pandas as pd
df = pd.DataFrame({"A": [10,20,30,40,50],
"B": [20, 30, 10, 40, 50],
"C": [32, 234, 23, 23, 42523]})
Run Code Online (Sandbox Code Playgroud)
理想情况下,我会有类似的东西ols(A ~ B + C, data = df)
,但当我从算法库中查看示例时,scikit-learn
它似乎将数据提供给模型,其中包含行而不是列.这将要求我将数据重新格式化为列表中的列表,这似乎首先打败了使用pandas的目的.在pandas数据框中对数据运行OLS回归(或更普遍的机器学习算法)的最pythonic方法是什么?
我正努力在ggplot上添加回归线.我首先尝试使用abline,但我没有设法让它工作.然后我尝试了这个......
data = data.frame(x.plot=rep(seq(1,5),10),y.plot=rnorm(50))
ggplot(data,aes(x.plot,y.plot))+stat_summary(fun.data=mean_cl_normal) +
geom_smooth(method='lm',formula=data$y.plot~data$x.plot)
Run Code Online (Sandbox Code Playgroud)
但它也没有用.
如果我在回归中使用二进制解释变量,如何告诉R使用某个级别作为参考?
它只是默认使用某个级别.
lm(x ~ y + as.factor(b))
Run Code Online (Sandbox Code Playgroud)
与b {0, 1, 2, 3, 4}
.假设我想使用3而不是R使用的零.
regression r linear-regression categorical-data dummy-variable
我想使用lm()
函数在R中进行线性回归.我的数据是一年一度的时间序列,一年(22年),另一个州(50个州).我想为每个状态拟合一个回归,以便最后我有一个lm响应的向量.我可以想象为每个状态做循环然后在循环内进行回归并将每个回归的结果添加到向量.但是,这似乎不像R一样.在SAS中我会做一个'by'语句,在SQL中我会做'group by'.R的做法是什么?
我有一个回归模型的一些时间序列数据调查药物利用率.目的是将样条拟合到时间序列并计算95%CI等.模型如下:
id <- ts(1:length(drug$Date))
a1 <- ts(drug$Rate)
a2 <- lag(a1-1)
tg <- ts.union(a1,id,a2)
mg <-lm (a1~a2+bs(id,df=df1),data=tg)
Run Code Online (Sandbox Code Playgroud)
摘要输出mg
是:
Call:
lm(formula = a1 ~ a2 + bs(id, df = df1), data = tg)
Residuals:
Min 1Q Median 3Q Max
-0.31617 -0.11711 -0.02897 0.12330 0.40442
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.77443 0.09011 8.594 1.10e-11 ***
a2 0.13270 0.13593 0.976 0.33329
bs(id, df = df1)1 -0.16349 0.23431 -0.698 0.48832
bs(id, df = df1)2 0.63013 0.19362 3.254 0.00196 **
bs(id, …
Run Code Online (Sandbox Code Playgroud) 我希望这个问题不会成为"问答"问题......这里说:(多)共线性是指回归模型中预测变量之间的极高相关性.如何治愈它们......好吧,有时你不需要"治愈"共线性,因为它不会影响回归模型本身,而是解释个体预测因子的影响.
发现共线性的一种方法是将每个预测变量作为因变量,将其他预测变量作为自变量,确定R 2,如果它大于.9(或.95),我们可以考虑预测变量冗余.这是一种"方法"......其他方法呢?其中一些是耗时的,比如从模型中排除预测变量并观察b系数变化 - 它们应该明显不同.
当然,我们必须始终牢记分析的具体背景/目标......有时候,唯一的补救措施就是重复研究,但是现在,我对以多种共线性(多)共线性筛选冗余预测因子的各种方式感兴趣发生在回归模型中.
我有一个Java应用程序需要执行偏最小二乘回归.看来PLSR没有Java实现.Weka可能在某些时候有类似的东西,但它不再在API中.另一方面,我发现了一个很好的R实现,它有一个额外的好处.它被我想要复制的人使用,这意味着由于PLSR实现方式的不同,事情出错的可能性较小.
问题是:是否有足够好(且易于使用)的包使Java能够调用R,将一些参数传递给函数并读回结果?我的另一个选择是让Java在一个进程中生成R然后监视它.数据将被读取并写入磁盘.你会推荐哪两个?我错过了明显的第三种选择吗?
我有以下信息:
Height Weight
170 65
167 55
189 85
175 70
166 55
174 55
169 69
170 58
184 84
161 56
170 75
182 68
167 51
187 85
178 62
173 60
172 68
178 55
175 65
176 70
Run Code Online (Sandbox Code Playgroud)
我想在Excel中构建二次和三次回归分析.我知道如何通过Excel中的线性回归来做到这一点,但是二次和立方呢?我搜索了很多资源,但找不到任何有用的东西.
首先让我告诉我得到的可能不是我所期望的,也许你可以在这里帮助我.我有以下数据:
>>> x
array([ 3.08, 3.1 , 3.12, 3.14, 3.16, 3.18, 3.2 , 3.22, 3.24,
3.26, 3.28, 3.3 , 3.32, 3.34, 3.36, 3.38, 3.4 , 3.42,
3.44, 3.46, 3.48, 3.5 , 3.52, 3.54, 3.56, 3.58, 3.6 ,
3.62, 3.64, 3.66, 3.68])
>>> y
array([ 0.000857, 0.001182, 0.001619, 0.002113, 0.002702, 0.003351,
0.004062, 0.004754, 0.00546 , 0.006183, 0.006816, 0.007362,
0.007844, 0.008207, 0.008474, 0.008541, 0.008539, 0.008445,
0.008251, 0.007974, 0.007608, 0.007193, 0.006752, 0.006269,
0.005799, 0.005302, 0.004822, 0.004339, 0.00391 , 0.003481,
0.003095])
Run Code Online (Sandbox Code Playgroud)
现在,我想用4度多项式拟合这些数据.所以我这样做:
>>> coefs …
Run Code Online (Sandbox Code Playgroud) regression ×10
r ×6
python ×3
lm ×2
numpy ×2
scikit-learn ×2
statistics ×2
data-fitting ×1
excel ×1
ggplot2 ×1
java ×1
pandas ×1
statsmodels ×1