Thank you Adam, this works.
Let me suggest that this information be included in the GLM documentation:
To fit a GLM model, use the function,
glm(formula, data, family, link),
where,
- formula uses column symbols from the DataFrame data, e.g., if
names(data)=[:Y,:X], then a valid formula is Y~X;
- data is a DataFrame which may contain NA values, the rows with NA values
will be ignored (apparently);
- family may be chosen from Binomial(), Gamma(), Normal(), or Poisson(),
and the parentheses are required; and,
- link may be chosen from the list in the GLM documentation, such as
LogitLink(), and again the parentheses are required. For some families, a
default link is available so the link argument may be left blank.
Bradley
On Sunday, August 31, 2014 12:56:19 PM UTC-5, Adam Kapor wrote:
>
> This works for me:
>
> ```
>
> *julia> **fit(GeneralizedLinearModel,Y~X,data,Binomial(),ProbitLink())*
>
> *DataFrameRegressionModel{GeneralizedLinearModel,Float64}:*
>
> *Coefficients:*
>
> * Estimate Std.Error z value Pr(>|z|)*
>
> *(Intercept) 0.430727 1.98019 0.217518 0.8278*
>
> *X 2.37745e-17 0.91665 2.59362e-17 1.0000*
>
> *julia> **fit(GeneralizedLinearModel,Y~X,data,Binomial(),LogitLink())*
>
> *DataFrameRegressionModel{GeneralizedLinearModel,Float64}:*
>
> *Coefficients:*
>
> * Estimate Std.Error z value Pr(>|z|)*
>
> *(Intercept) 0.693147 3.24037 0.21391 0.8306*
>
> *X -7.44332e-17 1.5 -4.96221e-17 1.0000*
>
> *```*
>
> On Sunday, August 31, 2014 1:27:15 PM UTC-4, Bradley Setzler wrote:
>>
>> Has anyone successfully performed probit or logit regression in Julia?
>> The GLM documentation <https://github.com/JuliaStats/GLM.jl> does not
>> provide a generalizable example of how to use glm(). It gives a Poisson
>> example without any suggestion of how to switch from Poisson to some other
>> type.
>>
>> *Using the Poisson example from GLM documentation works:*
>>
>> julia> X = [1;2;3.]
>> julia> Y = [1;0;1.]
>> julia> data = DataFrame(X=X,Y=Y)
>> julia> fit(GeneralizedLinearModel, Y ~ X,data, Poisson())
>> DataFrameRegressionModel{GeneralizedLinearModel,Float64}:
>> Coefficients:
>> Estimate Std.Error z value Pr(>|z|)
>> (Intercept) -0.405465 1.87034 -0.216787 0.8284
>> X -3.91448e-17 0.8658 -4.52123e-17 1.0000
>>
>> *But does not generalize:*
>>
>> julia> fit(GeneralizedLinearModel, Y ~ X ,data, Logit())
>> ERROR: Logit not defined
>>
>> julia> fit(GeneralizedLinearModel, Y ~ X, data, link=:ProbitLink)
>> ERROR: `fit` has no method matching fit(::Type{GeneralizedLinearModel},
>> ::Array{Float64,2}, ::Array{Float64,1})
>>
>> julia> fit(GeneralizedLinearModel, Y ~ X, data,
>> family="binomial",link="probit")
>> ERROR: `fit` has no method matching fit(::Type{GeneralizedLinearModel},
>> ::Array{Float64,2}, ::Array{Float64,1})
>>
>> ....and a dozen other similar attempts fail.
>>
>>
>> Thanks,
>> Bradley
>>
>>