Việc lấy nhật ký của biến phụ thuộc và / hoặc biến độc lập có ảnh hưởng đến các lỗi mô hình và do đó tính hợp lệ của suy luận không?


7

Tôi thường thấy mọi người (nhà thống kê và học viên) biến đổi các biến mà không có ý nghĩ thứ hai. Tôi luôn sợ biến đổi, vì tôi lo rằng họ có thể sửa đổi phân phối lỗi và do đó dẫn đến suy luận không hợp lệ, nhưng nó phổ biến đến mức tôi phải hiểu sai điều gì đó.

Để sửa ý tưởng, giả sử tôi có một mô hình

Y=β0expXβ1+ϵ, ϵN(0,σ2)

Điều này về nguyên tắc có thể phù hợp bởi NLS. Tuy nhiên, hầu như lúc nào tôi cũng thấy mọi người lấy nhật ký và lắp

logY=logβ0+β1logX+???Z=α0+β1W+???

Tôi biết điều này có thể được trang bị bởi OLS, nhưng tôi không biết cách tính khoảng tin cậy trên các tham số, bây giờ, hãy để một mình khoảng dự đoán hoặc khoảng dung sai.


Và đó là một trường hợp rất đơn giản: hãy xem xét trường hợp phức tạp hơn (đối với tôi) trong đó tôi không giả sử dạng mối quan hệ giữa và là một tiên nghiệm , nhưng tôi cố gắng suy ra nó từ dữ liệu, ví dụ, một GAM. Hãy xem xét các dữ liệu sau:YX

library(readr)
library(dplyr)
library(ggplot2)

# data
device <- structure(list(Amplification = c(1.00644, 1.00861, 1.00936, 1.00944, 
1.01111, 1.01291, 1.01369, 1.01552, 1.01963, 1.02396, 1.03016, 
1.03911, 1.04861, 1.0753, 1.11572, 1.1728, 1.2512, 1.35919, 1.50447, 
1.69446, 1.94737, 2.26728, 2.66248, 3.14672, 3.74638, 4.48604, 
5.40735, 6.56322, 8.01865, 9.8788, 12.2692, 15.3878, 19.535, 
20.5192, 21.5678, 22.6852, 23.8745, 25.1438, 26.5022, 27.9537, 
29.5101, 31.184, 32.9943, 34.9456, 37.0535, 39.325, 41.7975, 
44.5037, 47.466, 50.7181, 54.2794, 58.2247, 62.6346, 67.5392, 
73.0477, 79.2657, 86.3285, 94.4213, 103.781, 114.723, 127.637, 
143.129, 162.01, 185.551, 215.704, 255.635, 310.876, 392.231, 
523.313, 768.967, 1388.19, 4882.47), Voltage = c(34.7732, 24.7936, 
39.7788, 44.7776, 49.7758, 54.7784, 64.778, 74.775, 79.7739, 
84.7738, 89.7723, 94.772, 99.772, 109.774, 119.777, 129.784, 
139.789, 149.79, 159.784, 169.772, 179.758, 189.749, 199.743, 
209.736, 219.749, 229.755, 239.762, 249.766, 259.771, 269.775, 
279.778, 289.781, 299.783, 301.783, 303.782, 305.781, 307.781, 
309.781, 311.781, 313.781, 315.78, 317.781, 319.78, 321.78, 323.78, 
325.78, 327.779, 329.78, 331.78, 333.781, 335.773, 337.774, 339.781, 
341.783, 343.783, 345.783, 347.783, 349.785, 351.785, 353.786, 
355.786, 357.787, 359.786, 361.787, 363.787, 365.788, 367.79, 
369.792, 371.792, 373.794, 375.797, 377.8)), .Names = c("Amplification", 
"Voltage"), row.names = c(NA, -72L), class = "data.frame")

Nếu tôi vẽ dữ liệu mà không chuyển đổi log , mô hình kết quả và giới hạn độ tin cậy sẽ không đẹp lắm:X

# build model
model <- gam(Voltage ~ s(Amplification, sp = 0.001), data = device)

# compute predictions with standard errors and rename columns to make plotting simpler 
Amplifications <- data.frame(Amplification = seq(min(APD_data$Amplification), 
                                           max(APD_data$Amplification), length.out = 500))
predictions <- predict.gam(model, Amplifications, se.fit = TRUE)
predictions <- cbind(Amplifications, predictions)
predictions <- rename(predictions, Voltage = fit) 

# plot data, model and standard errors
ggplot(device, aes(x = Amplification, y = Voltage)) +
  geom_point() +
  geom_ribbon(data = predictions, 
              aes(ymin = Voltage - 1.96*se.fit, ymax = Voltage + 1.96*se.fit), 
              fill = "grey70", alpha = 0.5) +
  geom_line(data = predictions, color = "blue")

