[R] Help please with error from nnet::multinom
Bert Gunter
bgunter.4567 at gmail.com
Sun Jun 26 21:32:43 CEST 2016
Thanks, David.
That is very interesting, because ?multinom says that the value is:
"A nnet object with additional components: ..."
Of course I could have checked methods(predict), but I just took the
Help file at its word. Should it not be revised to say explicitly:
"An object of class 'multinom', which is a nnet object ... "
??
Cheers,
Bert
Bert Gunter
"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Sun, Jun 26, 2016 at 12:14 PM, David Winsemius
<dwinsemius at comcast.net> wrote:
>
>> On Jun 26, 2016, at 11:32 AM, Lars Bishop <lars52r at gmail.com> wrote:
>>
>> Thanks Bert.
>>
>> But I it doesn't complain when predict is used on X instead of X_new
>> (using nnet_7.3-12), which is even more puzzling to me:
>>
>> pred <- predict(fit, X, type = "probs")
>
> Indeed: There is a predict.multinom function and it does have 'probs' as an acceptable argument to type:
>
> I got success (or at least an absence of an error message) with:
>
> #----------
> X <- data.frame(matrix( 3 * runif(length(ysim)), nrow = 300, ncol = 3))
> X_new <- data.frame(matrix( 3 * runif(length(ysim)), nrow = 200, ncol = 3))
> str(X)
>
> 'data.frame': 300 obs. of 3 variables:
> $ X1: num 0.797 1.116 1.719 2.725 0.605 ...
> $ X2: num 0.797 1.116 1.719 2.725 0.605 ...
> $ X3: num 0.797 1.116 1.719 2.725 0.605 ...
>
> fit <- multinom(y ~ ., data=X, trace = FALSE)
> pred <- predict(fit, setNames(X_new, names(X)), type = "probs")
>
>> head(pred)
> ysim1 ysim2 ysim3
> 1 0.3519378 0.3517418 0.2963204
> 2 0.3135513 0.3138573 0.3725915
> 3 0.3603779 0.3600461 0.2795759
> 4 0.3572297 0.3569498 0.2858206
> 5 0.3481512 0.3480128 0.3038360
> 6 0.3813310 0.3806118 0.2380572
>
> #------------
>
>
>> head(pred)
>> ysim1 ysim2 ysim3
>> 1 0.3059421 0.3063284 0.3877295
>> 2 0.3200219 0.3202551 0.3597230
>> 3 0.3452414 0.3451460 0.3096125
>> 4 0.3827077 0.3819603 0.2353320
>> 5 0.2973288 0.2977994 0.4048718
>> 6 0.3817027 0.3809759 0.2373214
>>
>> Thanks again,
>> Lars.
>>
>>
>> On Sun, Jun 26, 2016 at 1:05 PM, Bert Gunter <bgunter.4567 at gmail.com> wrote:
>>
>>> Well, for one thing, there is no "probs" method for predict.nnet, at
>>> least in my version: nnet_7.3-12
>>>
>>> Cheers,
>>> Bert
>>>
>>>
>>> Bert Gunter
>>>
>>> "The trouble with having an open mind is that people keep coming along
>>> and sticking things into it."
>>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>>>
>>>
>>> On Sun, Jun 26, 2016 at 9:27 AM, Lars Bishop <lars52r at gmail.com> wrote:
>>>> Hello,
>>>>
>>>> I'd appreciate your help in spotting the reason for the error and warning
>>>> messages below.
>>>>
>>>> library(nnet)
>>>> set.seed(1)
>>>> ysim <- gl(3, 100)
>>>> y <- model.matrix(~ysim -1)
>>>> X <- matrix( 3 * runif(length(ysim)), nrow = 300, ncol = 3)
>>>> X_new <- matrix( 3 * runif(length(ysim)), nrow = 200, ncol = 3)
>>>>
>>>> fit <- multinom(y ~ X, trace = FALSE)
>>>> pred <- predict(fit, X_new, type = "probs")
>>>>
>>>> Error in predict.multinom(fit, X_new, type = "probs") :
>>>> NAs are not allowed in subscripted assignments
>>>> In addition: Warning message:
>>>> 'newdata' had 200 rows but variables found have 300 rows
>>>>
>>>> Thanks,
>>>> Lars.
>>>>
>>>> [[alternative HTML version deleted]]
>>>>
>>>> ______________________________________________
>>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> David Winsemius
> Alameda, CA, USA
>
More information about the R-help
mailing list