У меня есть несколько наборов данных с объясняющей переменной, которую я хочу использовать для объяснения нескольких других зависимых переменных. Данные получены с течением времени, и пояснительная переменная в настоящее время находится в формате, приведенном ниже (назовите ее объясняющий_индекс).
1900 1901 ... 2000
Country1 327.1 253.5 ... 537.9
Country2 357.3 300.9 ... 510.7
... ... ... ... ...
Country40 225.7 258.2 ... 451.4
и формат по умолчанию для зависимых переменных будет в том же формате. Допустим, у меня есть зависимая переменная (назовем ее ВВП), которая выглядит как
1900 1901 ... 2000
Country1 18 25 ... 93
Country2 20 15 ... 78
... ... ... ... ...
Country40 4 7 ... 85
А затем еще несколько с аналогичным форматом, скажем (market_size) и т. Д .:
1900 1901 ... 2000
Country1 7 9 ... 25
Country2 9 11 ... 27
... ... ... ... ...
Country40 0 1 ... 8
Я хочу запустить линейную регрессию, используя независимую переменную (объяснительный индекс) для каждой переменной отдельно, и получить «общую» линейную регрессию.
Базовый lm(GDP ~ explanatory_index)
просто выдает ошибки, как я и ожидал, и я не хочу проводить регрессию по каждой стране отдельно или каждый год отдельно, поскольку идея состоит в том, чтобы показать, что индекс имеет значительную объясняющую силу по странам и во времени, и может объяснить определенные элементы роста.
Может, мне лучше попытаться преобразовать данные, чтобы они выглядели примерно так:
Explanatory_Index GDP market_size
Country1_1900 327.1 18 7
Country1_1901 253.5 25 9
...
Country1_2000 537.91 93 25
... ... ... ...
Country40_1900 225.7 4 0
Country40_1901 258.2 7 1
... ... ... ...
Country40_2000 451.4 85 8
На котором я мог бы просто запустить lm(df$GDP, df$explanatory_index)?
или есть способ сделать это с исходным форматом данных?
Я понимаю самые основы R, но когда дело доходит до структуры и того, как R читает вещи, это не соответствует моим предвзятым представлениям о программировании на других языках с циклами for. Я предполагаю, что здесь используется какая-то версия lapply, но я не могу понять этого. Я открыт для изменения формата данных, если есть более простой способ сделать это.
tidyr::gather
иtidyr::unite
- person Davide Passaretti   schedule 11.03.2018