Saya merasa beberapa dari jawaban ini benar-benar tidak penting. Jawaban Haitao membahas masalah komputasi dengan pemasangan polinomial mentah, tetapi jelas bahwa OP bertanya tentang perbedaan statistik antara kedua pendekatan. Artinya, jika kita memiliki komputer yang sempurna yang dapat mewakili semua nilai dengan tepat, mengapa kita lebih memilih satu pendekatan daripada yang lain?
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
Dibuat pada 2019-10-25 oleh paket reprex (v0.3.0)
Efek marginal Petal.Width
pada 0 dari fit ortogonal dan kesalahan standarnya persis sama dengan yang dari fit polinomial mentah. Menggunakan polinomial ortogonal tidak meningkatkan ketepatan estimasi jumlah yang sama antara kedua model.
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
Dibuat pada 2019-10-25 oleh paket reprex (v0.3.0)
0.0010.0030.0050.9270.9270.0200.0050.927. Dari model polinomial ortogonal tetapi bukan model polinomial mentah, kita tahu bahwa sebagian besar varian dijelaskan dalam hasil adalah karena istilah linear, dengan sangat sedikit yang berasal dari istilah kuadrat dan bahkan lebih sedikit dari istilah kubik. Nilai-nilai polinomial mentah tidak menceritakan kisah itu.
Sekarang, apakah Anda ingin manfaat penafsiran ini daripada manfaat antarpribadi karena benar-benar dapat memahami koefisien model, maka Anda harus menggunakan polinomial ortogonal. Jika Anda lebih suka melihat koefisien dan tahu persis apa artinya (walaupun saya ragu satu biasanya), maka Anda harus menggunakan polinomial mentah. Jika Anda tidak peduli (yaitu, Anda hanya ingin mengontrol untuk mengacaukan atau menghasilkan nilai yang diprediksi), maka itu benar-benar tidak masalah; kedua bentuk membawa informasi yang sama sehubungan dengan tujuan-tujuan tersebut. Saya juga berpendapat bahwa polinomial ortogonal harus lebih disukai dalam regularisasi (misalnya, laso), karena menghapus istilah orde tinggi tidak mempengaruhi koefisien dari syarat orde rendah, yang tidak benar dengan polinomial mentah,
poly
ada hubungannya dengan polinomial ortogonal dan saya (x ^ 2) tidak (walaupun saya tidak tahu detailnya) - tapi tetap saja, mengapa penulis ISLR kemudian merekomendasikan metode yang tidak bekerja ? Tampaknya sangat menyesatkan jika kedua perintah tampaknya melakukan hal yang sama, tetapi hanya satu yang benar-benar baik-baik saja.