用反指数绘制回归线

时间:2017-05-24 12:28:02

标签: julia

我试图绘制一个回归线,该回归线由p /(1-p)= -41.828 + 0.9864x建模,其中p是事件的概率,取决于x。我只需要用朱莉娅绘制这个图,这样一般的趋势就很明显了。我已经将模型重新排列为p = 1 /(exp(41.828-0.9864x)+1),但是,每当我使用julia绘制它时,它都会返回错误。我在下面附上了我的代码,以及随后的错误。我已经尝试了各种各样的事情,我可以想到绕过错误,但我无法...任何帮助将不胜感激!对于我第一次使用本网站时出现的任何格式错误表示道歉,但我试图按照要求做。

using PyPlot , Distributions , StatsBase, DataFrames
 xlin = float(linspace(-50.0,50,1000)); y=1.0/float(exp(41.828-0.9864*
(float(xlin)))+1.0)
PyPlot.plot(xlin, y, color="red", linewidth=2.0, linestyle="--")
title("Regression Line Plot");
PyPlot.grid(-25:7:125);
ylabel("Y");
xlabel("X");

这将返回错误:

MethodError: no method matching /(::Float64, ::Array{Float64,1})
Closest candidates are:
  /(::Float64, ::Float64) at float.jl:246
  /(::PyCall.PyObject, ::Any) at 
/home/juser/.julia/v0.5/PyCall/src/PyCall.jl:702
  /(::Real, ::Complex{T<:Real}) at complex.jl:182
  ...

1 个答案:

答案 0 :(得分:2)

它与plot命令无关。错误在这一行:

y=1.0/float(exp(41.828-0.9864*(float(xlin)))+1.0)

您需要./而不是/,因为您正在尝试进行元素操作。此外,没有理由一直致电float。 所以只是

y = 1.0 ./ exp(41.828 .- 0.9864 .* xlin) .+ 1.0 

应该这样做。对于其中一个操作数是标量的那些操作,你不需要所有的点,但你做的是初始除法,它使得恕我直言更清楚。