Bu cevapların birçoğunun amacı tamamen kaçırdığını hissediyorum. Haitao'nun cevabı ham polinomlara uyma ile ilgili hesaplama problemlerini ele alıyor , ancak OP'nin iki yaklaşım arasındaki istatistiksel farklılıkları sorduğu açık . Yani, tüm değerleri tam olarak temsil edebilecek mükemmel bir bilgisayarımız olsaydı, neden bir yaklaşımı diğerine tercih edelim ki?
R2XYX=0X=0X
data("iris")
#Raw:
fit.raw <- lm(Petal.Length ~ Petal.Width + I(Petal.Width^2) +
I(Petal.Width^3), data = iris)
summary(fit.raw)
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 1.1034 0.1304 8.464 2.50e-14 ***
#> Petal.Width 1.1527 0.5836 1.975 0.05013 .
#> I(Petal.Width^2) 1.7100 0.5487 3.116 0.00221 **
#> I(Petal.Width^3) -0.5788 0.1408 -4.110 6.57e-05 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 0.3898 on 146 degrees of freedom
#> Multiple R-squared: 0.9522, Adjusted R-squared: 0.9512
#> F-statistic: 969.9 on 3 and 146 DF, p-value: < 2.2e-16
#Orthogonal
fit.orth <- lm(Petal.Length ~ stats::poly(Petal.Width, 3), data = iris)
#Marginal effect of X at X=0 from orthogonal model
library(margins)
summary(margins(fit.orth, variables = "Petal.Width",
at = data.frame(Petal.Width = 0)))
#> Warning in check_values(data, at): A 'at' value for 'Petal.Width' is
#> outside observed data range (0.1,2.5)!
#> factor Petal.Width AME SE z p lower upper
#> Petal.Width 0.0000 1.1527 0.5836 1.9752 0.0482 0.0089 2.2965
2019-10-25 tarihinde reprex paketi tarafından oluşturuldu (v0.3.0)
Petal.Width
Ortogonal uyumdan 0'ın marjinal etkisi ve standart hatası, ham polinom uyumundan tam olarak eşittir. Ortogonal polinomların kullanılması, iki model arasında aynı miktarda tahminlerin kesinliğini artırmaz.
YXYX
library(jtools)
data("iris")
fit.raw3 <- lm(Petal.Length ~ Petal.Width + I(Petal.Width^2) +
I(Petal.Width^3), data = iris)
fit.raw1 <- lm(Petal.Length ~ Petal.Width, data = iris)
round(summ(fit.raw3, part.corr = T)$coef, 3)
#> Est. S.E. t val. p partial.r part.r
#> (Intercept) 1.103 0.130 8.464 0.000 NA NA
#> Petal.Width 1.153 0.584 1.975 0.050 0.161 0.036
#> I(Petal.Width^2) 1.710 0.549 3.116 0.002 0.250 0.056
#> I(Petal.Width^3) -0.579 0.141 -4.110 0.000 -0.322 -0.074
round(summ(fit.raw1, part.corr = T)$coef, 3)
#> Est. S.E. t val. p partial.r part.r
#> (Intercept) 1.084 0.073 14.850 0 NA NA
#> Petal.Width 2.230 0.051 43.387 0 0.963 0.963
fit.orth3 <- lm(Petal.Length ~ stats::poly(Petal.Width, 3),
data = iris)
fit.orth1 <- lm(Petal.Length ~ stats::poly(Petal.Width, 3)[,1],
data = iris)
round(summ(fit.orth3, part.corr = T)$coef, 3)
#> Est. S.E. t val. p partial.r part.r
#> (Intercept) 3.758 0.032 118.071 0 NA NA
#> stats::poly(Petal.Width, 3)1 20.748 0.390 53.225 0 0.975 0.963
#> stats::poly(Petal.Width, 3)2 -3.015 0.390 -7.735 0 -0.539 -0.140
#> stats::poly(Petal.Width, 3)3 -1.602 0.390 -4.110 0 -0.322 -0.074
round(summ(fit.orth1, part.corr = T)$coef, 3)
#> Est. S.E. t val. p partial.r part.r
#> (Intercept) 3.758 0.039 96.247 0 NA NA
#> stats::poly(Petal.Width, 3)[, 1] 20.748 0.478 43.387 0 0.963 0.963
2019-10-25 tarihinde reprex paketi tarafından oluşturuldu (v0.3.0)
0.0010.0030.0050.9270.9270.0200.0050.927. Ham polinom modelinden değil ortogonal polinom modelinden, sonuçta açıklanan varyansın çoğunun doğrusal terimden kaynaklandığını biliyoruz, kare terimden çok az ve kübik terimden çok daha az. Ham polinom değerleri bu hikayeyi anlatmaz.
Şimdi, bu yorumsal faydayı, modelin katsayılarını gerçekten anlayabilmenin etkileşimli faydası üzerinde istiyorsanız, o zaman dik polinomları kullanmalısınız. Katsayılara bakmayı ve ne anlama geldiğini tam olarak bilmek isterseniz (tipik olarak birinden şüphe duysam da), o zaman ham polinomları kullanmalısınız. Eğer umursamıyorsanız (yani, sadece karıştırmak veya öngörülen değerleri üretmek istiyorsanız), o zaman gerçekten önemli değil; her iki form da bu hedefler için aynı bilgileri taşır. Düzenlemede (örneğin, kement) dikey polinomların tercih edilmesi gerektiğini de tartışacağım, çünkü daha yüksek mertebeden terimlerin kaldırılması, ham polinomlar için doğru olmayan düşük mertebe terimlerin katsayılarını etkilemez,
poly
Ortogonal polinomlarla bir ilgisi olduğunu biliyorum ve ben (x ^ 2) bilmiyor (ayrıntıları bilmememe rağmen) - ama yine de, neden ISLR yazarları işe yaramayan bir yöntem öneriyor? ? Her iki komut da aynı şeyi yapıyor gibi görünüyorsa çok yanıltıcı görünüyor, ama aslında sadece bir tane iyi.