nhập mô tả hình ảnh ở đây

Nhưng nếu tôi chỉ chuyển đổi log , có vẻ như giới hạn niềm tin đối với trở nên nhỏ hơn nhiều:XY

log_model <- gam(Voltage ~ s(log(Amplification)), data = device)
# the rest of the code stays the same, except for log_model in place of model

nhập mô tả hình ảnh ở đây Rõ ràng một cái gì đó tanh đang xảy ra. Là những khoảng tin cậy đáng tin cậy? EDIT đây không chỉ đơn giản là một vấn đề về mức độ làm mịn, như nó đã được đề xuất trong một câu trả lời. Không có biến đổi log, tham số làm mịn là

> model$sp
s(Amplification) 
     5.03049e-07 

Với biến đổi log, tham số làm mịn thực sự lớn hơn nhiều:

>log_model$sp
s(log(Amplification)) 
         0.0005156608 

Nhưng đây không phải là lý do tại sao khoảng tin cậy trở nên quá nhỏ. Như một vấn đề thực tế, sử dụng một tham số làm mịn thậm chí còn lớn hơn sp = 0.001, nhưng tránh bất kỳ biến đổi log nào, các dao động được giảm (như trong trường hợp chuyển đổi log) nhưng các lỗi tiêu chuẩn vẫn rất lớn đối với trường hợp chuyển đổi log:

smooth_model <- gam(Voltage ~ s(Amplification, sp = 0.001), data = device)
# the rest of the code stays the same, except for smooth_model in place of model

nhập mô tả hình ảnh ở đây

Nói chung, nếu tôi đăng nhập biến đổi và / hoặc , điều gì xảy ra với các khoảng tin cậy? Nếu không thể trả lời một cách định lượng trong trường hợp chung, tôi sẽ chấp nhận một câu trả lời là định lượng (nghĩa là nó hiển thị một công thức) cho trường hợp đầu tiên (mô hình hàm mũ) và đưa ra ít nhất một đối số vẫy tay cho trường hợp thứ hai (Mô hình GAM).XY


Khi bạn "biến đổi" các biến, bạn đang điều chỉnh một mô hình hoàn toàn khác. Các khoảng tin cậy liên quan là hợp lệ nếu mô hình được chuyển đổi là hợp lệ (ví dụ trong ví dụ đầu tiên của bạn, nếu các lỗi thực sự là nhân trên thang đo ban đầu), chúng chỉ khác nhau vì chúng là các mô hình khác nhau. Bạn phải cẩn thận nếu sau đó bạn cần đảo ngược biến đổi: không phải là một dự đoán không thiên vị cho một mới (mặc dù nó không thiên vị ). β^0X~β1^Y
Chris Haug

Tôi không biết gam và tài liệu đề cập đến một cuốn sách tôi không có. Tuy nhiên, dựa trên hành vi của sự việc, tôi giả sử nó cố gắng xấp xỉ một hàm chưa biết bằng cách sử dụng đa thức. Đa thức làm một công việc kém với các hình gần đúng như y = ln (x), và điều này, có lẽ, giải thích hiệu suất kém của gam ở đây. Tiếng chuông Hugh Perkins đề cập không đến từ chức năng bước hoặc không đủ làm mịn ở đây (một lần nữa tôi nghi ngờ) mà từ thực tế là đa thức đổ chuông khi xấp xỉ các hàm logarit. Dữ liệu của bạn trông logarit, không đa thức với tôi. Bạn có thể kiểm tra với bài kiểm tra của Vương.
Bill

@Bill cảm ơn rất nhiều cho các đầu vào. GAM không sử dụng đa thức nhưng các chuỗi hồi quy bị phạt, không có tất cả các vấn đề về đa thức (xem ví dụ "Giới thiệu về học thống kê" của James và cộng sự). Trên thực tế, một trong những cơ sở spline có sẵn mgcvcó thể được biểu diễn dưới dạng tổng của các điều khoản của loại - Tôi có thể thử chúng. Bài kiểm tra của Voung là gì? Bạn có thể cung cấp chi tiết hơn? Bạn có biết nếu nó được thực hiện trong một gói R? x2đăng nhập(x)
DeltaIV

1
Quan điểm của Chris Haug được gọi là vấn đề tái chuyển đổi. Có một số câu hỏi và câu trả lời về chủ đề đó trên trang web. Tôi đã trả lời một số câu hỏi chung về chủ đề đó, bạn có thể tìm thấy một câu hỏi ở đây: stats.stackexchange.com/questions/55692/ mẹo
Bill

1
Đây (tôi nghĩ) là những gì tôi đã liên kết đến: herc.research.va.gov/include/page.asp?id=cost-regression
Bill

Câu trả lời:


2

