previsão

previsão

  • Melhorando a previsão do ano do Linux no desktop

    Eu resolvi melhorar a previsão e o modelo pra tal sobre o Linux no desktop, uma realidade inegável.  Então escrevi algo em python pra fazer isso pra mim o trabalho e usar de algum modelo já pronto.

    
    (venv) helio@goosfraba ~/D/linux-desktop-dominance-forecast (main)> ./forecasting.py
                Windows  OS X  Unknown  Linux  Chrome OS  iOS  Android  \
    Date                                                                 
    2009-01-01    95.42  3.68     0.17   0.64        0.0  0.0      0.0   
    2009-02-01    95.39  3.76     0.14   0.62        0.0  0.0      0.0   
    2009-03-01    95.22  3.87     0.16   0.65        0.0  0.0      0.0   
    2009-04-01    95.13  3.92     0.17   0.66        0.0  0.0      0.0   
    2009-05-01    95.25  3.75     0.24   0.65        0.0  0.0      0.0   
    
                Playstation  Other  
    Date                            
    2009-01-01         0.08   0.02  
    2009-02-01         0.07   0.02  
    2009-03-01         0.08   0.02  
    2009-04-01         0.10   0.02  
    2009-05-01         0.09   0.02  
                Windows   OS X  Unknown  Linux  Chrome OS  iOS  Android  \
    Date                                                                  
    2024-01-01    73.00  16.11     5.33   3.77       1.78  0.0      0.0   
    2024-02-01    72.17  15.42     6.10   4.03       2.27  0.0      0.0   
    2024-03-01    72.47  14.68     6.52   4.05       2.27  0.0      0.0   
    2024-04-01    73.50  14.70     5.34   3.88       2.56  0.0      0.0   
    2024-05-01    73.91  14.90     4.87   3.77       2.54  0.0      0.0   
    2024-06-01    72.81  14.97     6.23   4.05       1.93  0.0      0.0   
    2024-07-01    72.10  14.92     7.13   4.44       1.41  0.0      0.0   
    
                Playstation  Other  
    Date                            
    2024-01-01          0.0   0.01  
    2024-02-01          0.0   0.01  
    2024-03-01          0.0   0.01  
    2024-04-01          0.0   0.01  
    2024-05-01          0.0   0.01  
    2024-06-01          0.0   0.01  
    2024-07-01          0.0   0.01  
    /home/helio/DEVEL/linux-desktop-dominance-forecast/venv/lib/python3.12/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.
      self._init_dates(dates, freq)
    /home/helio/DEVEL/linux-desktop-dominance-forecast/venv/lib/python3.12/site-packages/statsmodels/tsa/base/tsa_model.py:473: ValueWarning: No frequency information was provided, so inferred frequency MS will be used.
      self._init_dates(dates, freq)
    /home/helio/DEVEL/linux-desktop-dominance-forecast/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/sarimax.py:978: UserWarning: Non-invertible starting MA parameters found. Using zeros as starting parameters.
      warn('Non-invertible starting MA parameters found.'
    RUNNING THE L-BFGS-B CODE
    
               * * *
    
    Machine precision = 2.220D-16
     N =           11     M =           10
     This problem is unconstrained.
    
    At X0         0 variables are exactly at the bounds
    
    At iterate    0    f=  2.00575D-01    |proj g|=  1.24633D+00
    
    At iterate    5    f= -1.49635D-01    |proj g|=  1.77236D-01
    
    At iterate   10    f= -3.64537D-01    |proj g|=  1.24837D-01
    
    At iterate   15    f= -3.84843D-01    |proj g|=  1.22570D-01
    
    At iterate   20    f= -4.20877D-01    |proj g|=  9.71167D-02
    
    At iterate   25    f= -4.29351D-01    |proj g|=  1.13565D-01
    
    At iterate   30    f= -4.33425D-01    |proj g|=  9.06436D-02
    
    At iterate   35    f= -4.34142D-01    |proj g|=  3.98871D-02
    
    At iterate   40    f= -4.36192D-01    |proj g|=  4.26757D-01
    
    At iterate   45    f= -4.37801D-01    |proj g|=  6.82859D-02
    
    At iterate   50    f= -4.37938D-01    |proj g|=  1.67285D-02
    
               * * *
    
    Tit   = total number of iterations
    Tnf   = total number of function evaluations
    Tnint = total number of segments explored during Cauchy searches
    Skip  = number of BFGS updates skipped
    Nact  = number of active bounds at final generalized Cauchy point
    Projg = norm of the final projected gradient
    F     = final function value
    
               * * *
    
       N    Tit     Tnf  Tnint  Skip  Nact     Projg        F
       11     50     55      1     0     0   1.673D-02  -4.379D-01
      F = -0.43793754789434586     
    
    STOP: TOTAL NO. of ITERATIONS REACHED LIMIT                 
    /home/helio/DEVEL/linux-desktop-dominance-forecast/venv/lib/python3.12/site-packages/statsmodels/base/model.py:607:
      ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals
      warnings.warn("Maximum Likelihood optimization failed to "
    The year of Linux on the Desktop: 2036-11-30 00:00:00
    

    Se ignorarmos os pequenos erros e avisos que aparecem, coisa pouca e irrelevante como valor divergir demais, podemos ver claramente quando o ano do Linux no desktop acontece: 2036-11-30

    Então a previsão revisada é que logo estaremos em todos os lugares. Aguardem-nos!

    E claro que publiquei isso tudo no GitHub:

    E usei o seguinte artigo como referência (e código, diga-se de passagem):

    Bom ano do Linux no desktop pra todos vocês.