Итак, моя lm() выдала мне целый список всевозможных циферок и компонентов:
str(LinearModel) List of 12 $ coefficients : Named num [1:3] -12.63 -1.23 1.71 ..- attr(*, "names")= chr [1:3] "(Intercept)" "lnDISTANCE" "lnPOP" $ residuals : Named num [1:6] 0.624 -0.929 -0.655 0.665 -0.381 ... ..- attr(*, "names")= chr [1:6] "1" "2" "3" "4" ... $ effects : Named num [1:6] -8.437 0.42 3.013 1.194 -0.277 ... ..- attr(*, "names")= chr [1:6] "(Intercept)" "lnDISTANCE" "lnPOP" "" ... $ rank : int 3 $ fitted.values: Named num [1:6] 5.72 4.43 2.96 2.95 2.46 ... ..- attr(*, "names")= chr [1:6] "1" "2" "3" "4" ... $ assign : int [1:3] 0 1 2 $ qr :List of 5 ..$ qr : num [1:6, 1:3] -2.449 0.408 0.408 0.408 0.408 ... .. ..- attr(*, "dimnames")=List of 2 .. .. ..$ : chr [1:6] "1" "2" "3" "4" ... .. .. ..$ : chr [1:3] "(Intercept)" "lnDISTANCE" "lnPOP" .. ..- attr(*, "assign")= int [1:3] 0 1 2 ..$ qraux: num [1:3] 1.41 1.66 1.39 ..$ pivot: int [1:3] 1 2 3 ..$ tol : num 1e-07 ..$ rank : int 3 ..- attr(*, "class")= chr "qr" $ df.residual : int 3 $ xlevels : Named list() $ call : language lm(formula = lnMIGR ~ lnDISTANCE + lnPOP) $ terms :Classes 'terms', 'formula' length 3 lnMIGR ~ lnDISTANCE + lnPOP .. ..- attr(*, "variables")= language list(lnMIGR, lnDISTANCE, lnPOP) .. ..- attr(*, "factors")= int [1:3, 1:2] 0 1 0 0 0 1 .. .. ..- attr(*, "dimnames")=List of 2 .. .. .. ..$ : chr [1:3] "lnMIGR" "lnDISTANCE" "lnPOP" .. .. .. ..$ : chr [1:2] "lnDISTANCE" "lnPOP" .. ..- attr(*, "term.labels")= chr [1:2] "lnDISTANCE" "lnPOP" .. ..- attr(*, "order")= int [1:2] 1 1 .. ..- attr(*, "intercept")= int 1 .. ..- attr(*, "response")= int 1 .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> .. ..- attr(*, "predvars")= language list(lnMIGR, lnDISTANCE, lnPOP) .. ..- attr(*, "dataClasses")= Named chr [1:3] "numeric" "numeric" "numeric" .. .. ..- attr(*, "names")= chr [1:3] "lnMIGR" "lnDISTANCE" "lnPOP" $ model :'data.frame': 6 obs. of 3 variables: ..$ lnMIGR : num [1:6] 6.34 3.5 2.3 3.61 2.08 ... ..$ lnDISTANCE: num [1:6] 3.58 8.77 3.99 8.79 4.42 ... ..$ lnPOP : num [1:6] 13.3 16.3 12 15.4 12 ... ..- attr(*, "terms")=Classes 'terms', 'formula' length 3 lnMIGR ~ lnDISTANCE + lnPOP .. .. ..- attr(*, "variables")= language list(lnMIGR, lnDISTANCE, lnPOP) .. .. ..- attr(*, "factors")= int [1:3, 1:2] 0 1 0 0 0 1 .. .. .. ..- attr(*, "dimnames")=List of 2 .. .. .. .. ..$ : chr [1:3] "lnMIGR" "lnDISTANCE" "lnPOP" .. .. .. .. ..$ : chr [1:2] "lnDISTANCE" "lnPOP" .. .. ..- attr(*, "term.labels")= chr [1:2] "lnDISTANCE" "lnPOP" .. .. ..- attr(*, "order")= int [1:2] 1 1 .. .. ..- attr(*, "intercept")= int 1 .. .. ..- attr(*, "response")= int 1 .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> .. .. ..- attr(*, "predvars")= language list(lnMIGR, lnDISTANCE, lnPOP) .. .. ..- attr(*, "dataClasses")= Named chr [1:3] "numeric" "numeric" "numeric" .. .. .. ..- attr(*, "names")= chr [1:3] "lnMIGR" "lnDISTANCE" "lnPOP" - attr(*, "class")= chr "lm"> LinearModel$coefficients (Intercept) lnDISTANCE lnPOP -12.628980 -1.228007 1.710443 > LinearModel$residuals 1 2 3 4 5 6 0.6237597 -0.9291957 -0.6545567 0.6649467 -0.3808893 0.6759353 > LinearModel$effects (Intercept) lnDISTANCE lnPOP -8.4370820 0.4196987 3.0127464 1.1943209 -0.2766226 1.1054963 > LinearModel$fitted.values 1 2 3 4 5 6 5.720121 4.425703 2.957142 2.945971 2.460331 2.157278residuals - это остатки (невязки) - ответ минус подогнанные значенияfitted.values - подогнанные средние значенияТак же возвращает параметр - effects - последствия
coefficients- проименнованный вектор коэффициентов fitted.values- аппроксимированные средние значения rank- числовой ранг получившейся линейной модели weights- (только для взвешенной аппроксимации) указанный вес
df.residual- степени свободы невязки callthe matched call. termsthe termsobject used.contrasts(only where relevant) использованные контрасты. xlevels(only where relevant) запись уровней факторов, используемых при аппроксимации offsetиспользованное смещение (missing if none were used). yif requested, использованная характеристика. xif requested, использованная модель матрицы modelif requested (the default),использованная модель фрейма na.action(where relevant) information returned by model.frameon the special handling ofNAs.Effects from Fitted Model
Description
Возвращает (ортогональные) эффекты от аппроксимированной модели, обычно линейной модели (модели линейной регрессии_. Это обобщенная функция, но сейчас использует только те методы, что отнаследовала из классов"lm"и"glm".
Usage
effects(object, ...) ## S3 method for class 'lm' effects(object, set.sign = FALSE, ...)Arguments
objectan R object; typically, the result of a model fitting function such as lm.set.signlogical. If TRUE, the sign of the effects corresponding to coefficients in the model will be set to agree with the signs of the corresponding coefficients, otherwise the sign is arbitrary....arguments passed to or from other methods. Details
Для линейной модели полученной, с помощью lm() или aov(), эффекты - некорреллированные значения со степенью свободы 1, полученные проецированием данных на последовательность ортогональных подпространств, сгенерированных с помощью QR - декомпозиции в течение аппроксимации. Первый ранг модели (r_0 ) связан с последствиями, а остальные охватывают пространство невязок (но никак не связаные с конкретными остатками).Value
A (named) numeric vector of the same length asresiduals, or a matrix if there were multiple responses in the fitted model, in either case of class"coef".
The first r rows are labelled by the corresponding coefficients, and the remaining rows are unlabelled. Note that in rank-deficient models the corresponding coefficients will be in a different order if pivoting occurred.
[1] "Большой Камень" "Братск" "Верхотурье" "Вилючинск"
[5] "Губкинский" "Димитровград" "Дубна" "Дудинка"
[9] "Заречный" "Игарка" "Качканар" "Лесной"
[13] "Магадан" "Мегион" "Муравленко" "Невьянск"
[17] "Новоуральск" "Норильск" "Ноябрьск" "Обнинск"
[21] "Озерск" "Саров" "Снежинск" "Сосновый Бор"
[25] "Трехгорный" "Усть-Илимск"
Для (миграции ~ расстояния + населения)
#Код для диплома. Часть один
#
#
f <- read.csv("C:/Users/MSI/Desktop/Diploma/raw_data_v71.csv",header = TRUE, sep=";", quote="\"", encoding = "UTF-8");
names(f) <- c("FROM","TO", "MIGR", "TO_POP", "FROM_LAT", "FROM_LON", "TO_LAT","TO_LON" , "DISTANCE", "FR_OKTMO", "TO_OKTMO", "SAME_REG", "ADM2", "ADM1", "M2PRICE");
MigrMore5 <- f[f$MIGR >5, ];
citiesMore5 <- unique(MigrMore5$FROM) ;
citiesMore5 <- as.vector(citiesMore5);
for (i in 1:length(citiesMore5))
{
City <- MigrMore5[MigrMore5$FROM == citiesMore5[i], ];
lnMIGR <- log(City$MIGR);
lnDISTANCE <- log(City$DISTANCE);
lnPOP <- log(City$TO_POP);
LinearModel <- lm(lnMIGR ~ lnDISTANCE + lnPOP);
#препарируем результат
coef<- LinearModel[[1]];
res <- LinearModel[[2]];
dimention<-dim(City);
#len <- dimention[2];
deep <-dimention[1];
prediction <- matrix(0, 1, deep);
for (i in 1:deep) #1:6
{
prediction[i] <- coef[1] + coef[2]*lnDISTANCE[i] + coef[3]*lnPOP[i] + res[i];
}
plot(lnMIGR, prediction, xlab = "Real migration", ylab = "Predicted migration");
prediction1 <- as.vector(prediction);
lm <- lm(prediction1 ~ lnMIGR);
abline(lm);
}
Для (миграции ~ расстояния + населения + цены на жилье)
f <- read.csv("C:/Users/MSI/Desktop/Diploma/raw_data_v71.csv",header = TRUE, sep=";", quote="\"", encoding = "UTF-8");
names(f) <- c("FROM","TO", "MIGR", "TO_POP", "FROM_LAT", "FROM_LON", "TO_LAT","TO_LON" , "DISTANCE", "FR_OKTMO", "TO_OKTMO", "SAME_REG", "ADM2", "ADM1", "M2PRICE");
MigrMore5 <- f[f$MIGR >5, ];
citiesMore5 <- unique(MigrMore5$FROM) ;
citiesMore5 <- as.vector(citiesMore5);
for (i in 1:length(citiesMore5))
{
City <- MigrMore5[MigrMore5$FROM == citiesMore5[1], ];
lnPRICE <- log(City$M2PRICE);
lnMIGR <- log(City$MIGR);
lnDISTANCE <- log(City$DISTANCE);
lnPOP <- log(City$TO_POP);
LinearModel <- lm(lnMIGR ~ lnDISTANCE + lnPOP+lnPRICE);
#препарируем результат
coef<- LinearModel[[1]];
res <- LinearModel[[2]];
dimention<-dim(City);
#len <- dimention[2];
deep <-dimention[1];
prediction <- matrix(0, 1, deep);
for (i in 1:deep) #1:6
{
prediction[i] <- coef[1] + coef[2]*lnDISTANCE[i] + coef[3]*lnPOP[i] +coef[4]*lnPRICE + res[i];
}
plot(lnMIGR, prediction, xlab = "Real migration", ylab = "Predicted migration");
prediction1 <- as.vector(prediction);
lm <- lm(prediction1 ~ lnMIGR);
abline(lm);
}
Для (миграции ~ расстояния + населения + цены на жилье + тот же регион)
City <- MigrMore5[MigrMore5$FROM == citiesMore5[1], ];
lnPRICE <- log(City$M2PRICE);
lnMIGR <- log(City$MIGR);
lnDISTANCE <- log(City$DISTANCE);
lnPOP <- log(City$TO_POP);
LinearModel <- lm(lnMIGR ~ lnDISTANCE + lnPOP+lnPRICE+SAME_REG);
#препарируем результат
coef<- LinearModel[[1]];
res <- LinearModel[[2]];
dimention<-dim(City);
#len <- dimention[2];
deep <-dimention[1];
prediction <- matrix(0, 1, deep);
for (i in 1:deep) #1:6
{
prediction[i] <- coef[1] + coef[2]*lnDISTANCE[i] + coef[3]*lnPOP[i] +coef[4]*lnPRICE + res[i];
}
plot(lnMIGR, prediction, xlab = "Real migration", ylab = "Predicted migration");
prediction1 <- as.vector(prediction);
lm <- lm(prediction1 ~ lnMIGR);
abline(lm);

Комментариев нет:
Отправить комментарий