Страница 1 из 1

PCA, lm Вопрос по алгоритму действий

Добавлено: 08 фев 2015, 15:31
Natalia Novoselova
Вопрос относится к R и статике. Возможно, кто-то здесь сможет подсказать, что мне делать в данном случае. Или что читать, чтобы разобраться

Есть задача: оценить влияние факторов A, B, C.. на параметр wbird (активность птиц).
То есть, как я рассуждаю, мне нужно использовать здесь какой-то регрессионный анализ, или регрессионную модель.

Выбрала функцию lm
Загружаю таблицу (где для каждого wbird дается соответствующие ему параметры A, B, C.. ). Технику получения такой таблицы не описываю, т.к. вопроса это не касается (коротко - было получено из ГИС-ДЗЗ обработки данных, сопряженной с данными учета птиц). Пишу формулу по lm:
Data<-read.csv("C:\\***\\data.csv",sep=";")
> LM<-lm(wbird~hight+aspect+gradtemp_mymeth+gradtemp_mymethmod+surftemper+gradtemp_slope+slope_relief,data=Data)
> summary(LM)
Получаю результат:
Call:
lm(formula = wbird_dens ~ hight + aspect + gradtemp_mymeth +
gradtemp_mymethmod + surftemper + gradtemp_slope + slope_relief,
data = prud_800rm)

Residuals:
Min 1Q Median 3Q Max
-24.521 -6.677 -3.413 2.259 115.036

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 14.8442161 1.2403876 11.967 < 2e-16 ***
hight -0.0035498 0.0019312 -1.838 0.0661 .
aspect -0.0003861 0.0008062 -0.479 0.6320
gradtemp_mymeth -0.0069638 0.0115195 -0.605 0.5455
gradtemp_mymethmod 0.2001790 0.0167038 11.984 < 2e-16 ***
surftemper -0.1656850 0.0284116 -5.832 5.57e-09 ***
gradtemp_slope 3.4673017 0.1956511 17.722 < 2e-16 ***
slope_relief -0.0444852 0.0225034 -1.977 0.0481 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 11.89 on 20323 degrees of freedom
Multiple R-squared: 0.03589, Adjusted R-squared: 0.03556
F-statistic: 108.1 on 7 and 20323 DF, p-value: < 2.2e-16

Как я вижу, часть предикторов – значимо влияет на параметр wbirds.
Вопрос – что делать дальше? Как правильно доработать эту модель?
Как мне примерно объяснили (спросить подробнее не получилось) нужно смотреть на параметр «Intercept». Потом убирать по одному или попарно(?) входящие предикторы и смотреть, как этот Intercept изменился. Как именно это делать? Как именно оценивать Intercept ? :roll:

И также значение имеют показатели
на Adjusted R-squared: 0.03556 -- это можно приблизительно описать так: указанные предикторы объясняют вариацию зависимой переменной на 3,5%.
Это много или мало? :roll:


Я пробовала разбираться по хелпу в R, и по учебникам. Найти что-то, чтобы данный конкретный алгоритм стал понятным, пока не получилось.
Была бы безмерно благодарна за помощь в разборе этого примера. Или в подсказке – где про это можно прочитать, чтобы понять.

lm – выбран как один из возможных анализов, дающих такие результаты. Шире не ориентируюсь, но, предполагаю, что он может подходить не лучшим образом, и могут быть другие более подходящие варианты.

Re: R: lm (Fitting Linear Models) Вопрос по алгоритму действ

Добавлено: 08 фев 2015, 17:43
jerry-maori
Начните с PCА. Может из множества ваших факторов реально будут играть 2-3...

Re: R: lm (Fitting Linear Models) Вопрос по алгоритму действ

Добавлено: 08 фев 2015, 18:39
Natalia Novoselova
jerry-maori писал(а):Начните с PCА. Может из множества ваших факторов реально будут играть 2-3...
Параметров там не так много, они все и даны в примере. Есть еще "ландшафтное покрытие", но я не знаю, как его можно поместить в ту же таблицу, поскольку эту уже ранги, а все остальные - числовые.
Мне бы с этим способом разобраться, как то, как минимум, что уже посоветовали и как-то работает.
Возможно, PCA дает что-то близкое, но с ним надо разбираться отдельно.


Вот, если убирать разные параметры и проводить такой же lm анализ, то Adjusted R-squared так и колеблется около 0.027 -0.04

Может быть, такой низкий результат говорит о том, что связи здесь по всем параметрам несущественные?

Re: R: lm (Fitting Linear Models) Вопрос по алгоритму действ

Добавлено: 08 фев 2015, 19:49
Natalia Novoselova
Во второй снизу строке результатов расчета модели приведены значения
Multiple R-squared и Adjusted R-squared. В первом случае речь идет о так
называемом коэффициенте детерминации, который обозначается как R2 и рассчитывается
как R2 = 1 - RSS / TSS. Напомним, что TSS отражает общий разброс значений зависимой
переменной без учета регрессионной модели, а RSS – остаточную дисперсию значений
отклика, которую нам не удалось "объяснить" при помощи построенной модели.
Таким образом, коэффициент детерминации R2 измеряет долю общей дисперсии
зависимой переменной, объясненную моделью, и изменяется от 0 до 1. Чем ближе
значение R2 к 1, тем точнее модель описывает данные
Получается, что смотреть надо на Multiple R-squared, а сравнивать между собой модели с разными предакторами по Adjusted R-squared.

Странно, получается, что результат показывает и значимые факторы для зависимой переменной (то, что отмечено звездочками). И при этом сообщает, что вообще-то всё объясняется очень плохо только на 3%, то есть результаты плохие.

Вот чего не могу понять, как интерпретировать тогда эти результаты?

Re: R: lm (Fitting Linear Models) Вопрос по алгоритму действ

Добавлено: 09 фев 2015, 17:22
Natalia Novoselova
jerry-maori писал(а):Начните с PCА. Может из множества ваших факторов реально будут играть 2-3...

Метод lm показал низкую линейную зависимость (при таких низких Multiple R-squared говорить о значимости предикторов смысла не имеет). Хотя в отчет включить, как вывод, это можно.

Теперь думаю с строну PCA.

Правильно ли я считаю, что я могу просто включить параметр птиц (wbird)) вместе с другими параметрами в такой анализ?

И тогда PCA покажет группы, внутри которых параметры имеют высокие коэф корреляции друг с другом. Потому, выделение методом PCA в одну группу - даст понимание о связи wbird с другими предикторами попавшими с ним в одну группу..

Это по результатам факторного анализа, делаемого методом PCA, результатом он выдает табличку с группами (компонентами). Внутри которых - объединяет параметры с высоким коэф корреляции.

Re: PCA, lm Вопрос по алгоритму действий

Добавлено: 10 фев 2015, 09:46
nplatonov
что показывает 'pairs(prud_800rm)'?

Re: PCA, lm Вопрос по алгоритму действий

Добавлено: 10 фев 2015, 13:15
Natalia Novoselova
nplatonov писал(а):что показывает 'pairs(prud_800rm)'?

Ну.. дает целый лист каких-то маленьких графичков. :)
Но что они означают - я не понимаю. Хелп ясности не внес.

Re: PCA, lm Вопрос по алгоритму действий

Добавлено: 11 фев 2015, 05:11
Игорь Черниенко
Можете обработать модель функцией step -- она использует информационный критерий Акаике для отбора "наилучшей" линейной модели

Код: Выделить всё

?step
LM.step<-step(LM)
summary(LM.step)