Nano Hash - криптовалюты, майнинг, программирование

Извлечение результатов регрессии с именами ковариат

Я хотел бы запустить линейную регрессию с использованием категориальной переменной воздействия и вывести результаты на лист Excel с именами каждой ковариаты, включенными рядом с их результатами.

Код Stata ниже отлично работает для экспорта результатов:

sysuse auto.dta, clear
describe
summ

postfile temp str40 exp str40 outcome adjust N beta se lci uci pval using ///
"test.dta", replace

foreach out in price {
    foreach exp in i.foreign {
        foreach adjust in 1 2 {

            if `adjust'==1 local adjusted ""
            if `adjust'==2 local adjusted "mpg weight length displacement i.trunk"

            reg `out' `exp' `adjusted'

            local N = e(N)
            matrix table=r(table)

            forvalues i = 1 / `= colsof(r(table))-1' {

                local beta = table[1,`i']
                local se = table[2,`i']
                local lci = table[5,`i']
                local uci = table[6,`i']
                local pval=table[4,`i']

                post temp ("`exp'") ("`out'") (`adjust') (`N') (`beta') ///
                (`se') (`lci') (`uci') (`pval')

            }
        }
    }
}

postclose temp

use "test.dta", clear

Однако все строки помечены как i.foreign, поэтому трудно понять, какие результаты соответствуют другим ковариатам.

В идеале мне нужен столбец со строками, показывающими имена, соответствующие результатам, т.е. mpg, weight, length, displacement, i.trunk


  • Спасибо, но это все еще не показывает, какие результаты соответствуют каждой ковариате, например, в строках 1-4 должно быть указано «иностранный». В строке 5 должен быть указан расход на галлон, в строке 6 должен быть указан вес и т. д.? 05.12.2018
  • Если вы хотите включить экспозицию, вы просто добавляете exp перед настройкой в ​​​​post temp. То есть непонятно, чего вы хотите. Ряды 3 и 4 корректируются. Как он может говорить только foreign? 05.12.2018
  • Вам также необходимо изменить длину str в exp с 40 до 100 или больше. 05.12.2018
  • Смотрите мой пересмотренный ответ. 05.12.2018
  • Мне нужно знать переменную, с которой связана бета-версия. Например, бета-версия в строке 5 предназначена для миль на галлон. Ваше решение в настоящее время не показывает, к какой переменной относится бета-версия. 05.12.2018

Ответы:


1

Если вы хотите узнать имя столбца матрицы, соответствующее каждой бета-версии:

sysuse auto.dta, clear
describe 
summ

postfile temp str100 exp str40 outcome adjust N beta se lci uci pval using ///
"test.dta", replace

foreach out in price {
foreach exp in i.foreign {
    foreach adjust in 1 2 {

        if `adjust'==1 local adjusted "" 
        if `adjust'==2 local adjusted "mpg weight length displacement i.trunk" 

        reg `out' `exp' `adjusted' 

        local N = e(N) 
        matrix table=r(table)
        local matnames: colnames table
        tokenize `matnames'

        forvalues i = 1 / `= colsof(r(table))-1' {
            local beta = table[1,`i']
            local se = table[2,`i']
            local lci = table[5,`i']
            local uci = table[6,`i']
            local pval=table[4,`i']                         

            post temp ("``i''") ("`out'") (`adjust') (`N') (`beta') ///
                      (`se') (`lci') (`uci') (`pval')
        }                           
      }
   } 
}
postclose temp 

use "test.dta", clear

list exp outcome adjust N beta, separator(0)

     +--------------------------------------------------+
     |          exp   outcome   adjust    N        beta |
     |--------------------------------------------------|
  1. |   0b.foreign     price        1   74           0 |
  2. |    1.foreign     price        1   74    312.2587 |
  3. |   0b.foreign     price        2   74           0 |
  4. |    1.foreign     price        2   74    3152.553 |
  5. |          mpg     price        2   74   -9.723515 |
  6. |       weight     price        2   74    4.613294 |
  7. |       length     price        2   74   -92.95226 |
  8. | displacement     price        2   74    10.30914 |
  9. |     5b.trunk     price        2   74           0 |
 10. |      6.trunk     price        2   74    530.6144 |
 11. |      7.trunk     price        2   74   -245.4009 |
 12. |      8.trunk     price        2   74    1722.497 |
 13. |      9.trunk     price        2   74    368.6347 |
 14. |     10.trunk     price        2   74     355.778 |
 15. |     11.trunk     price        2   74   -229.7306 |
 16. |     12.trunk     price        2   74    2002.943 |
 17. |     13.trunk     price        2   74    47.29906 |
 18. |     14.trunk     price        2   74    1746.247 |
 19. |     15.trunk     price        2   74    1473.953 |
 20. |     16.trunk     price        2   74    115.0414 |
 21. |     17.trunk     price        2   74    319.3028 |
 22. |     18.trunk     price        2   74    2780.235 |
 23. |     20.trunk     price        2   74    142.0096 |
 24. |     21.trunk     price        2   74    737.9046 |
 25. |     22.trunk     price        2   74    408.4962 |
 26. |     23.trunk     price        2   74   -669.1454 |
     +--------------------------------------------------+
05.12.2018
  • Идеальный! Спасибо 05.12.2018

  • 2

    Если вы измените exp на adjusted в post temp, вы получите то, что хотите:

    sysuse auto.dta, clear
    describe 
    summ
    
    postfile temp str40 exp str40 outcome adjust N beta se lci uci pval using ///
    "test.dta", replace
    
    foreach out in price {
    foreach exp in i.foreign {
        foreach adjust in 1 2 {
    
            if `adjust'==1 local adjusted "" 
            if `adjust'==2 local adjusted "mpg weight length displacement i.trunk" 
    
            reg `out' `exp' `adjusted' 
    
            local N = e(N) 
            matrix table=r(table)
    
            forvalues i = 1 / `= colsof(r(table))-1' {
    
                local beta = table[1,`i']
                local se = table[2,`i']
                local lci = table[5,`i']
                local uci = table[6,`i']
                local pval=table[4,`i']                         
    
                post temp ("`adjusted'") ("`out'") (`adjust') (`N') (`beta') ///
                          (`se') (`lci') (`uci') (`pval')
            }                           
          }
       } 
    } 
    
    postclose temp 
    

    use "test.dta", clear
    
    list exp outcome adjust N beta, separator(0)
    
         +----------------------------------------------------------------------------+
         |                                    exp   outcome   adjust    N        beta |
         |----------------------------------------------------------------------------|
      1. |                                            price        1   74           0 |
      2. |                                            price        1   74    312.2587 |
      3. | mpg weight length displacement i.trunk     price        2   74           0 |
      4. | mpg weight length displacement i.trunk     price        2   74    3152.553 |
      5. | mpg weight length displacement i.trunk     price        2   74   -9.723515 |
      6. | mpg weight length displacement i.trunk     price        2   74    4.613294 |
      7. | mpg weight length displacement i.trunk     price        2   74   -92.95226 |
      8. | mpg weight length displacement i.trunk     price        2   74    10.30914 |
      9. | mpg weight length displacement i.trunk     price        2   74           0 |
     10. | mpg weight length displacement i.trunk     price        2   74    530.6144 |
     11. | mpg weight length displacement i.trunk     price        2   74   -245.4009 |
     12. | mpg weight length displacement i.trunk     price        2   74    1722.497 |
     13. | mpg weight length displacement i.trunk     price        2   74    368.6347 |
     14. | mpg weight length displacement i.trunk     price        2   74     355.778 |
     15. | mpg weight length displacement i.trunk     price        2   74   -229.7306 |
     16. | mpg weight length displacement i.trunk     price        2   74    2002.943 |
     17. | mpg weight length displacement i.trunk     price        2   74    47.29906 |
     18. | mpg weight length displacement i.trunk     price        2   74    1746.247 |
     19. | mpg weight length displacement i.trunk     price        2   74    1473.953 |
     20. | mpg weight length displacement i.trunk     price        2   74    115.0414 |
     21. | mpg weight length displacement i.trunk     price        2   74    319.3028 |
     22. | mpg weight length displacement i.trunk     price        2   74    2780.235 |
     23. | mpg weight length displacement i.trunk     price        2   74    142.0096 |
     24. | mpg weight length displacement i.trunk     price        2   74    737.9046 |
     25. | mpg weight length displacement i.trunk     price        2   74    408.4962 |
     26. | mpg weight length displacement i.trunk     price        2   74   -669.1454 |
         +----------------------------------------------------------------------------+
    

    EDIT:

    Вам также необходимо изменить длину str в exp на 100 или больше, чтобы сохранить все ковариаты в строке:

    postfile temp str100 exp str40 outcome adjust N beta se lci uci pval using ///
    "test.dta", replace
    

    Затем, если вы также измените post temp, чтобы включить экспозицию:

    post temp ("`exp' `adjusted'") ("`out'") (`adjust') (`N') (`beta') ///
                          (`se') (`lci') (`uci') (`pval')
    

    Вы получите желаемый результат:

    list exp outcome adjust N beta, separator(0)
    
         +--------------------------------------------------------------------------------------+
         |                                              exp   outcome   adjust    N        beta |
         |--------------------------------------------------------------------------------------|
      1. |                                        i.foreign     price        1   74           0 |
      2. |                                        i.foreign     price        1   74    312.2587 |
      3. | i.foreign mpg weight length displacement i.trunk     price        2   74           0 |
      4. | i.foreign mpg weight length displacement i.trunk     price        2   74    3152.553 |
      5. | i.foreign mpg weight length displacement i.trunk     price        2   74   -9.723515 |
      6. | i.foreign mpg weight length displacement i.trunk     price        2   74    4.613294 |
      7. | i.foreign mpg weight length displacement i.trunk     price        2   74   -92.95226 |
      8. | i.foreign mpg weight length displacement i.trunk     price        2   74    10.30914 |
      9. | i.foreign mpg weight length displacement i.trunk     price        2   74           0 |
     10. | i.foreign mpg weight length displacement i.trunk     price        2   74    530.6144 |
     11. | i.foreign mpg weight length displacement i.trunk     price        2   74   -245.4009 |
     12. | i.foreign mpg weight length displacement i.trunk     price        2   74    1722.497 |
     13. | i.foreign mpg weight length displacement i.trunk     price        2   74    368.6347 |
     14. | i.foreign mpg weight length displacement i.trunk     price        2   74     355.778 |
     15. | i.foreign mpg weight length displacement i.trunk     price        2   74   -229.7306 |
     16. | i.foreign mpg weight length displacement i.trunk     price        2   74    2002.943 |
     17. | i.foreign mpg weight length displacement i.trunk     price        2   74    47.29906 |
     18. | i.foreign mpg weight length displacement i.trunk     price        2   74    1746.247 |
     19. | i.foreign mpg weight length displacement i.trunk     price        2   74    1473.953 |
     20. | i.foreign mpg weight length displacement i.trunk     price        2   74    115.0414 |
     21. | i.foreign mpg weight length displacement i.trunk     price        2   74    319.3028 |
     22. | i.foreign mpg weight length displacement i.trunk     price        2   74    2780.235 |
     23. | i.foreign mpg weight length displacement i.trunk     price        2   74    142.0096 |
     24. | i.foreign mpg weight length displacement i.trunk     price        2   74    737.9046 |
     25. | i.foreign mpg weight length displacement i.trunk     price        2   74    408.4962 |
     26. | i.foreign mpg weight length displacement i.trunk     price        2   74   -669.1454 |
         +--------------------------------------------------------------------------------------+
    
    05.12.2018
  • Это очень близко, но все же не совсем правильно. exp в строках 3 и 4 должно говорить i.foreign. Ряд 5 должен быть миль на галлон, Ряд 6 должен быть весом. Ряд 7 должен быть длиной. Ряд 8 должен быть смещением 05.12.2018
  • Смотрите мой другой ответ. 05.12.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..