R implementation of Genetic Algorithm for Bass Model











up vote
2
down vote

favorite
1












I try to estimate Bass Curves to analyse diffusion of innovation for different groups. Until now I use nlsLM() of the minpack.lm package to estimate the parameter of the curve/to fit the curve. I loop through different starting values to estimate the best fit using this command for the different starting values:



Bass.nls <- nlsLM(datapoints ~ M * (((P + Q)^2/P) * exp(-(P + Q) * time))/(1 + (Q/P) * exp(-(P + Q) * time))^2
, start = list(M=m_start, P= p_start, Q=q_start)
, trace = F
, control = list(maxiter = 100, warnOnly = T) )


Since some groups have little data points many do not converge.



Venkatesan and Kumar (2002) suggest to use a Genetic Algorithm approach for bass model estimations when data is scarce. I have found some packages that implement GA in R (like GA, genalg, gafit). However, since I am new to the field, I don't know which package to use and how to use the bass formula in the packages.




  • Is there a package you would recommend for this kind of estimation?

  • If yes, is there an example for how to include the formula of the bass model in the code of the package?










share|improve this question







New contributor




JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    up vote
    2
    down vote

    favorite
    1












    I try to estimate Bass Curves to analyse diffusion of innovation for different groups. Until now I use nlsLM() of the minpack.lm package to estimate the parameter of the curve/to fit the curve. I loop through different starting values to estimate the best fit using this command for the different starting values:



    Bass.nls <- nlsLM(datapoints ~ M * (((P + Q)^2/P) * exp(-(P + Q) * time))/(1 + (Q/P) * exp(-(P + Q) * time))^2
    , start = list(M=m_start, P= p_start, Q=q_start)
    , trace = F
    , control = list(maxiter = 100, warnOnly = T) )


    Since some groups have little data points many do not converge.



    Venkatesan and Kumar (2002) suggest to use a Genetic Algorithm approach for bass model estimations when data is scarce. I have found some packages that implement GA in R (like GA, genalg, gafit). However, since I am new to the field, I don't know which package to use and how to use the bass formula in the packages.




    • Is there a package you would recommend for this kind of estimation?

    • If yes, is there an example for how to include the formula of the bass model in the code of the package?










    share|improve this question







    New contributor




    JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      up vote
      2
      down vote

      favorite
      1









      up vote
      2
      down vote

      favorite
      1






      1





      I try to estimate Bass Curves to analyse diffusion of innovation for different groups. Until now I use nlsLM() of the minpack.lm package to estimate the parameter of the curve/to fit the curve. I loop through different starting values to estimate the best fit using this command for the different starting values:



      Bass.nls <- nlsLM(datapoints ~ M * (((P + Q)^2/P) * exp(-(P + Q) * time))/(1 + (Q/P) * exp(-(P + Q) * time))^2
      , start = list(M=m_start, P= p_start, Q=q_start)
      , trace = F
      , control = list(maxiter = 100, warnOnly = T) )


      Since some groups have little data points many do not converge.



      Venkatesan and Kumar (2002) suggest to use a Genetic Algorithm approach for bass model estimations when data is scarce. I have found some packages that implement GA in R (like GA, genalg, gafit). However, since I am new to the field, I don't know which package to use and how to use the bass formula in the packages.




      • Is there a package you would recommend for this kind of estimation?

      • If yes, is there an example for how to include the formula of the bass model in the code of the package?










      share|improve this question







      New contributor




      JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I try to estimate Bass Curves to analyse diffusion of innovation for different groups. Until now I use nlsLM() of the minpack.lm package to estimate the parameter of the curve/to fit the curve. I loop through different starting values to estimate the best fit using this command for the different starting values:



      Bass.nls <- nlsLM(datapoints ~ M * (((P + Q)^2/P) * exp(-(P + Q) * time))/(1 + (Q/P) * exp(-(P + Q) * time))^2
      , start = list(M=m_start, P= p_start, Q=q_start)
      , trace = F
      , control = list(maxiter = 100, warnOnly = T) )


      Since some groups have little data points many do not converge.



      Venkatesan and Kumar (2002) suggest to use a Genetic Algorithm approach for bass model estimations when data is scarce. I have found some packages that implement GA in R (like GA, genalg, gafit). However, since I am new to the field, I don't know which package to use and how to use the bass formula in the packages.




      • Is there a package you would recommend for this kind of estimation?

      • If yes, is there an example for how to include the formula of the bass model in the code of the package?







      r curve-fitting genetic-algorithm






      share|improve this question







      New contributor




      JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Nov 8 at 10:12









      JMueller

      112




      112




      New contributor




      JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      JMueller is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





























          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          JMueller is a new contributor. Be nice, and check out our Code of Conduct.










           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205558%2fr-implementation-of-genetic-algorithm-for-bass-model%23new-answer', 'question_page');
          }
          );

          Post as a guest





































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          JMueller is a new contributor. Be nice, and check out our Code of Conduct.










           

          draft saved


          draft discarded


















          JMueller is a new contributor. Be nice, and check out our Code of Conduct.













          JMueller is a new contributor. Be nice, and check out our Code of Conduct.












          JMueller is a new contributor. Be nice, and check out our Code of Conduct.















           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205558%2fr-implementation-of-genetic-algorithm-for-bass-model%23new-answer', 'question_page');
          }
          );

          Post as a guest




















































































          Popular posts from this blog

          Landwehr

          Reims

          Schenkenzell