Bạn đang thấy đổ chuông, là kết quả của việc truyền thay đổi tần số cao, tức là chức năng bước, thông qua bộ lọc thông thấp, tức là GAM.

Khi bạn áp dụng chuyển đổi nhật ký, bạn thay đổi độ dốc của phần gần dọc của biểu đồ, ở phía bên trái, để nó hơi dốc hơn, với tần số cao ẩn ít hơn và hiệu ứng đổ chuông sẽ biến mất.

Chỉnh sửa: một số hình ảnh của tiếng chuông ở đây: /electronics/79717/what-can-reduce-overshoot-and-ringing-on-a-simple-sapes-wave-pulse-generator

Edit2: lưu ý rằng việc tăng độ mịn sẽ làm tăng tiếng chuông, vì việc làm mịn về cơ bản là bộ lọc thông thấp gây ra tiếng chuông. Điều gì sẽ làm giảm tiếng chuông sẽ là ví dụ 1. loại bỏ các điểm ở cạnh vách đá đang tăng ở bên trái và chỉnh lại hoặc 2. giảm độ mịn, hoặc 3. giảm tần số / tăng bước sóng / tăng tần số cắt của làm mịn .

Bạn có thể thấy rằng nếu bạn loại bỏ bit cạnh vách đá, phần còn lại của biểu đồ ít nhiều là một đường thẳng, vậy tại sao GAM lại khớp một sóng hình sin qua các điểm đó? Nó hoàn toàn bởi vì phần cạnh vách đá đang buộc một độ dốc rất cao, sau đó gây ra sự quá mức tiếp theo.

Edit3: nếu là tôi, tôi nghĩ tôi sẽ cố gắng tìm một biến đổi sẽ biến đồ thị thành một đường thẳng xấp xỉ. Tôi không chắc chắn sự biến đổi đó sẽ là gì, nhưng có vẻ như biểu đồ rất gần với một đường thẳng, không có triệu chứng đến ~ 380 hoặc hơn. Đây là một phi tuyến tính mạnh hơn so với ví dụ log, nó sẽ trở thành phẳng, nhưng tôi nghĩ không nhanh như vậy. Có lẽ một cái gì đó giống như một sigmoid nghịch đảo? Sigmoid là:

y= =11+điểm kinh nghiệm(-x)

... và trông giống như (từ wikipedia https://en.wikipedia.org/wiki/Sigmoid_feft )

nhập mô tả hình ảnh ở đây

Nghịch đảo sigmoid là logitchức năng, https://en.wikipedia.org/wiki/Logit :

f(x)= =đăng nhập(11-x)

Có lẽ một phép biến đổi liên quan đến điều này, hoặc một phiên bản được tham số hóa của điều này, có thể làm cho biểu đồ gần giống như một đường thẳng, và do đó dễ sửa đổi hơn đối với các kỹ thuật thống kê tiêu chuẩn?


Nếu những gì bạn nói là chính xác, tôi sẽ có thể có được kết quả tương tự chỉ bằng cách tăng tham số làm mịn của GAM bằng tay, thay vì để gamchọn bằng cách xác thực chéo. Thú vị: Tôi sẽ kiểm tra điều đó. Tôi đánh giá cao cái nhìn sâu sắc (+1) nhưng nó không trả lời câu hỏi ban đầu về ảnh hưởng của chuyển đổi log đối với khoảng tin cậy.
DeltaIV

câu trả lời của bạn không đúng, hoặc ít nhất là không đầy đủ. Như tôi đã chứng minh trong thí nghiệm của mình, hiệu ứng của chuyển đổi log đối với các khoảng tin cậy không phải là do độ mịn tăng lên - nếu tôi không chuyển đổi log nhưng tôi áp dụng thậm chí nhiều mịn hơn, tôi có được khoảng tin cậy lớn hơn nhiều. Xem câu hỏi chỉnh sửa của tôi.
DeltaIV

thêm một số suy nghĩ về tác dụng của việc thay đổi độ mịn trên nhạc chuông; và có thể sử dụng logitđể biến đổi đồ thị thành một thứ gần với đường thẳng hơn
Hugh Perkins

trong các thí nghiệm của tôi làm giảm việc làm mịn vòng tăng , nếu với tiếng chuông bạn có nghĩa là các dao động: Tôi không thể chỉnh sửa câu hỏi ngay bây giờ, nhưng tôi sẽ đến vào tuần tới. Tuy nhiên, vấn đề của tôi là ở các khoảng tin cậy, không phải với đường hồi quy: câu trả lời của bạn không bao gồm chúng.
DeltaIV

Có một mô tả về cách đạt được khoảng tin cậy cho OLS trên wikipedia, en.wikipedia.org/wiki/Simple_linear_regression phần 'Thuộc tính dựa trên mô hình'. Ý bạn là vậy đúng không?
Hugh Perkins
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.