我使用Julia
,GLM
和StatsModels
进行线性回归并打印结果,这些结果直接包含在研究报告中。该打印输出包括带有对象类型的标题行,这是报表中的干扰因素。例如,这段代码:
using GLM, StatsModels, DataFrames
df = DataFrames.DataFrame(a = rand(10), b = rand(10))
f = fit(LinearModel, @formula(a ~ b), df)
println(f)
打印:
StatsModels.DataFrameRegressionModel{GLM.LinearModel{GLM.LmResp{Array{Float64,1}},GLM.DensePredChol{Float64,Base.LinAlg.Cholesky{Float64,Array{Float64,2}}}},Array{Float64,2}}
Formula: a ~ 1 + b
Coefficients:
Estimate Std.Error t value Pr(>|t|)
(Intercept) 0.238502 0.224529 1.06223 0.3191
b 0.333053 0.366105 0.909721 0.3896
我可以通过将对象转换为字符串并在换行符处分割来避免第一行:
f2 = split(string(f), "\n")
for i in 2:length(f2)
println(f2[i])
end
然后我得到:
Formula: a ~ 1 + b
Coefficients:
Estimate Std.Error t value Pr(>|t|)
(Intercept) 0.238502 0.224529 1.06223 0.3191
b 0.333053 0.366105 0.909721 0.3896
但这很丑陋,而且容易出错。在GLM documentation of methods applied to a fit object中,我没有找到任何方法或参数。有没有人有一种更清洁的方式?
答案 0 :(得分:2)
在评论中进行讨论。如果只需要获取模型系数的摘要,请写:
julia> coeftable(f)
Estimate Std.Error t value Pr(>|t|)
(Intercept) 0.337666 0.205716 1.64142 0.1393
b -0.0887478 0.378739 -0.234324 0.8206