Julia 朱莉娅线性回归

Julia 朱莉娅线性回归,julia,Julia,我试图在朱莉娅身上拟合一个线性回归。 我有一个10列的数据框。前9列是预测值 我称之为X,最后一列是响应变量,我称之为Y 我键入了linreg(X,Y),但收到一条错误消息,上面说 linreg没有匹配DataFrame和DataArray浮点的方法 我想知道如何解决这个问题。 我正在考虑将X转换为数据数组 我尝试了convert(X,Array),但也出现了一个错误: “Convert没有与Convert匹配的方法” 是否有人有任何建议如果您的数据已经存在于数据框中,您应该查看该软件包 特别是

我试图在朱莉娅身上拟合一个线性回归。 我有一个10列的数据框。前9列是预测值 我称之为X,最后一列是响应变量,我称之为Y

我键入了
linreg(X,Y)
,但收到一条错误消息,上面说 linreg没有匹配DataFrame和DataArray浮点的方法

我想知道如何解决这个问题。 我正在考虑将X转换为数据数组

我尝试了
convert(X,Array)
,但也出现了一个错误: “Convert没有与Convert匹配的方法”
是否有人有任何建议

如果您的数据已经存在于
数据框中
,您应该查看该软件包

特别是
lm
功能应该做您想做的事情,如果您是R用户,那么您会觉得非常熟悉


如果您发布更多代码(可能是
DataFrame
store
X
Y
中的哪些列),我们可以进一步帮助您

您只是使用了
convert
错误。正确的语法是
convert(T,x)
它的内容是:将
x
转换为
T
类型的值

所以基本上你需要做:

linreg(convert(Array,X),convert(Array,Y))
它应该会起作用

更新:对数组执行标量加法时,必须在Julia 1.0中使用
dot
运算符。i、 e.
y=m*x.+b

也可以使用简单的线性代数进行线性回归。 以下是一个例子:

# Linear Algebra style
# For single linear regresion y= mx .+ b
m = 3.3; b = 2; x = rand(100,1)
y = m * x .+ b
# add noise
yn= y + randn(size(y)) * 0.5

# regression
X = zeros(100,2); X[:,1] = x;  X[:,2] = 1.0
coeff_pred = X\yn

slope =  round(coeff_pred[1], 2)
intercept = round(coeff_pred[2], 2)

println("The real slope is $m, and the predicted slope is $slope")
println("The real intercept is $b, and the predicted slope is $intercept")

我只是标记了R和python,因为使用R和python的人通常熟悉线性回归。所以我认为他们可以提供一些有用的建议。这看起来像线性回归的慢版本,我们不能写一个快速的和定制的吗?