линейная модель с Юлией, ошибка

avatar
Xiaol.Song
8 апреля 2018 в 11:16
198
1
-1
 using RDatasets
 using GLM
 housing = dataset("Ecdat", "Housing")
 plot(housing, x="LotSize", y="Price", Geom.point)
 log_housing = DataFrame(LotSize=log(housing[:,2]), Price=log(housing[:,1]))
 plot(log_housing, x="LotSize", y="Price", 
 Geom.point,Guide.xlabel("LotSize(log)"), Guide.ylabel("Price(log)"))
 lm = fit(LinearModel, Price ~ LotSize, log_housing)
 #UndefVarError: Price not defined

Я запускаю линейную модель с Джулией, но не могу понять, почему возникает ошибка Вот чем я занимаюсь

Источник
phipsgabler
8 апреля 2018 в 11:37
0

Пожалуйста, включите свой код и ошибки в виде текста и более подробного описания. Вы ознакомились с последними документами GLM.jl?

Xiaol.Song
8 апреля 2018 в 12:58
0

Я загружаю код и сейчас проверю GLM.jl.

Ответы (1)

avatar
Bogumił Kamiński
8 апреля 2018 в 16:01
2

Для оценки линейной модели вы можете использовать функцию lm (и ваш код фактически перезапишет это имя), поэтому лучше написать:

julia> lm_model = lm(@formula(Price ~ LotSize), log_housing)
StatsModels.DataFrameRegressionModel{GLM.LinearModel{GLM.LmResp{Array{Float64,1}},GLM.DensePredChol{Float64,Base.LinAlg.Cholesky{Float64,Array{Float64,2}}}},Array{Float64,2}}

Formula: Price ~ 1 + LotSize

Coefficients:
             Estimate Std.Error t value Pr(>|t|)
(Intercept)   6.46853  0.276741  23.374   <1e-83
LotSize      0.542179 0.0326501 16.6057   <1e-49

В качестве примечания: применение функции log к вектору устарело, вы должны использовать log. (транслируется):

log_housing = DataFrame(LotSize=log.(housing[:,2]), Price=log.(housing[:,1]))